聊天
每个会话都以聊天的形式打开。你在底部的输入区书写;代理的回复、它的问题,以及它做了什么的摘要显示在上方。在下面,代理其实在它机器(在设置编辑器中称为“工作区”)上的一个普通终端标签页里运行——聊天读取它的对话,并替你把内容输入进去,所以代理在终端里会做的一切,在这里也一样会做。用 Linux 胶囊(⌥⌘U;见会话主页)随时一次点击就能到终端。
本章描述运行中会话的聊天。已暂停或已完成的会话会显示同一段对话(从这台 Mac 读回),其输入区的下一条消息会把它接续起来——见已暂停与已完成的会话。
输入区
输入区写着“给 代理 的消息…(或拖入文件)”。
- 回车发送。⌥⏎ 插入换行。文字下方的提示就是这么说的:“⏎ 发送 ⌥⏎ 换行”。
- 代理工作时,发送按钮会变成红色的停止按钮(“停止代理(Esc)”),提示变成“⎋ 停止 ⏎ 发送”。Esc 或点击停止会中断代理——效果和在它的终端里按 Esc 一样。它工作时你仍然可以输入并按回车;消息会像在终端里那样送到代理。
对话是空的时候,聊天会显示“代理 已就绪。说出你需要什么。”
附件
你可以把 Mac 上的任何文件交给代理:
- 从 Finder 拖动文件(或从浏览器、预览拖一张图片)到聊天的任何位置。聊天会显示松开以附加;每个文件会在输入区上方成为一个标签,图片附缩略图。点击标签上的标记即可移除。
- 直接放在文字上,文字字段会先收到该文件的路径;聊天会以同样的方式把指向你 Mac 上文件的路径变成标签。你粘贴的路径也是如此。
任何类型的文件都可以,每个最多 512 MB;过大或读不到的文件会伴随提示音被拒绝。在你发送消息之前不会送出任何东西。发送后,文件会被复制到机器内的 ~/.bromure/drops/ 之下(每个名称前面加上发送时间,所以两个叫 photo.png 的文件永远不会撞名),路径则加到消息末尾,让代理能打开它们。你也可以完全不写文字、只发附件。
你从这台 Mac 附加的图片会留在对话中:它们显示在你的消息里,取代路径,而且在你往回滚动或日后重新打开这个会话时仍然在那里。从其他客户端传来的图片则以路径显示。
注意: 拖放文件夹位于机器的家目录中,所以附加的文件能在机器重启后保留。它们也会占用那里的空间;若你经常附加大文件,请从
~/.bromure/drops/删掉旧的。
斜杠命令
在输入区开头输入 /,就会在其上方打开命令面板:代理内置的命令(/model、/compact、/review…)以及你自己加入的——Claude Code 的话是你的自定义命令(~/.claude/commands/ 与项目的 .claude/commands/),标注为你的,还有你的技能,标注为 skill;Codex 的话是你保存的提示(~/.codex/prompts/)。标头会显示代理的名称与匹配的数量。
继续输入即可筛选。↑↓ 移动,⇥ 完成,↩ 发送(部分名称会先被补全),esc 关闭并清除。点击不带参数的命令会立刻送出;带参数的命令补全后会加一个空格,让你输入其余部分。
回答斜杠命令的是代理的终端,而不是对话,所以聊天会把终端打印的内容显示在命令下方的一张卡片里(会更新几秒钟;若没有任何内容则显示“终端没有出现新内容。”)。点击卡片的 × 可关闭它。
当命令在终端中打开菜单时——/model、/config 之类——卡片会变成内嵌终端:代理真正的终端,就在聊天里,带着提示“↑↓ 移动 · ⏎ 选择 · esc 关闭”。按键会直接送到代理。折叠(“回到打印的输出”)把它缩回文字,交互(“在这里显示终端并输入”)把它带回来。菜单关闭后卡片会自行折叠。
询问另一个会话:@
输入 @ 会打开会话面板——“你可以询问的会话”,按 @昵称列出,并附标题与机器。没有昵称的会话会附上一个建议名称并标注新名称,你选中时它就会取得那个名称。↑↓ 移动,⇥ 或 ↩ 完成,esc 只移除你正在输入的 @…,句子的其余部分保留。
用 @名称 指名一个会话,你的代理就能向它发出请求。请求与委派会出现在输入区上方的委派面板中并附带状态,也让你能代替你的代理回答被委派者的问题。见代理协同工作。
代理的问题
当 Claude Code 向你提出选择题时,聊天会以品牌蓝色的实时卡片显示:“代理正在提问”、问题,以及各个选项与其说明。
- 点击一个选项即可选择。允许多重回答的问题会以复选框取代编号,并附一个都不是按钮。
- 当代理一次提出多个问题时,卡片会显示“代理提出了 N 个问题——全部回答后点击提交”,并为每个问题显示一个标签页,回答后打勾。回答单选题后会自动前往下一个未回答的标签页。
- 在你点击提交之前,什么都不会送到代理,所以点错只是再点一下改掉而已。在每个问题都有答案之前,提交会保持禁用(“所有标签页都回答后,提交才会启用。”)。送出后,卡片会显示“答案已发送给代理。”;若无法连上该会话,则显示“无法连上该会话——请再试一次。”
回答之后,问题会折叠成一行灰色文字:问题、一个箭头,以及你选了什么(或“已忽略”)。点击该行可再次看到完整问题,你的选择会被突出显示;箭头可再把它折叠。
问题等待期间,该会话会待在侧边栏的需要你分组中,并带一个红点。
其他代理的菜单,以及 Claude Code 的其他对话框,则会改以状态卡呈现。
活动行
代理在两条消息之间做的事——执行的命令、读取与编辑的文件、搜索、网页、子代理,以及它的思考——会折叠成一行安静的文字,例如“思考 · 1 次编辑 · 1 个命令”或“3 个命令 · 读取 2 个文件 · 1 次编辑”。只有单一步骤的运行会直接说出它是什么(“Grep src”、“编辑 /home/ubuntu/pipeline/export/csv.py”)。失败的工具调用会在该行以红色计数(“1 个失败”)。
点击某一行可展开它(“显示代理做了什么”)并把每个步骤看成一张卡片,再点一次则折叠(“隐藏细节”)。代理运行到一半时,该行会显示一个转动指示与进行中的步骤——“正在执行 npm test…”、“正在读取 src/app.ts…”、“正在编辑 …”、“正在搜索 …”、“正在获取 …”、“正在思考…”。两次运行之间,“正在思考…”的提示,或回复撰写期间闪动的光标,都表示代理还在进行。
这一轮改了什么
当代理这一轮编辑了文件,该轮最后会有一个按钮,例如已更改 3 个文件 +120 −35——它的编辑所碰到的文件,以及新增与移除的行数,都是从它自己的编辑调用算出来的。把光标移上去可看文件列表;点击则会针对这些文件打开该会话的审查窗口。见分支与审查。
卡片
在展开的活动行里,每个步骤都会按其性质绘制:
| 卡片 | 显示 |
|---|---|
| 编辑 | 更改的彩色差异(编辑与补丁一视同仁),含新增与移除的行;过长的差异会以“… 还有 N 行”截断。 |
| 写入文件 | 全新文件的内容,带语法高亮,并附其路径。 |
| 命令 | shell 命令显示在 $ 行上,附拷贝按钮。通过 heredoc 写入文件的命令会列出它所写的文件,每个 heredoc 各成一个区块。 |
| 文件与搜索 | 某次读取、列出或搜索所针对的文件、文件夹或模式;网页获取的 URL 或查询字符串。 |
| 结果 | 工具的输出,折叠到第一行(“工具 的结果”);错误以红色显示。 |
| 思考 | 代理的推理,以斜体显示。 |
| 其他一切 | 工具的名称与摘要,展开后可见其原始输入。 |
在代理的回复中:
- 代码块带语法高亮与拷贝按钮。
- 以
```mermaid块撰写的图表会被画成图表,离线进行,并按窗口呈现浅色或深色。无法解析的图表会改为显示其源码。 - 表格会画成卡片:带色的标头、以细线分隔的行、一道圆角边框。在比大约 480 点更窄的聊天中——房间格子,或 iPhone——宽表格会保持可读的列宽,改为横向滚动而不是硬挤。
待办。 当代理维护一份任务清单时(Claude Code 的 to-do、Codex 的计划、Oh My Pi 的 todo),最新的清单会以待办核对清单的形式固定在输入区上方——已完成、进行中、受阻与待处理的项目一目了然——而不会随着对话滚走。清单很长时会在原地滚动。
消息
把光标移到一条消息上,右上角会出现它的工具:
- 发送的时间(把光标移到时间上可看完整日期);
- 拷贝 — 拷贝该消息。对于聊天分成多段绘制的长回复,在第一段上按拷贝会取得整条回复;
- 编辑并重新发送 — 只出现在你最后一条消息上:把它的文字放回输入区,供你修改后重新发送。
当代理还在进行而你往上滚动时,底部会出现一个跳到最新按钮;点击即可回到结尾。只有当你位于结尾时,聊天才会自行跟随新消息。
长对话一次绘制 300 条消息:顶部的显示更早的 N 条消息按钮会加载之前的消息。非常长的对话一开始不会被完整读入;此时顶部会提供加载更早的对话,从机器取得更多内容。
登录与状态卡
当代理卡在终端中某件不属于对话的事情上时——一个对话框、一次登录、一个错误——聊天会检测到并在对话末尾显示一张卡片,让你很少需要打开终端。
代理在等你信任这个文件夹。 代理第一次在某个文件夹中工作时,会问是否要信任它。卡片会显示该文件夹与一个信任此文件夹并继续按钮。若这个对话框是聊天无法代答的,它会显示“正在等待代理的信任对话框——回答后就会继续。”
登录 提供方。 尚未设置账号的代理会显示它的登录界面;侧边栏会把该会话标记为需要登录。在 Bromure 能代为登录的情况下(Claude、给 Codex 用的 ChatGPT、Grok、Kimi),卡片会说明“Bromure 会在这台 Mac 上替你登录,并把你的 提供方 账号留在机器之外——代理看到的永远只是一个替身密钥。”并提供登录 提供方…:
- 点击它。卡片会显示“正在打开你的浏览器以登录…”,提供方的登录页会在你 Mac 的浏览器中打开。
- 在那里批准访问。
- Bromure 取得凭据、保存在这台 Mac 上,并以替身密钥重新启动代理(“已登录。正在重新启动 代理…”)。已经开始的对话会被接续;从未开始的则会收到你的开场消息。
若五分钟内没有任何结果,卡片会这么说,你可以再试一次。替身密钥如何运作见凭据与线路边界,登录的管理见模型与提供方。
在 Bromure 无法代为登录的情况下,卡片会改为引导代理自己的登录流程:“你想用哪种方式登录?”并把方式列成按钮,接着是打开登录页,以及一个粘贴代码字段与提交,用来输入该页面给你的代码。
代理 需要一个模型提供方。 Oh My Pi 没有可登录的账号:“代理 在这台机器上还没有模型提供方。请在机器的设置中加入 API 密钥或本地模型,然后重新开始这个会话。”**机器设置…**会打开该机器的设置。
其他对话框。 代理弹出的任何其他菜单,都会连同标题与各选项以按钮呈现(回车会选的那个会被突出显示),再加上忽略(Esc)——“或打开 Linux(⌥⌘U)在终端中回答。” 审批面板与 Kimi Code 的选择题也以这种方式呈现。Kimi Code 在默认的从不询问模式下两者都不会弹出——而是以纯文本提问——只有当机器的 Kimi 审批设置为敏感操作前询问时才会(见常规)。
失败。 当代理因错误停下时,一张红色卡片会说明类型——“代理无法验证身份”、“代理达到使用上限”或“代理因错误停止”——并在下方附上代理自己的错误行。验证失败时,若 Bromure 能代为登录,会提供登录 提供方…;否则卡片会显示“请切换到终端处理,然后再次发送。”
在对话中查找东西
聊天内部没有搜索字段。请使用侧边栏的搜索会话字段,或 ⌘K 面板的在对话中区段:两者都会搜索每个会话中说过的内容,打开一项结果会把聊天滚动到含有你词语的第一条消息。
限制
- 历史。 聊天一次保有约 24 MB 的对话历史。较长对话中更早的部分可用加载更早的对话取得;一旦保有的历史超过约 40 MB,最旧的部分会再次从画面中移出。对话本身在机器上完全不受影响。在远程 Mac 的镜像中,聊天第一次打开只会读取最新的约 1.5 MB,再次打开的聊天只会取得上次之后的新内容。
- 外观。 聊天有自己的外观——浅色模式是温暖的纸质感,深色模式使用系统颜色,跟随 macOS。机器的外观设置(终端字体、颜色、不透明度)适用于它的终端,而不是聊天。
- 聊天看得到什么。 聊天是由代理自己的对话文件,以及它的终端所显示的内容组成的。聊天没有识别出来的东西仍然在终端里:有疑问时,请打开 Linux(⌥⌘U)。