| 1 | # Reasonix CLI 命令参考 |
| 2 | |
| 3 | <a href="../README.zh-CN.md">README</a> |
| 4 | · |
| 5 | <a href="./CLI.md">English</a> |
| 6 | · |
| 7 | <a href="./GUIDE.zh-CN.md">使用指南</a> |
| 8 | |
| 9 | 本文介绍交互式会话、一次性自动化、会话恢复、权限参数和常用会话内命令。Provider |
| 10 | 配置、插件和沙盒策略见[使用指南](./GUIDE.zh-CN.md)。 |
| 11 | |
| 12 | ## 启动会话 |
| 13 | |
| 14 | ```sh |
| 15 | reasonix |
| 16 | reasonix --model deepseek-pro |
| 17 | reasonix --effort high |
| 18 | reasonix --dir /path/to/project |
| 19 | ``` |
| 20 | |
| 21 | 不带子命令运行 `reasonix` 会进入交互式终端界面。所选连接缺少凭据时,CLI 会打开 |
| 22 | 本地连接选择器,不会发送模型请求;认证未就绪期间仍可查看历史并使用本地命令。 |
| 23 | |
| 24 | | 参数 | 用途 | |
| 25 | | --- | --- | |
| 26 | | `--model NAME` | 选择已配置的 provider 或 `provider/model` 引用。 | |
| 27 | | `--effort LEVEL` | 覆盖当前会话的 reasoning effort。 | |
| 28 | | `--max-steps N` | 为本次运行设置工具调用轮数上限;`0` 使用自动执行。 | |
| 29 | | `--dir PATH` | 加载配置和工具前切换 workspace 根目录。 | |
| 30 | | `--add-dir PATH` | 增加一个允许工具写入的目录;可重复传入。 | |
| 31 | | `-c`、`--continue` | 恢复最近一次会话。 | |
| 32 | | `-r`、`--resume [QUERY]` | 打开会话选择器,或恢复匹配的会话。 | |
| 33 | | `--copy` | 复制要恢复的会话,并在可写副本中继续。 | |
| 34 | | `--allowed-tools RULES` | 增加仅当前会话生效的权限 allow 规则;可重复传入,`--allowedTools` 是别名。 | |
| 35 | | `--permission-mode MODE` | 以指定的权限姿态启动。 | |
| 36 | | `--dangerously-skip-permissions` | 已弃用的兼容参数;会保守迁移为 `workspace-write`。进入 YOLO 请用 `--permission-mode danger-full-access`。 | |
| 37 | |
| 38 | 适用时,参数可以放在 prompt 前面或后面。 |
| 39 | |
| 40 | ## 更新原生 CLI |
| 41 | |
| 42 | ```sh |
| 43 | reasonix upgrade # 安装最新正式版 |
| 44 | reasonix upgrade --check # 只报告目标版本 |
| 45 | reasonix upgrade --force # 重新安装当前正式版 |
| 46 | ``` |
| 47 | |
| 48 | 更新器只选择严格的 `vX.Y.Z` 非 prerelease GitHub Release。1.x 兼容期内,旧渠道 |
| 49 | 位置参数与 `--channel` 仍可使用,但都会解析到同一正式版并打印废弃提示。历史 |
| 50 | `[cli].update_channel` 值不再影响更新,并会在 Reasonix 下次保存配置时移除。别名 |
| 51 | `reasonix update` 的行为完全相同。 |
| 52 | |
| 53 | ## 配置供应商 |
| 54 | |
| 55 | ```sh |
| 56 | reasonix setup # 管理用户全局配置 |
| 57 | reasonix setup --local # 管理 ./reasonix.toml |
| 58 | reasonix setup /path/to/config.toml |
| 59 | ``` |
| 60 | |
| 61 | 在交互式终端中,`reasonix setup` 是一个暂存式供应商管理器。它会列出已配置的 |
| 62 | provider,并支持: |
| 63 | |
| 64 | - 添加 OpenAI-compatible 或 Anthropic-compatible provider; |
| 65 | - 编辑 endpoint 和模型列表; |
| 66 | - 更新 API Key,或测试连接并刷新模型; |
| 67 | - 设置默认模型; |
| 68 | - 删除 provider。 |
| 69 | |
| 70 | 选择“保存并退出”后会先展示并确认待执行操作;取消会丢弃本次修改。保存时 setup 会重新 |
| 71 | 加载最新配置:桌面端或其他 CLI 产生的不相关修改会被保留,改到同一项时则报告冲突, |
| 72 | 不会直接覆盖。 |
| 73 | |
| 74 | Provider 定义只保存 `api_key_env` 变量名。即使使用 `--local`,Key 的真实值也始终保存 |
| 75 | 在 CLI 与桌面端共用的 Reasonix 全局 `.env` 中。新增、替换或明确清空 Key 时,Reasonix |
| 76 | 会分配新的独立凭据槽位,并原子切换所选连接的引用;已有固定变量继续可读,只在用户编辑 |
| 77 | 对应连接时迁移。 |
| 78 | |
| 79 | TUI 内可用 `/setup` 打开同一连接流程,`/auth` 是别名。Key 输入会遮罩显示;按 |
| 80 | `Ctrl+T` 测试当前草稿连接,Enter 保存,Escape 取消。`/?` 是 `/help` 的别名。 |
| 81 | 认证未就绪时,普通输入不会触发 provider 请求。 |
| 82 | |
| 83 | ```sh |
| 84 | reasonix doctor credentials |
| 85 | reasonix doctor credentials --json |
| 86 | reasonix doctor credentials --probe |
| 87 | reasonix doctor credentials --repair --dry-run |
| 88 | reasonix doctor credentials --repair |
| 89 | ``` |
| 90 | |
| 91 | 默认诊断只读。`--probe` 只测试临时创建和原子重命名,不替换 `.env`。修复仅限 |
| 92 | Reasonix home 内归当前用户所有的普通文件;不会接管所有权、删除 deny 规则、向 |
| 93 | `Everyone` 授权、跟随链接/reparse point,也不会终止占用文件的进程。 |
| 94 | |
| 95 | ### 配置费用展示币种 |
| 96 | |
| 97 | 使用用户全局货币命令查看或选择费用展示币种: |
| 98 | |
| 99 | ```sh |
| 100 | reasonix config currency # 显示已保存值和最终解析结果 |
| 101 | reasonix config currency auto # 钱包币种优先,否则原币价表币种 |
| 102 | reasonix config currency CNY |
| 103 | reasonix config currency USD |
| 104 | ``` |
| 105 | |
| 106 | `auto` 在配置中保持未解析。只有一个有效钱包币种时,它才会成为当前运行时提示;否则 |
| 107 | CLI 使用原币或按 ISO 排序的币种桶。语言和主机 locale 不再选择价表。该偏好只保存在 |
| 108 | 用户全局配置中,项目 `reasonix.toml` 无法覆盖,因此不支持 `--local`。自定义价格不会被修改。 |
| 109 | |
| 110 | 在交互式会话中,`/currency` 显示已保存值和最终解析结果; |
| 111 | `/currency auto|CNY|USD` 会修改偏好并刷新当前运行时,同时保留当前对话。 |
| 112 | |
| 113 | ### 配置自动压缩阈值 |
| 114 | |
| 115 | 桌面端与 CLI 共用用户全局的自动压缩阈值。可以查看当前生效值及来源、修改全局默认值, |
| 116 | 或为当前项目添加覆盖: |
| 117 | |
| 118 | ```sh |
| 119 | reasonix config compact-ratio # 查看生效值及来源 |
| 120 | reasonix config compact-ratio 75 # 设置用户全局默认值 |
| 121 | reasonix config compact-ratio --local 75 # 写入 ./reasonix.toml 项目覆盖 |
| 122 | ``` |
| 123 | |
| 124 | 可设置范围为 30–85%,内置默认值为 80%。数值越低越早压缩,可能增加摘要调用和成本, |
| 125 | 也可能降低 prompt prefix 缓存复用率;数值越高则会在压缩前保留更多上下文。阈值以下完整工具结果可能增加普通请求成本; |
| 126 | 达到压力后会先持久剪枝,再运行 cache-aligned 摘要。项目 `reasonix.toml` 的优先级高于 |
| 127 | 用户全局配置。修改会应用于新启动的 CLI 会话;已经运行的会话继续使用启动时加载的阈值。 |
| 128 | |
| 129 | ## 一次性运行与自动化 |
| 130 | |
| 131 | 脚本只需要最终回答时,使用 `-p` / `--print`: |
| 132 | |
| 133 | ```sh |
| 134 | reasonix -p "总结这个仓库" |
| 135 | reasonix -p "总结这个仓库" --output-format json |
| 136 | reasonix run "实现 main.go 里的 TODO" |
| 137 | reasonix run --auto "实现 main.go 里的 TODO" |
| 138 | echo "解释这段代码" | reasonix run |
| 139 | ``` |
| 140 | |
| 141 | 未使用 `-p` 或结构化输出格式时,`reasonix run` 保持正常的终端流式展示。它也接受 |
| 142 | `--model`、`--max-steps`、`--effort`、`--dir`、 |
| 143 | `--add-dir`、`--continue`、`--resume QUERY`、`--copy`、`--allowed-tools` 和 |
| 144 | `--permission-mode`,以及作为 `--permission-mode workspace-write` 兼容别名的 `--auto` / `-y`。 |
| 145 | |
| 146 | ### 基准对照组 |
| 147 | |
| 148 | `--ablate` 用于整体关闭某个子系统,让基准测试能把成功率的变化归因到它身上。取值是 |
| 149 | `evidence`、`planner`、`subagent`、`retrieval`、`compaction` 的逗号分隔组合,另外还接受 |
| 150 | `none`(默认,全部启用)和 `all`。子代理继承父代理的对照组配置,对照组名称会写入 |
| 151 | `--metrics` 文件,因此记录下来的每次运行都能自证跑的是哪一组。 |
| 152 | |
| 153 | ```sh |
| 154 | reasonix run --ablate evidence,planner --metrics run.json "修复失败的测试" |
| 155 | ``` |
| 156 | |
| 157 | 这是测量工具,不是调优开关:关掉某个子系统只会让 Reasonix 在它本来负责的工作上变差。 |
| 158 | |
| 159 | ### 轨迹记录 |
| 160 | |
| 161 | `--trajectory PATH` 会把整次运行的完整事件流——带绝对起止时间的工具调用与结果、 |
| 162 | 思考内容、重试、就绪与恢复决策——按每个事件一行的方式追加为带时间戳和序号的 |
| 163 | JSONL 记录,便于离线回放并归因时间去向(工具执行 vs. 两次调用之间的模型思考)。 |
| 164 | 记录复用共享的 `eventwire` JSON 契约(放在 `event` 键下),外层包 |
| 165 | `schema_version`、`seq` 和 `ts`(unix 毫秒)。运行被杀死时已写完的行全部保留。 |
| 166 | 与 `--events-jsonl` 不同,该文件包含提示词、工具参数和思考内容:请像对待会话 |
| 167 | 转录一样谨慎处理。 |
| 168 | |
| 169 | ```sh |
| 170 | reasonix run --metrics run.json --trajectory run.trajectory.jsonl "修复失败的测试" |
| 171 | ``` |
| 172 | |
| 173 | ### 回合阶段 |
| 174 | |
| 175 | 回合运行期间,宿主会发布一个不含内容的阶段标记,供前端显示当前回合正在做 |
| 176 | 什么。CLI 显示在加载行上,桌面端显示在输入框区域。 |
| 177 | |
| 178 | 这些阶段描述执行计时,不代表验证证据。桌面端检查结果卡由实际运行中的验证工具 |
| 179 | 驱动,不根据阶段名称生成。 |
| 180 | |
| 181 | | 阶段 | 触发时机 | `capability_phases` 桶 | |
| 182 | | --- | --- | --- | |
| 183 | | `working` | 回合开始时、每批工具执行返回后,以及最终就绪检查之后 | `ProviderWaitMs` | |
| 184 | | `checking` | 即将执行一批工具时 | `ToolExecMs` | |
| 185 | | `verifying` | 给出最终回答前运行最终就绪检查时 | `ToolExecMs` | |
| 186 | |
| 187 | 某个阶段在下一个阶段开始时才计入对应的桶,因此 `--metrics` 中的耗时可以区分 |
| 188 | 模型等待与工具执行,而无需重放整次运行。不足 1 毫秒的区间会被丢弃;以错误或 |
| 189 | 暂停(而非给出回答)结束的回合不会计入最后一个区间,因此这些桶应视为下界, |
| 190 | 而不是对整个回合的完整划分。 |
| 191 | |
| 192 | 工具批次内弹出的审批提示会计入 `ToolExecMs`:该批次从 `checking` 一直开到下一次 |
| 193 | `working`,而当前没有用户等待阶段的发射点。`ReviewMs`、`SubagentWaitMs`、 |
| 194 | `UserWaitMs` 与 `CompactMs` 保持为 0,因为回合内没有任何地方开启这些阶段—— |
| 195 | `reviewing` 只在运行退出时发布,那时回合的相位时钟已经关闭。 |
| 196 | |
| 197 | ### 输出格式 |
| 198 | |
| 199 | | 格式 | 行为 | |
| 200 | | --- | --- | |
| 201 | | `text` | 人类可读文本;配合 `-p` 时只输出最终回答。 | |
| 202 | | `json` | 输出一个最终结果对象。 | |
| 203 | | `stream-json` | 每行输出一个共用 `eventwire` JSON 对象,最后再输出最终结果对象。 | |
| 204 | |
| 205 | ```sh |
| 206 | reasonix -p "列出有风险的改动" --output-format text |
| 207 | reasonix -p "总结 diff" --output-format json |
| 208 | reasonix run "运行测试" --output-format stream-json |
| 209 | ``` |
| 210 | |
| 211 | 最终结构化对象的格式如下: |
| 212 | |
| 213 | ```json |
| 214 | { |
| 215 | "type": "result", |
| 216 | "subtype": "success", |
| 217 | "is_error": false, |
| 218 | "duration_ms": 123, |
| 219 | "num_turns": 1, |
| 220 | "result": "...", |
| 221 | "session_id": "...", |
| 222 | "total_cost": 0, |
| 223 | "currency": "CNY", |
| 224 | "total_cost_usd": 0, |
| 225 | "usage": { |
| 226 | "input_tokens": 0, |
| 227 | "output_tokens": 0, |
| 228 | "cache_read_input_tokens": 0, |
| 229 | "cache_creation_input_tokens": 0 |
| 230 | } |
| 231 | } |
| 232 | ``` |
| 233 | |
| 234 | `total_cost` 仅在形成单一 `selected` 展示金额时存在(ISO 代码见 `currency`)。有 |
| 235 | `cost_quote` 时优先读它:含原币费用、`original_totals`、发生时的官方双区域 |
| 236 | `official_table` 估值、`cost_complete`、`display_complete`、`display_status`,以及 |
| 237 | `billing_mode`(`payg` 或 `subscription_equivalent`,后者表示如 MiMo Token Plan |
| 238 | 的「按量等效估算」)。 |
| 239 | |
| 240 | `total_cost_usd` 仅为兼容别名,数值镜像 `total_cost`,**不表示一定是美元**。混用 |
| 241 | 多种原币时不会再报错:若 usage/价表事实完整则 `cost_complete=true`、 |
| 242 | `display_complete=false`,并用 `original_costs`/`original_totals` 给出各原币明细, |
| 243 | 绝不伪造跨币种合计。 |
| 244 | |
| 245 | 全局展示偏好为 `[billing].display_currency`(`auto|CNY|USD`);旧 |
| 246 | `[desktop].currency` 仍会迁移。供应商原币价表由各条目冻结的 `billing_currency` |
| 247 | 决定,切换展示币种不会改写价表。可用 `reasonix doctor billing` 排查。 |
| 248 | |
| 249 | 执行失败时使用 `subtype: "error_during_execution"` 和 `is_error: true`。 |
| 250 | 结构化模式会把运行时错误保留在 JSON 中,不再额外重复输出一份人类可读错误。认证失败还会 |
| 251 | 按需返回 `error_code`、`authentication_status` 和 `recovery_actions`; |
| 252 | `--events-jsonl` 的最终 `run_done` 记录使用相同字段。例如缺少 Key 时会返回 |
| 253 | `missing_credential`,并列出 `configure_credentials`、`select_model`、 |
| 254 | `diagnose_credentials` 等恢复动作,且不会发送模型请求。 |
| 255 | |
| 256 | 完成校验器已移除。模型正常结束且没有工具调用时,当前轮次直接结束;包含工具调用时, |
| 257 | 继续进入工具循环;真正的空响应会在 frozen request 边界重试。旧的 |
| 258 | `completion_validation`、`completion_evaluator_model` 和 |
| 259 | `REASONIX_COMPLETION_VALIDATION_MODE` 设置仍可读取,但会被忽略,配置渲染器也不再生成; |
| 260 | 显式预算、工具安全边界和协议恢复边界仍然有效。Goal 完成是模型声明,不再执行宿主质量门禁或独立 evaluator。详见[迁移说明](EXECUTION_MODEL_SIMPLIFICATION.md)。 |
| 261 | |
| 262 | ### 脱敏机器接口 |
| 263 | |
| 264 | 自动化只需要生命周期遥测、不能接收 prompt、reasoning、工具参数/输出或审批文本时, |
| 265 | 使用独立的事件参数: |
| 266 | |
| 267 | ```sh |
| 268 | reasonix run --events-jsonl "运行 focused tests" |
| 269 | ``` |
| 270 | |
| 271 | 每行都包含 `schema_version`、`sequence` 和 `kind`,最后一行为 |
| 272 | `kind: "run_done"`。`--events-jsonl` 与包含更多内容的 |
| 273 | `--output-format stream-json` 是两个独立契约,不能和 `--output-format` |
| 274 | 组合使用。 |
| 275 | |
| 276 | 以下只读命令可以查询持久化状态,但不会输出 transcript、label、command、output、路径、 |
| 277 | PID 或 hostname。这里的“只读”是指不会修改 transcript、runtime、recovery 或被查询的 |
| 278 | 状态;首次使用脱敏机器接口时,Reasonix 可能会在用户状态目录初始化一个私有身份密钥: |
| 279 | |
| 280 | ```sh |
| 281 | reasonix session list --json [--dir SESSION_DIR | --project-root PATH] |
| 282 | reasonix session show <machine-session-id> --json [--dir SESSION_DIR | --project-root PATH] |
| 283 | reasonix session status <machine-session-id> --json [--dir SESSION_DIR | --project-root PATH] |
| 284 | reasonix session recovery [<machine-session-id>] --json [--dir SESSION_DIR | --project-root PATH] |
| 285 | reasonix task list --json [--dir SESSION_DIR | --project-root PATH] [--session MACHINE_SESSION_ID] |
| 286 | reasonix task show <task-id> --json [--dir SESSION_DIR | --project-root PATH] [--session MACHINE_SESSION_ID] |
| 287 | reasonix task monitor list --json [--dir PROJECT_DIR] |
| 288 | reasonix task monitor status <task-id> --json [--dir PROJECT_DIR] |
| 289 | reasonix task monitor events <task-id> --json|--jsonl [--dir PROJECT_DIR] [--after N] [--follow] |
| 290 | reasonix hook list --json [--project-root PATH] [--home-dir PATH] |
| 291 | reasonix hook status --json [--project-root PATH] [--home-dir PATH] |
| 292 | ``` |
| 293 | |
| 294 | 对于 `session` 和 `task`,`--dir` 明确指定 session 存储目录,`--project-root` |
| 295 | 则解析指定项目的 session store;两者不能同时使用。都未指定时,Reasonix 选择当前 |
| 296 | 项目的 session store。对于 `hook`,`--dir` 是 `--project-root` 的别名。 |
| 297 | `hook list` 的状态值为 `active` 或 `invalid`;`invalid` 表示配置的 |
| 298 | event 因事件名、命令/context 来源或工具事件 matcher 无效而无法执行。非工具事件 |
| 299 | 会忽略 matcher。 |
| 300 | |
| 301 | 机器 session ID 是带密钥的 opaque hash,不是 transcript 文件名。在同一个 Reasonix |
| 302 | 用户状态目录中,同一 session 的 ID 保持稳定;不同安装密钥会生成互不关联的 ID,无法再 |
| 303 | 根据时间戳或模型 label 离线猜测。迁移 Reasonix 状态目录时,如果自动化依赖已有 machine |
| 304 | ID,需要一并保留该私有身份密钥。任务仍在运行时 |
| 305 | `finished_at` 为空;只有任务已经结束并且持久化产物存在时,才会输出 |
| 306 | `artifact_complete=true`。没有 live session lease 的 `running` 记录会显示为 |
| 307 | `interrupted`;再次打开该 session 时也会自动修复持久化生命周期状态。 |
| 308 | |
| 309 | Schema version 1 的兼容规则: |
| 310 | |
| 311 | - 消费端必须忽略未知字段; |
| 312 | - 同一 schema version 内不会删除字段或改变字段类型; |
| 313 | - 空集合编码为 `[]`; |
| 314 | - 参数错误退出码为 `2`,状态/查询错误退出码为 `1`; |
| 315 | - 机器命令错误是带稳定 `error.code` 的 JSON 对象。 |
| 316 | |
| 317 | ## 恢复会话 |
| 318 | |
| 319 | ```sh |
| 320 | reasonix --continue |
| 321 | reasonix --resume |
| 322 | reasonix --resume provider-config |
| 323 | reasonix --resume <session-id> |
| 324 | reasonix --resume provider-config --copy |
| 325 | ``` |
| 326 | |
| 327 | - `--continue` 立即恢复最新保存的会话。 |
| 328 | - 在交互式终端中,单独使用 `--resume` 会打开可搜索选择器。 |
| 329 | - `--resume QUERY` 接受精确 session ID 或路径,也支持唯一匹配标题或预览内容的 |
| 330 | 子串。没有匹配或匹配不唯一时会返回明确错误。 |
| 331 | - 为保持兼容,仍接受 `--resume=true` 和 `--resume=false`。 |
| 332 | - `--copy` 不修改原 transcript,而是在新的可写会话中继续。原会话已被另一个 |
| 333 | Reasonix 进程占用时可以使用它。 |
| 334 | |
| 335 | 一次性运行可用 `reasonix run --resume QUERY "任务"`,支持 session 文件路径、 |
| 336 | session ID,或来自 `--events-jsonl` / `reasonix session show --json` 的不透明 |
| 337 | machine session ID。Session lease 会阻止桌面端和 CLI 同时写入同一个 transcript。 |
| 338 | |
| 339 | ## 权限 |
| 340 | |
| 341 | ```sh |
| 342 | reasonix --permission-mode read-only |
| 343 | reasonix --permission-mode workspace-write |
| 344 | reasonix --permission-mode danger-full-access |
| 345 | reasonix -p "运行指定测试" --allowed-tools "Bash(go test ./...)" |
| 346 | ``` |
| 347 | |
| 348 | | 权限模式 | 行为 | |
| 349 | | --- | --- | |
| 350 | | `read-only` | 可读取工作区;写入和外部副作用需要范围明确的授权。 | |
| 351 | | `workspace-write` | 可写工作区和会话私有临时目录;这是默认模式。 | |
| 352 | | `danger-full-access` | 以当前系统账户运行,不使用 Reasonix 文件和网络沙箱;宿主仍在启动前执行显式 deny。 | |
| 353 | |
| 354 | 内联脚本、管道、命令替换和 shell `-c` 与普通命令使用同一权限及沙箱边界,不能仅因 |
| 355 | 语法形式产生审批。 |
| 356 | |
| 357 | `--allowed-tools` 是会话权限覆盖,不是 provider tool schema 过滤器。规则可以用逗号 |
| 358 | 或空格分隔,也可重复传入参数。配置中的 deny 规则始终优先于命令行 allow 规则。 |
| 359 | |
| 360 | 非交互运行(`reasonix run` / `-p`)没有可应答的审批界面。`read-only` 对未获得窄范围 |
| 361 | 授权的写入和副作用失败关闭;`workspace-write` 在操作系统沙箱内直接运行日常构建、测试、 |
| 362 | 管道与内联脚本;`danger-full-access` 必须显式选择,并且仍不能绕过 deny 规则。 |
| 363 | |
| 364 | ## 附加目录 |
| 365 | |
| 366 | ```sh |
| 367 | reasonix --add-dir ../shared |
| 368 | reasonix -p "同时更新两个项目" \ |
| 369 | --add-dir ../frontend \ |
| 370 | --add-dir ../backend |
| 371 | ``` |
| 372 | |
| 373 | 相对路径从 workspace 根目录解析,并且必须是已存在的目录。Reasonix 会解析符号链接、 |
| 374 | 去重,并在当前会话中扩展文件写入工具和沙盒 Bash 的写入边界。这些目录只在运行时生效, |
| 375 | 不会写入配置。 |
| 376 | |
| 377 | ## 交互操作 |
| 378 | |
| 379 | `/model`、`/provider` 和 `/resume` 使用可搜索选择器。审批提示也使用相同的行选择 |
| 380 | 交互,同时保留原有单键快捷操作。 |
| 381 | |
| 382 | | 按键 | 操作 | |
| 383 | | --- | --- | |
| 384 | | `Up` / `Down`、`Ctrl+P` / `Ctrl+N` | 在选择器或审批行之间移动。 | |
| 385 | | `j` / `k` | 搜索词为空时移动;开始搜索后作为普通 `j` / `k` 字符输入。 | |
| 386 | | 输入文字 | 过滤可搜索选择器。 | |
| 387 | | `Enter` | 选择当前高亮项。 | |
| 388 | | `Esc` | 取消当前选择器或审批。 | |
| 389 | | `y` / `a` / `p` / `n`、数字键 | 执行对应的审批动作。 | |
| 390 | | `Shift+Tab` | 按“仅可查看 → 工作区内修改 → YOLO → Plan”循环。 | |
| 391 | | `Ctrl+Y` | 切换 YOLO;实际设置的运行时权限为 `danger-full-access`。 | |
| 392 | |
| 393 | 响应式底栏左侧显示当前交互状态;空间足够时,右侧显示模型和推理强度。第二行按 |
| 394 | 可用性显示仓库与会话遥测,例如缓存命中率、上下文占用、压缩余量、后台任务和余额。 |
| 395 | “就绪”表示输入框当前空闲;进入选择器、审批、图片粘贴、shell 模式等需要用户关注的状态 |
| 396 | 时,这个位置会切换。窄终端会移动或压缩完整信息组,不会从中间截断标签。可见标签和执行 |
| 397 | 设定值会跟随 `/language`。 |
| 398 | |
| 399 | 使用 `/theme auto|light|dark` 选择终端背景模式,也可以从 `/theme` 列出的命名配色中选择 |
| 400 | 强调色。输入框上下边线、插入光标、选区、滚动条和底栏都会使用当前 CLI 主题。Transcript |
| 401 | 导航、多行输入、rewind 和剪贴板操作见[快捷键](./GUIDE.zh-CN.md#快捷键)。 |
| 402 | |
| 403 | 剪贴板操作按内容类型明确分开。本地 transcript 和输入框选区写入系统剪贴板,并且只有写入 |
| 404 | 成功后才提示完成;SSH 会回退到明确标记的 OSC 52 请求。文本粘贴继续走终端的 |
| 405 | bracketed-paste 动作(macOS 通常为 `Cmd+V`,其它平台使用终端自身配置)。Reasonix 接管 |
| 406 | 本地会话的鼠标时,没有选区的右键会读取剪贴板文本并走同一粘贴路径,有选区时右键优先复制。 |
| 407 | SSH 下远端进程无法读取本机剪贴板,请使用终端粘贴快捷键;`/mouse` 可恢复终端原生右键菜单。 |
| 408 | 图片粘贴由 Reasonix 接管:macOS/Linux 使用 `Ctrl+V`,Windows 使用 `Alt+V`,也可运行 |
| 409 | `/paste-image`;附件标记准备完成前,底栏会显示“正在粘贴图片…”。若终端把该快捷键转发给 |
| 410 | 应用而不是自行粘贴,剪贴板中没有图片时会回退为文本粘贴,因此该按键不会吞掉纯文本。 |
| 411 | |
| 412 | ## 会话内命令 |
| 413 | |
| 414 | 在交互式会话中输入 `/help` 可查看完整命令列表。斜杠补全、帮助、dispatch 和别名来自 |
| 415 | 同一份 registry,因此界面展示与 TUI 实际接受的命令保持一致。 |
| 416 | |
| 417 | | 命令 | 用途 | |
| 418 | | --- | --- | |
| 419 | | `/continue-checks [补充要求]` | 继续紧邻上一轮、已暂停的任务收尾检查,并保留其工具证据。该操作仅可消费一次;出现新的用户消息后,旧卡片会被拒绝。 | |
| 420 | | `/model` | 搜索已配置模型并切换当前模型。 | |
| 421 | | `/provider` | 选择 provider,再选择该 provider 下的模型。 | |
| 422 | | `/resume` | 搜索最近会话并切换。 | |
| 423 | | `/takeover` | 从本机常驻 serve 接管上一次被拒绝的会话(或列表项):本 CLI 成为写入方,远端观看者变为只读旁观者直至取回。桌面端取回后可直接再次接管原会话;若已无任何运行时持有该会话,则直接恢复它。 | |
| 424 | | `/status` | 显示模型、effort、cache、Git、后台任务和余额信息。 | |
| 425 | | `/theme [auto\|light\|dark\|style]` | 查看或切换 CLI 背景模式和强调色。 | |
| 426 | | `/currency [auto\|CNY\|USD]` | 查看或切换用户全局费用展示币种,并刷新当前运行时。 | |
| 427 | | `/paste-image` | 读取剪贴板图片并插入可编辑的附件标记。 | |
| 428 | | `/mouse` | 切换应用内鼠标选区、滚动条和滚轮处理;SSH 会话默认关闭接管,保证终端原生选区可用。 | |
| 429 | | `/effort` | 查看或切换 reasoning effort。 | |
| 430 | | `/output-style` | 选择回答风格。 | |
| 431 | | `/verbose` | 切换详细 reasoning 显示。 | |
| 432 | | `/sandbox` | 查看沙盒状态。 | |
| 433 | | `/goal` | 启动、查看或清除长周期 Goal。 | |
| 434 | | `/docs [问题]` | 显示内置语料身份,或先本地检索,再让当前配置的 AI 根据版本匹配证据回答。 | |
| 435 | | `/reasonix:docs [问题]` | 当已有自定义命令或兼容插件/Skill 别名占用 `/docs` 时优先使用的内置后备入口;若这个名称也已被占用,菜单会选择下一个空闲的 `reasonix:` 限定名,不覆盖原命令。 | |
| 436 | | `/mcp`、`/skills`、`/hooks` | 查看和管理扩展。 | |
| 437 | | `/remember <note>` | 把常驻 note 追加到项目指令文档;`# <note>` 是快捷方式。 | |
| 438 | | `/memory [subcommand]` | 查看指令、记忆 provenance、召回、revision 与恢复。 | |
| 439 | | `/rewind` | 把对话和/或代码恢复到更早的 turn。 | |
| 440 | | `/tree`、`/branch`、`/switch` | 查看或切换会话分支。 | |
| 441 | | `/reload` | 重载 agent 运行时(扩展、工具、skills、commands、hooks、providers),保留当前会话。回合运行中只排队一次;失败原子——重建失败时当前运行时不受影响。 | |
| 442 | |
| 443 | 切换模型或 effort 会重建运行时,同时保留当前对话、会话级权限覆盖、附加目录 |
| 444 | 访问权限和 session ownership。`/reload` 使用同一套失败原子重建语义。 |
| 445 | 普通请求一律进入 executor,没有自动任务模式或可选质量底线,统一采用标准执行行为。 |
| 446 | 独立 Planner 只响应显式 Plan、批准边界和 Goal 启动。 |
| 447 | |
| 448 | `/preset`、`/work-mode` 与 `/profile` 仅作为隐藏兼容命令保留。已知旧值会被接受, |
| 449 | 提示该设置已退役,并保持标准执行;未知值仍会报错。 |
| 450 | |
| 451 | 用量统计使用独立的可丢弃 rollup 投影: |
| 452 | reasonix catalogs reindex usage [--json] |
| 453 | 详见 [用量 Catalog](./USAGE_CATALOG.zh-CN.md)。 |
| 454 | |
| 455 | 可以独立检查或重建可丢弃的 Task 投影: |
| 456 | |
| 457 | ```sh |
| 458 | reasonix doctor catalogs [--json] |
| 459 | reasonix catalogs reindex tasks [--project PATH ...] [--json] |
| 460 | ``` |
| 461 | |
| 462 | 权威 FileStore 边界、跨项目路由和重建行为见 |
| 463 | [Task Catalog](./TASK_CATALOG.zh-CN.md)。 |
| 464 | |
| 465 | ### 记忆诊断与恢复 |
| 466 | |
| 467 | 直接运行 `/memory` 会显示全部 project/global active facts,不会隐藏跨 scope 的同名条目。 |
| 468 | 每条事实包含稳定 ID、revision、scope、type、freshness 和 description。斜杠补全会提供 |
| 469 | 可用子命令、active ID/name,以及当前 store 拥有的 archive path。 |
| 470 | |
| 471 | | 命令 | 用途 | |
| 472 | | --- | --- | |
| 473 | | `/memory instructions` | 显示解析后的指令 precedence、目录、imports 和 diagnostics。 | |
| 474 | | `/memory recall` | 解释最近一次自动召回的 query、hits、score、原因、freshness 和预算。 | |
| 475 | | `/memory revisions <id-or-name>` | 显示 active revision 与不可变历史。 | |
| 476 | | `/memory restore <id-or-name> <revision>` | 把旧内容恢复为一个单调递增的新 revision。 | |
| 477 | | `/memory archived` | 列出 archive facts 及其受管路径。 | |
| 478 | | `/memory recover <archive-path>` | 不覆盖 active data,把 archive 恢复为新 revision。 | |
| 479 | |
| 480 | 这些命令始终作用于当前 session controller。当会话位于远端主机上(`reasonix remote |
| 481 | connect` 或桌面的远程网页窗口)时,它们使用远程 memory catalog,绝不回退读取桌面本机 |
| 482 | 记忆。权限、自动召回、写入确认和迁移行为见 |
| 483 | [Context Engine v2](./SESSION_MEMORY_RETRIEVAL.zh-CN.md)。 |
| 484 | |
| 485 | 契约见 [Session Catalog and Desktop Startup](./SESSION_CATALOG.md)。 |
| 486 | |
| 487 | 用量统计使用独立的可丢弃 rollup 投影: |
| 488 | |
| 489 | ```sh |
| 490 | reasonix doctor catalogs [--json] |
| 491 | reasonix catalogs reindex usage [--json] |
| 492 | ``` |
| 493 | |
| 494 | ``` |
| 495 | |
| 496 | 详见 [用量 Catalog](./USAGE_CATALOG.zh-CN.md)。 |
| 497 | |
| 498 | ### 记忆诊断与恢复 |
| 499 | |
| 500 | 直接运行 `/memory` 会显示全部 project/global active facts,不会隐藏跨 scope 的同名条目。 |
| 501 | 每条事实包含稳定 ID、revision、scope、type、freshness 和 description。斜杠补全会提供 |
| 502 |