对话

CodeNomad 将原生 OpenCode 会话呈现为对话,为委派工作提供层级结构,并单独控制下一次发送的内容。

消息可呈现 Markdown、代码、差异和受支持的工具结果图片。文本复制、完整历史搜索和语音使用文本投影,而非嵌入的图片字节。消息内容只更改可见性,不会删除已存储部分;历史记录区分了显示控件和清理操作。

推理和工具标题会显示每个步骤所用的时间,运行期间实时计时;不足一秒的时长不显示。当消息内容中显示令牌时(全部预设会显示),每条智能体消息会在其最终文本之后以一行令牌和费用信息结束。该行合计这条消息,以及其从此回复中删除工具和推理操作所涵盖的、包含工具和推理的消息,范围限于已加载的对话记录;展开该行可查看推理和缓存计数。仅运行了工具的步骤没有单独的这一行。

  1. 选择会话下的一行,或使用新建会话开始父对话。
  2. 展开父会话的箭头以查看子会话。折叠箭头显示其后代会话中最紧急的状态:需要输入、正在工作或刚刚完成(空闲);其工具提示会统计各状态的数量。
  3. 使用搜索会话…、主会话 / 子会话、工作树筛选和活动时间、名称或工作树排序来缩小列表范围。
  4. 使用侧栏的后退和前进重新访问曾显示的对话。

正常浏览采用层级结构;搜索/筛选结果是扁平条目,各自保留对话身份和工作树。新开始工作的子会话只会在活动对话所属会话族下自动显示。折叠分支会针对当前正在运行的后代取消这种自动显示。

后退/前进是每个项目标签页、每个窗口的访问历史,而非列表顺序。它保存在内存中,跳过不可用/已删除对话,重启后不会恢复。后退后选择新对话会替换前进路径。命令面板的上一个会话 / 下一个会话则按可见列表循环切换。

选择智能体、模型和思考

  1. 发送前使用输入框底栏的智能体和模型选择器。
  2. 如果模型提供变体,请选择其思考力度;默认会继续使用原生默认值。
  3. 发送下一条提示词,诊断结果时检查回复的智能体/模型元数据。

除非你选择其他智能体,新对话会使用 OpenCode 解析出的默认智能体(插件可以设置该默认值)。选择器的工具提示会显示其快捷键。

这些是后续发送的执行选择,而非对先前回复的编辑。阅读时间线中的旧片段不会用历史元数据替换输入框的当前选择。模型可见性、收藏和提供商连接在提供商中管理。

草稿与附件

  1. 在所选对话中编写。切换对话会保留草稿,不会发送。
  2. 在输入框的更多操作菜单中选择附加文件…,或拖放、粘贴,以添加本设备文件;或输入 @ 选择项目文件、智能体或技能。
  3. 检查附件标签,移除不打算在下一次发送中使用的内容。
输入 来源和影响
设备附件 选择器、拖放或剪贴板从运行界面的设备读取字节;这不是服务器路径
项目 @ 引用 在后端的对话项目/Location 中解析,包括其工作树
智能体提及 附加所选智能体引用,而非更改过去的消息
技能 按名称/描述搜索 Location 技能,并附加可移除的技能选择

设备文件必须可读且符合附件预算:每个最多 5 MiB、最多 10 个文件、总计最多 20 MiB。被拒绝的文件不会附加;请检查通知,不要假定整个选择都成功。

选择技能会移除 @query 标记并添加标签。发送会清除输入框中的选择,而非 OpenCode 随已发送消息存储的指令。历史消息保留技能标签。编辑排队提示词时移除的技能,在替换发送中也保持移除。

在桌面端,发送后键盘焦点会移到对话上,因此可用方向键、翻页键和空格键滚动对话;输入一个字符会带着该字符返回输入框。更多操作中的清除输入框文本(默认 Ctrl/Cmd+K)会清除输入框中的草稿。

草稿是客户端工作状态,而非共享原生消息。启动恢复可以保留受支持的输入框状态,但不要将未发送草稿或附件视为备份,也不要假定它会出现在另一台设备。清除启动数据或关闭禁用了恢复策略的客户端之前,请保存重要文本;参阅桌面。

命令和 Shell 模式

  1. 输入 / 并选择已发现的自定义命令,然后提供参数。
  2. 若要直接运行 Shell 命令,在空输入框开头输入 ! 进入 Shell 模式。
  3. 发送命令。若要退出 Shell 模式而不运行,使用 Escape,或在空输入框中按 Backspace。

仅已知斜杠命令名会走自定义命令路径;未知的 /text 是普通提示词。自定义命令使用其原生定义。文件/图片附件不会通过该命令路径发送,仍可用于之后的提示词;参数中使用的粘贴文本会解析到参数中。

Shell 模式运行原生会话 Shell 请求,而非让模型建议命令。它可以在执行主机上更改文件和启动进程。配置文件环境设置会在下一条提示词、自定义命令或 Shell 请求之前应用;不会重启现有服务。参阅集成和 OpenCode 设置。

引导、排队和编辑后续提示

  1. 在设置 → 常规中开启将已发送的提示加入队列,可将会话繁忙时发送的后续提示加入队列;保持关闭(默认)则引导正在运行的任务。
  2. 会话繁忙时,使用该行为发送后续提示。若要使用另一种行为,请在输入框的更多操作菜单中选择将消息加入队列或立即插入,或使用另一种发送快捷键(Windows 和 Linux 上默认为 Alt+Enter,macOS 上为 Cmd+Shift+Return;参阅快捷键)。
  3. 在提示词队列中,条目仍待处理时,可使用立即插入、移至队列、编辑排队提示词或移除排队提示词。
交付方式 影响
引导 为正在执行的任务提供原生引导输入
排队 原生排队后续提示,留待后续处理

空闲时,无论该开关如何,普通发送都走正常的立即发送路径,且更多操作中的替代发送方式不可用。编辑会将待处理提示词及其可移除附件恢复到输入框;取消编辑会退出编辑流程。已被 OpenCode 消费的提示词不再是可编辑的待处理条目。移除条目不会撤销已经完成的工作。

队列更新失败时,请先检查实时队列再重试。接纳不代表模型已消费后续提示,重新连接也不代表允许再次提交。

用 /btw 提问旁支问题

  1. 在现有对话中发送 /btw your question,或发送 /btw 打开旁支问题窗口。
  2. 阅读答案,使用复制回答,或在等待时选择取消提问。
  3. 完成后关闭窗口。

这是使用会话上下文的一次独立模型请求。它不会运行工具循环、执行操作或将问题/答案追加到对话。文件/图片附件留在输入框中;问题中使用的粘贴文本会作为文本包含在内。它不是新的持久对话,也不是派发工作的替代方式。

关闭会取消待处理旁支请求,不会中断主会话。离开活动对话会清除此临时窗口;请先复制需要的内容。空回复/错误会显示在此处,而不会成为对话消息。

分叉、撤销和恢复失败运行

  1. 在消息上选择在这条消息之后分叉,创建从该点之后继续的对话,而不替换原对话。
  2. 撤销时,仔细检查撤销到此处的更改(会删除消息)。命令面板提供撤销上一条消息和重做上一条消息,用于暂存的撤销。
  3. 执行失败时,先检查会话错误、回复错误和所有发送失败详情,再重新发送。

分叉会复制到所选点为止的对话上下文;不会创建 Git 工作树或隔离文件。回退不只是导航。继续前请检查文件影响和撤销边界;若想在不改写原路径的情况下展开其他讨论,请使用分叉。

带倒计时的重试中状态表示 OpenCode 正在自行重试提供商错误;请等待其完成或停止会话,不要再次发送。发送失败时,只要不会覆盖新输入,就会恢复尝试发送的草稿和附件。失败的运行可能已执行工具:重试前请检查文件、待处理请求和原生活动。重新加载消息或重新加载会话会读取状态;都不代表要求重复修改操作。停止会话会中断执行,而非回滚文件或外部服务更改。