Skip to content

终端界面(xopc / xopc tui

直接运行 xopc 会打开与 xopc tui 相同的全屏终端对话界面,底层使用 @earendil-works/pi-tui。流式展示助手回复、工具调用与思考块,体验上接近网关网页聊天,但完全在终端内完成。

命令行参数与速查见 CLI 命令参考 — tui


两种运行方式

方式参数是否需要网关适用场景
嵌入式默认;xopcxopc tui不需要仅用本机配置与工作区快速对话,不经过 HTTP
网关模式--gateway--url--token需要已启动的 xopc gateway与 Web 控制台共用会话、连接远程网关

网关模式

  1. 先启动网关(见 网关服务)。
  2. 将 TUI 指到网关的根地址;若网关启用鉴权,需带上令牌:
bash
xopc tui --gateway
xopc tui --url http://localhost:18790 --token <你的网关令>

网关模式会优先使用配置中的 gateway URL;默认 gateway 端口是 18790。如果网关运行在其它主机或端口,请用 --url 显式指定。

查看或生成令牌:

bash
xopc gateway token

嵌入式模式(默认)

进程内运行 AgentService(与无 TUI 的 agent 命令同源):读取 xopc.json、工作区与默认模型,依赖网关进程。

bash
xopc
xopc tui

未显式指定 agent 时,新 TUI 会话使用 tui.defaultAgent。内置 starter agent 可用时默认值是 coder。它与 agents.default 分离;后者仍用于全局路由和非 TUI 会话创建。

可以在 Web 控制台的智能体页面修改,也可以用 CLI 或 TUI 内命令修改:

bash
xopc tui --set-default-agent coder

TUI 内:

text
/tui-default-agent coder

嵌入式模式下的限制:

  • 嵌入式模式现在使用与 agent/gateway 路径相同的 SQLite-backed session store,支持历史、会话列表、模型列表、会话配置 patch、压缩、导入/导出、fork、transcript tree label 和 share helpers。
  • 少量 gateway-only 的运维状态仍来自 gateway broadcast stream,进程内运行时不可用。
  • /reset/new 会重置 session transcript(归档并生成新的 sessionId),同时保留相同 session key 和已持久化 overrides。嵌入式模式走进程内 reset 路径;gateway 模式调用 POST /api/sessions/:key/reset

命令行参数

参数说明
--url <url>网关根 URL(不要带路径后缀)。
--token <token>网关 Authorization: Bearer 令牌。
-s, --session <key>要恢复的会话键;省略时新建 agent:{currentAgent}:tui-<uuid> 会话,并在退出后打印恢复命令。
--agent <id>为本次新 TUI 会话指定 agent,仅覆盖本次启动的 tui.defaultAgent
--set-default-agent <id>持久化 tui.defaultAgent 后退出;目标 agent 必须存在且已启用。
-m, --message <text>连接成功后自动发送一条消息,界面保持打开。
--local显式使用嵌入式模式(与默认行为相同)。
--gateway强制使用网关模式。
--theme <name>主题:autodarklight,或 ~/.xopc/themes/ 下的自定义主题。
--thinking <level>思考等级覆盖,语义与网关 / agent 一致。

示例:

bash
xopc tui -s agent:main:telegram:default:direct:123456
xopc tui --agent coder
xopc tui --set-default-agent coder
xopc tui -m "帮我总结收件箱"
xopc tui --url http://192.168.1.10:18790 --token "$TOKEN"

退出后会打印类似下面的命令:

bash
To resume this session: xopc tui --session agent:main:tui-019eddd8-d108-7554-b971-33366f99dd27

键盘与输入

按键行为
Enter提交当前行(普通消息或以 / 开头的命令)。
Escape中止当前正在进行的助手回复(若有)。
Ctrl+D退出 TUI。
Ctrl+C输入框非空时清空;为空时第一次提示再按退出,约 1 秒内第二次按确认退出。
Ctrl+O展开/折叠工具调用块。
Ctrl+T切换是否在流中显示思考内容。

/ 开头的行视为 斜杠命令(不会发给模型)。编辑器会对命令名做补全。


斜杠命令

/help 会打印运行时真实命令列表,包括 skill、workflow 和 extension 动态注册的命令。

Agent、模型和会话

命令说明
/agent显示当前 agent id 和 session key。
/agent <id>切换到另一个已启用 agent,session key 会改写为 agent:<id>:<current-session-suffix>。它不会迁移已有 transcript,且助手正在回复时不能切换。
/agents有 overlay 时打开 agent 选择器;否则列出已配置 agents。
/tui-default-agent <id>持久化新 TUI 会话默认 agent;当前会话不变。
/model [搜索词]打开模型选择器,可用搜索词过滤。
/models列出可用模型。
/switch <provider/model>切换当前会话模型;可先用 /models 复制合法 model ref。
/scoped-models选择 Ctrl+P / Shift+Ctrl+P 循环切换时使用的模型集合。
/session/status显示当前会话、agent、模型、活动状态和统计。
/usage显示当前会话 token 使用统计。
/list列出会话。
/resume/sessions打开会话选择器(Ctrl+Shift+P)。
/tree可用时打开 transcript/session 树;否则打印分组会话树。
/name [名称]查看或设置当前会话显示名称。
/new创建新的隔离 tui-<uuid> 会话。
/fork [message-id]从某条用户消息或当前 transcript fork 到新会话。
/clone [名称]复制当前会话 transcript 到新会话。
/reset/restart必要时中止当前运行,重置当前会话 transcript,并重新加载历史。
/clear只清空当前 TUI 可见日志;不会重置已保存 transcript。

运行控制

命令说明
/abort/stop/cancel中止当前运行。
/recover重新加载历史,并在可用时重新附着到停滞的流。
/retry必要时中止当前运行,然后重新发送最后一条用户消息。
/thinking开关思考区显示(等同 Ctrl+T)。
/think [off|low|medium|high]查看或设置 thinking level;无参数时有 overlay 则打开选择器。
/reasoning [off|on|stream]查看或设置 reasoning 可见性。
/verbose [off|summary|debug]循环或设置 verbose 输出等级。
/tools开关工具块展开(等同 Ctrl+O)。
/compact [原因]压缩会话历史;压缩期间消息会排队。
/copy在剪贴板能力可用时复制最后一条助手回复。
/btw <问题>/aside <问题>用当前会话作为只读背景问一个旁路问题,答案不会写入会话。
/exit/quit退出 TUI。

配置和诊断

命令说明
/settings打开 TUI 设置 overlay:主题、思考展示、工具展开、双 Escape 行为、终端进度等。
/hotkeys/keys显示解析后的快捷键,包括 ~/.xopc/keybindings.json 覆盖。
/reload重新加载快捷键、TUI 设置、主题和 extension UI。
/reload-keybindings重新加载 ~/.xopc/keybindings.json
/config显示当前 TUI / 会话配置。
/context显示上下文预算和使用情况。
/trust打开项目 trust 选项,或打印 trust / 安全策略详情。
/login [provider]在 TUI 内执行支持的 OAuth provider 登录。API key provider 仍用 xopc auth setxopc providers set-key
/logout [provider]无参数时列出已保存 auth profiles;带 provider 时删除该 provider 的已保存 profiles。环境变量和配置文件凭据不会变化。
/debug将 TUI debug 快照写入磁盘。
/changelog显示版本历史。
/start重新显示启动欢迎信息。

文件、workflow 和扩展

命令说明
/export [路径或格式]将当前会话导出为 Markdown、HTML 或 JSON。
/import <path>导入 xopc JSON 会话导出。
/share <workspace-path> [friend|colleague|public] [--site|--zip|--file]为工作区文件、目录或站点创建分享链接。
/workflow list列出已配置 workflow 定义。
/workflow view <name>查看 workflow 详情。
/workflow:<name> [goal]直接启动一个 workflow run。未知 /name 如果匹配 workflow,也可能被改写为 workflow run。
/skill:<name> ...skill 提供的命令会转发给 agent。
Extension commands扩展可以注册 TUI-local 斜杠命令;这些命令会出现在 /help 中,并在 TUI 内处理。

日志与终端画面

TUI 占用屏幕期间,会对看起来像 JSON 结构一行一条 的日志输出做过滤,避免打乱布局。退出后恢复正常的 stdout/stderr。


实现要点

  • 网关: 对话走 POST /api/agentAccept: text/event-stream),并维持 GET /api/events 等广播类事件;会话与模型与网页控制台共用 REST(/api/sessions/api/models 等)。
  • 嵌入式: 消息经 AgentService.processDirectStreaming,事件来自智能体流(tokenthinkingtool_starttool_enderrorresult 等)。

基于 MIT 许可证发布