对话
CodeNomad 将原生 OpenCode 会话呈现为对话,为委派工作提供层级结构,并单独控制下一次发送的内容。
消息可呈现 Markdown、代码、差异和受支持的工具结果图片。文本复制、完整历史搜索和语音使用文本投影,而非嵌入的图片字节。消息内容只更改可见性,不会删除已存储部分;历史记录区分了显示控件和清理操作。
推理和工具标题会显示每个步骤所用的时间,运行期间实时计时;不足一秒的时长不显示。当消息内容中显示令牌时(全部预设会显示),每条智能体消息会在其最终文本之后以一行令牌和费用信息结束。该行合计这条消息,以及其从此回复中删除工具和推理操作所涵盖的、包含工具和推理的消息,范围限于已加载的对话记录;展开该行可查看推理和缓存计数。仅运行了工具的步骤没有单独的这一行。
查找和导航对话
- 选择会话下的一行,或使用新建会话开始父对话。
- 展开父会话的箭头以查看子会话。折叠箭头显示其后代会话中最紧急的状态:需要输入、正在工作或刚刚完成(空闲);其工具提示会统计各状态的数量。
- 使用搜索会话…、主会话 / 子会话、工作树筛选和活动时间、名称或工作树排序来缩小列表范围。
- 使用侧栏的后退和前进重新访问曾显示的对话。
正常浏览采用层级结构;搜索/筛选结果是扁平条目,各自保留对话身份和工作树。新开始工作的子会话只会在活动对话所属会话族下自动显示。折叠分支会针对当前正在运行的后代取消这种自动显示。
后退/前进是每个项目标签页、每个窗口的访问历史,而非列表顺序。它保存在内存中,跳过不可用/已删除对话,重启后不会恢复。后退后选择新对话会替换前进路径。命令面板的上一个会话 / 下一个会话则按可见列表循环切换。
选择智能体、模型和思考
- 发送前使用输入框底栏的智能体和模型选择器。
- 如果模型提供变体,请选择其思考力度;默认会继续使用原生默认值。
- 发送下一条提示词,诊断结果时检查回复的智能体/模型元数据。
除非你选择其他智能体,新对话会使用 OpenCode 解析出的默认智能体(插件可以设置该默认值)。选择器的工具提示会显示其快捷键。
这些是后续发送的执行选择,而非对先前回复的编辑。阅读时间线中的旧片段不会用历史元数据替换输入框的当前选择。模型可见性、收藏和提供商连接在提供商中管理。
草稿与附件
- 在所选对话中编写。切换对话会保留草稿,不会发送。
- 在输入框的更多操作菜单中选择附加文件…,或拖放、粘贴,以添加本设备文件;或输入
@选择项目文件、智能体或技能。 - 检查附件标签,移除不打算在下一次发送中使用的内容。
| 输入 | 来源和影响 |
|---|---|
| 设备附件 | 选择器、拖放或剪贴板从运行界面的设备读取字节;这不是服务器路径 |
项目 @ 引用 |
在后端的对话项目/Location 中解析,包括其工作树 |
| 智能体提及 | 附加所选智能体引用,而非更改过去的消息 |
| 技能 | 按名称/描述搜索 Location 技能,并附加可移除的技能选择 |
设备文件必须可读且符合附件预算:每个最多 5 MiB、最多 10 个文件、总计最多 20 MiB。被拒绝的文件不会附加;请检查通知,不要假定整个选择都成功。
选择技能会移除 @query 标记并添加标签。发送会清除输入框中的选择,而非 OpenCode 随已发送消息存储的指令。历史消息保留技能标签。编辑排队提示词时移除的技能,在替换发送中也保持移除。
在桌面端,发送后键盘焦点会移到对话上,因此可用方向键、翻页键和空格键滚动对话;输入一个字符会带着该字符返回输入框。更多操作中的清除输入框文本(默认 Ctrl/Cmd+K)会清除输入框中的草稿。
草稿是客户端工作状态,而非共享原生消息。启动恢复可以保留受支持的输入框状态,但不要将未发送草稿或附件视为备份,也不要假定它会出现在另一台设备。清除启动数据或关闭禁用了恢复策略的客户端之前,请保存重要文本;参阅桌面。
命令和 Shell 模式
- 输入
/并选择已发现的自定义命令,然后提供参数。 - 若要直接运行 Shell 命令,在空输入框开头输入
!进入 Shell 模式。 - 发送命令。若要退出 Shell 模式而不运行,使用 Escape,或在空输入框中按 Backspace。
仅已知斜杠命令名会走自定义命令路径;未知的 /text 是普通提示词。自定义命令使用其原生定义。文件/图片附件不会通过该命令路径发送,仍可用于之后的提示词;参数中使用的粘贴文本会解析到参数中。
Shell 模式运行原生会话 Shell 请求,而非让模型建议命令。它可以在执行主机上更改文件和启动进程。配置文件环境设置会在下一条提示词、自定义命令或 Shell 请求之前应用;不会重启现有服务。参阅集成和 OpenCode 设置。
引导、排队和编辑后续提示
- 在设置 → 常规中开启将已发送的提示加入队列,可将会话繁忙时发送的后续提示加入队列;保持关闭(默认)则引导正在运行的任务。
- 会话繁忙时,使用该行为发送后续提示。若要使用另一种行为,请在输入框的更多操作菜单中选择将消息加入队列或立即插入,或使用另一种发送快捷键(Windows 和 Linux 上默认为 Alt+Enter,macOS 上为 Cmd+Shift+Return;参阅快捷键)。
- 在提示词队列中,条目仍待处理时,可使用立即插入、移至队列、编辑排队提示词或移除排队提示词。
| 交付方式 | 影响 |
|---|---|
| 引导 | 为正在执行的任务提供原生引导输入 |
| 排队 | 原生排队后续提示,留待后续处理 |
空闲时,无论该开关如何,普通发送都走正常的立即发送路径,且更多操作中的替代发送方式不可用。编辑会将待处理提示词及其可移除附件恢复到输入框;取消编辑会退出编辑流程。已被 OpenCode 消费的提示词不再是可编辑的待处理条目。移除条目不会撤销已经完成的工作。
队列更新失败时,请先检查实时队列再重试。接纳不代表模型已消费后续提示,重新连接也不代表允许再次提交。
用 /btw 提问旁支问题
- 在现有对话中发送
/btw your question,或发送/btw打开旁支问题窗口。 - 阅读答案,使用复制回答,或在等待时选择取消提问。
- 完成后关闭窗口。
这是使用会话上下文的一次独立模型请求。它不会运行工具循环、执行操作或将问题/答案追加到对话。文件/图片附件留在输入框中;问题中使用的粘贴文本会作为文本包含在内。它不是新的持久对话,也不是派发工作的替代方式。
关闭会取消待处理旁支请求,不会中断主会话。离开活动对话会清除此临时窗口;请先复制需要的内容。空回复/错误会显示在此处,而不会成为对话消息。
分叉、撤销和恢复失败运行
- 在消息上选择在这条消息之后分叉,创建从该点之后继续的对话,而不替换原对话。
- 撤销时,仔细检查撤销到此处的更改(会删除消息)。命令面板提供撤销上一条消息和重做上一条消息,用于暂存的撤销。
- 执行失败时,先检查会话错误、回复错误和所有发送失败详情,再重新发送。
分叉会复制到所选点为止的对话上下文;不会创建 Git 工作树或隔离文件。回退不只是导航。继续前请检查文件影响和撤销边界;若想在不改写原路径的情况下展开其他讨论,请使用分叉。
带倒计时的重试中状态表示 OpenCode 正在自行重试提供商错误;请等待其完成或停止会话,不要再次发送。发送失败时,只要不会覆盖新输入,就会恢复尝试发送的草稿和附件。失败的运行可能已执行工具:重试前请检查文件、待处理请求和原生活动。重新加载消息或重新加载会话会读取状态;都不代表要求重复修改操作。停止会话会中断执行,而非回滚文件或外部服务更改。