命令行(Tangu CLI)
在终端里使用 Tangu:交互聊天、单条指令、插件安装,与桌面端共用同一份登录凭证。
Tangu 也活在终端里。对住在命令行里的人来说,这是最快的入口。
安装
在桌面端设置中一键安装 tangu 命令到系统 PATH。CLI 与桌面应用共用同一套程序与数据——随应用自动更新,Agent、配置、会话历史全部相通。
使用
# 交互式聊天(终端 UI)
tangu
# 登录 Forsion 账号
tangu login
# 非交互:直接执行一条指令,适合脚本与快捷键
tangu -e "把 ~/Downloads 里本周的截图归档到 Screenshots 文件夹"
# 安装引擎插件
tangu install npm:<包名>登录与凭证
tangu login 和桌面端登录用的是同一份凭证,只有一个真源:在任意一端登录,另一端也是登录状态;退出登录同样是两边一起生效,不会出现「命令行说登录了、桌面说没登录」这种各说各话。
桌面端登录有效期 30 天;
退出登录只吊销你退出的那一端所持的凭证:浏览器里单独退出不影响桌面与 CLI,退出桌面则 CLI 一起退出。要让所有设备一并失效,在用户中心里执行退出所有设备;
桌面端的账号卡会区分「未登录 / 登录过期 / 引擎未启动」三种情况,照提示处理即可。
终端界面(TUI)
直接运行 tangu 进入终端界面。界面文字(包括 tangu --help)跟随系统语言(LANG 为 zh* 显示中文,其余英文;TANGU_LANG=zh|en 可强制指定)。
选择器
/model、/think、/approval、/resume 不带参数时会弹出选择器:
↑↓(或Ctrl+N/Ctrl+P)移动,PgUp/PgDn翻页,Enter选中,Esc取消;直接打字即可过滤(不分大小写);当前生效的一项标
✓;一屏最多 10 行,更多的上下滚动。
常用命令
完整列表在界面里输入 /help 查看;Tab 可补全命令。
| 命令 | 作用 |
|---|---|
/model [名称] | 切换模型。不带参数打开选择器,列出云端托管模型与本机直连 / 订阅登录的模型(如 codex/…),右侧标出每个模型支持的思考档;带参数时按名称匹配,名称有歧义会打开已过滤的选择器。不支持按序号选(选择器不显示序号),/model 2 会提示你改用选择器。选中的模型会记住,下次启动直接用,也会写进当前会话。<provider>/<model> 形式的完整 id(如 codex/gpt-5.6-luna)只认目录里一模一样(不分大小写)的 id / 名称;目录里完全没有相近的,会原样采用并提示未经目录校验;目录里只有相近的(如输入 openai/gpt-5、目录里只有 openai/gpt-5-mini),不会自动换成那个,而是打开已过滤的选择器让你挑,并提示可用 /model =<id> 原样使用。其他目录里没有的 id 也用 /model =<id> 指定(不做校验);云端目录拉取失败(离线 / 未登录)时找不到的名称会注明这一点 |
/think [档位](同 /effort) | 思考强度:off minimal low medium high xhigh max。选择器里会标出当前模型不支持的档及其实际运行档;运行中切换从下一次请求起生效 |
/approval [档位](同 /permissions) | 审批档:询问我批准(readonly)/ 替我批准(auto-edit)/ 完全放行(full-auto)/ 自定义(custom)。切到完全放行需要再确认一次;运行中切换从下一条消息起生效。这是 TUI 自己的审批档:会记在会话里供 /resume 恢复,但不会改动桌面端打开同一会话时的审批档 |
/resume [序号|id] | 恢复会话。不带参数打开会话选择器;恢复时一并带回该会话的模型、思考档、审批档、循环上限、计划模式和 Agent。审批档优先用 TUI 上次在该会话用的档,没有则参考桌面端给该会话设的档。会话上次若是「完全放行」,不会自动恢复,需要你手动 /approval full-auto |
/agent <slug> | 启用本地 Agent,带上它定义的模型、思考档、循环上限;定义里若要求完全放行,同样先弹确认框(取消则保持当前审批档) |
/sessions | 列出最近会话 |
/rename <标题> | 重命名当前会话 |
/diff | 查看工作目录所在仓库的 git 改动(从子目录执行也按整个仓库):git status、改动统计,以及截断到 300 行的 diff(含未跟踪文件的内容)。不会运行仓库配置的 fsmonitor、外部 diff 工具或 textconv;但仓库给文件配置的 clean / smudge 过滤器照样会运行 —— 这和你自己在终端里敲 git status 一样,只在你不信任的仓库里需要留意 |
/status | 本会话概况:模型、思考档(请求 → 实际生效)、审批档、工作目录、用量 |
/hotkeys | 列出全部快捷键 |
/plan | 切换计划模式(团队模式下不可用;/groupchat 进入团队模式时会把它关掉) |
/loop <1-200> | 最大循环轮数 |
/new /branch /compact /retry /edit /delete | 会话管理(运行中不可用,先 Esc 中止) |
快捷键
| 按键 | 作用 |
|---|---|
Enter | 发送;运行中 = 插话(见下) |
Alt+Enter | 换行 |
Tab | 补全 /命令 与 @文件 |
Shift+Tab | 循环切换思考档,只在当前模型支持的档之间切换 |
Ctrl+P | 打开模型选择器 |
↑ / ↓ | 翻输入历史 |
← / →、Ctrl+A / Ctrl+E | 移动光标、跳到行首 / 行尾 |
Ctrl+U | 删除到行首 |
Esc | 运行中中止;空闲时清空输入 |
Ctrl+C | 运行中中止;空闲时退出 |
没有能一键切到「完全放行」的快捷键,放宽到完全放行只能经确认框(/approval,或启用要求完全放行的 Agent)。
运行中继续发消息(插话)
Agent 在干活时,直接输入普通消息并回车即可插话:消息会在当前任务的下一步(下一次调用模型之前)注入,Agent 带着你的补充继续做,不用先中止。输入框上方会显示「待注入」,注入后才作为你的消息出现在对话里。
如果当前任务正处在无法插话的阶段(刚排队、正在收尾),消息会排队,任务结束后自动发送。按 Esc 中止任务时(包括刚发出、任务还没真正开始的那一瞬),排队中的消息不再发送,可以按 ↑ 从输入历史找回。运行中输入的 /命令 照常执行,但会影响当前任务的命令(如 /new、/resume、/compact)需要先中止。
状态栏
底部一行显示:模型 · 思考档(当前模型实际按别的档运行时显示为 请求档→实际档)· 审批档 · 计划模式 · 当前 Agent · 排队消息数 · 运行状态 · 用量 · 工作目录。终端太窄时从右侧截断。
输入历史
输入历史跨会话保存在 ~/.tangu/tui_history(仅本人可读;同时开多个终端也不会互相覆盖)。↑ 最多翻到最近 500 条;文件本身攒到约 1000 条才整理回最近 500 条,所以磁盘上最多留有约 1000 条旧输入。以空格开头的输入不会被记录;看起来像密钥的内容(如 sk-…、ghp_…)只在本次会话可用 ↑ 找回,不写入磁盘。
与桌面端的关系
| 桌面端 | CLI | |
|---|---|---|
| Agent / 记忆 / 配置 | 同一套 | 同一套 |
| 登录凭证 | 同一份 | 同一份 |
| 审批 | 审批卡 | 终端内确认 |
| 适合 | 日常主界面 | 快速一嗓子、脚本集成、SSH 场景 |
自托管(进阶)
安装包内含 tangu-server,可以把引擎独立部署在服务器上供远程使用。面向进阶用户,此处不展开。
💡 提示:脚本中使用需要确认的命令(如插件安装)时,可加
--yes跳过交互确认;无终端交互且未加--yes时命令会安全退出而不是擅自继续。