CLI 概览
概览在终端执行的 moai(Go 二进制)的所有命令与标志。它与在 Claude Code 对话窗输入的 /moai(斜杠子命令)是完全不同的工具 —— 本页只讲终端 CLI。
各命令的详细参考(标志、子命令、示例)请见 CLI 参考 部分。
moai --helpmoai CLI 分为三组。
| 组 | 命令 | 说明 |
|---|---|---|
| Launch | moai cc · moai glm | 启动 Claude Code 会话(选择后端) |
| Project | moai init · moai update · moai doctor · moai status | 项目初始化、更新、诊断、状态查询 |
| Tools | moai profile · moai inventory · moai hook · moai worktree · moai spec · moai harness · … | 配置、清单、钩子、工作树等工具 |
用 moai version 确认当前安装的版本。
moai version╭────────────────────────╮
│ │
│ moai-adk v3.0.0 │
│ │
│ │
╰────────────────────────╯
v3.0.0 none built unknown框式横幅下方一行按 <版本> <提交哈希> built <构建时刻> 顺序显示。若像 go install 那样在无 ldflags 下构建,提交显示为 none,构建时刻显示为 unknown。
初始化项目。交互式向导会设置语言、Git 自动化、模型策略、harness 配置文件等。
moai init [project-name] [OPTIONS]| 标志 | 说明 |
|---|---|
--non-interactive | 跳过交互式向导(使用标志与默认值) |
--force | 强制重新初始化既有项目(会备份当前 .moai/) |
--no-hooks | 跳过 Git 钩子安装 |
--all | 部署 catalog 全部条目(core + optional packs + harness-generated) |
--mode <ddd|tdd> | 开发方法论(默认: tdd) |
--language <lang> | 主编程语言 |
--framework <name> | 框架名称(默认: 自动检测或 “none”) |
--name <name> | 项目名称(默认: 目录名) |
--root <path> | 项目根目录(默认: 当前目录) |
--git-mode <manual|personal|team> | Git 工作流模式(默认: manual) |
--git-provider <github|gitlab> | Git 提供者 |
--enable-lsp | 启用 LSP 联动(默认: true) |
--enforce-quality | 强制质量门禁(默认: true) |
--enable-design | 启用 design 工作流(默认: true) |
--profile <high|medium|low> | 已弃用的桩 —— 为脚本兼容仍接受值,但没有任何效果,并打印指向 moai profile setup 的弃用警告 |
--model-policy <high|medium|low> | 已弃用的桩 —— 为脚本兼容仍接受值,但没有任何效果,并打印指向 moai profile setup 的弃用警告 |
--high | 已弃用的桩 —— 已退役的 --model-policy high 的别名,打印同样的弃用警告 |
# 初始化新项目(交互式向导)
moai init my-project
# 安装到既有文件夹
cd my-existing-project
moai init
# 非交互(CI/CD)
moai init --non-interactive详细的向导步骤请参阅初始设置页面。
将 MoAI-ADK 更新到最新版本。不带标志运行时会一并更新二进制与模板,用户自定义资产会自动保留。
moai update [OPTIONS]| 标志 | 说明 |
|---|---|
--check | 仅确认是否有新版本(不更新) |
-c, --config | 重新运行设置向导(不同步模板) |
--force | 强制更新(跳过版本一致检查、强制 备份+合并、覆盖归档 drift) |
--yes | 自动批准所有确认(CI/CD 模式) |
--templates-only | 跳过二进制更新,仅同步模板 |
--binary | 跳过模板同步,仅更新二进制 |
--dry-run | 不改动文件系统,仅显示计划的操作 |
--no-hooks | 跳过 Git 钩子安装 |
--verbose | 显示所有警告(诊断模式) |
--shell-env | 为 Claude Code 配置 shell 环境变量 |
--profile <high|medium|low> | 已弃用的桩 —— 为脚本兼容仍接受值,但没有任何效果,并打印指向 moai profile setup 的弃用警告 |
# 默认更新(二进制 + 模板)
moai update
# 仅确认是否有新版本
moai update --check
# 重新运行设置向导
moai update -c
# 仅同步模板
moai update --templates-only详细的更新流程请参阅更新页面。
执行系统诊断。检查 Git、项目结构、配置文件、各语言的开发工具。
moai doctor [OPTIONS]| 标志 | 说明 |
|---|---|
-v, --verbose | 显示详细的工具版本与语言检测结果 |
--fix | 提出缺失工具的修复建议 |
--export <path> | 将诊断结果导出为 JSON 文件 |
--check <tool> | 仅确认特定工具(例: git, go, config) |
| 命令 | 说明 |
|---|---|
moai doctor sandbox | 诊断沙箱后端可用性 |
moai doctor permission | 诊断权限解析 |
moai doctor hook | 显示 30 个钩子事件覆盖率表 |
moai doctor config dump | 连同 provenance 转储合并后的配置 |
moai doctor config diff <tier-a> <tier-b> | 对比两个配置层级 |
# 完整诊断
moai doctor
# 详细诊断
moai doctor --verbose
# 导出诊断结果
moai doctor --export diagnostics.json一目了然地查询项目状态。显示是否已初始化、SPEC 数量、配置文件数。
moai status这是无标志的只读命令。详细的输出内容请参阅项目状态页面。
综合查询活跃会话、工作树、harness 的只读命令。
moai inventory [OPTIONS]| 标志 | 说明 |
|---|---|
--json | 结构化 JSON 输出 |
--project-root <path> | 项目根路径(默认: 当前目录) |
详细的 JSON schema 与使用示例请参阅moai inventory页面。
管理 Claude Code 设置配置文件。可为每个配置文件维护独立的模型、语言、显示设置。
moai profile [COMMAND]| 命令 | 说明 |
|---|---|
moai profile list | 显示所有可用配置文件 |
moai profile setup | 运行交互式设置向导 |
moai profile current | 显示当前活跃的配置文件 |
moai profile delete <name> | 删除指定的配置文件 |
用 -p 标志指定运行时的配置文件:
moai cc -p work # 用 work 配置文件运行 Claude
moai glm -p cost-save # 用 cost-save 配置文件运行 GLM详情请参阅配置文件管理页面。
处理 Claude Code 钩子事件的调度器。由 settings.json 的钩子设置以 moai hook <event> 形式调用。
moai hook <event>moai hook 调度器把标准 Claude Code 钩子事件与 MoAI 专用内部动作合在一起,共提供 42 个子命令。所有名称均为 kebab-case。下面是有代表性的事件。
钩子事件数与子命令数是两个不同的数字。
moai doctor hook显示的 30 是 Claude Code 定义的钩子事件种类,这里的 42 是moai hook接受的子命令数量。由于 MoAI 专用内部动作没有对应事件也作为子命令存在,两者并不一致。
| 事件 | 说明 |
|---|---|
session-start | 会话开始 |
session-end | 会话结束 |
pre-tool | 工具执行前(PreToolUse) |
post-tool | 工具执行后(PostToolUse) |
post-tool-failure | 工具执行失败后 |
stop | 会话停止 |
stop-failure | 停止失败 |
compact | 上下文压缩前(PreCompact) |
post-compact | 上下文压缩后 |
notification | 系统通知 |
subagent-start | 子智能体开始 |
subagent-stop | 子智能体结束 |
user-prompt-submit | 用户提示提交 |
permission-request | 权限请求 |
permission-denied | 权限拒绝 |
teammate-idle | 队友空闲状态 |
task-completed | 任务完成 |
task-created | 任务创建 |
worktree-create | 工作树创建 |
worktree-remove | 工作树移除 |
instructions-loaded | 指令加载完成 |
config-change | 配置变更 |
cwd-changed | 工作目录变更 |
file-changed | 文件变更 |
elicitation | MCP elicitation 请求 |
elicitation-result | MCP elicitation 结果 |
还包含 MoAI 专用子命令。
| 子命令 | 说明 |
|---|---|
stop-goal | 回合结束时评估活跃会话的 goal |
pre-push | 按约定校验提交信息 |
spec-status | git 提交时自动更新 SPEC status |
harness-classify | 运行 harness 分类器并记录层级晋升 |
harness-observe · harness-observe-stop · harness-observe-subagent-stop · harness-observe-user-prompt-submit | 记录 harness 使用日志 |
钩子不由用户直接执行 —— Claude Code 的 settings.json 会自动调用。
管理 Git worktree 以进行并行 SPEC 开发。
moai worktree <COMMAND> [ARGS]...| 命令 | 说明 |
|---|---|
moai worktree sync [branch-name] | 与 base 分支同步 worktree |
moai worktree done <branch-name> | 移除分支的 worktree,可选删除分支 |
moai worktree remove <path> | 移除指定路径的 worktree |
moai worktree clean | 清理 stale 引用,收拾已合并/已废弃的 worktree |
moai worktree recover | 恢复 worktree 注册表 |
moai worktree snapshot | 捕获工作树状态快照 |
moai worktree verify | 对照快照校验工作树状态 |
moai worktree restore | 把工作树恢复到快照 HEAD 状态 |
进入工作树是启动器的职责。列表查询则直接用 git。
moai cc -w feat-login # 在工作树中开始工作 (不存在则创建)
moai cc -w feat-login --spawn # 保留当前会话,在新 tmux 窗口中打开
git worktree list # 工作树列表moai cc 和 moai glm 使用明确选择的后端启动 Claude Code。旧 CG 配置必须先迁移才能启动。
moai cc [-p profile] [-- claude-args...]
moai glm [-p profile] [-- claude-args...]moai cg 已停用。它会显示迁移提示并退出,不会启动 Claude 或 GLM,也不是 moai cc 的别名。项目中若仍有 llm.team_mode: cg,必须先明确选择迁移方案,才能启动会话。 CG 停用与配置迁移
三条启动命令共同支持的标志。
| 标志 | 说明 |
|---|---|
-p, --profile <name> | 使用命名的 Claude 配置文件 |
--permission-mode <mode> | 权限模式(default, acceptEdits, plan, auto, bypassPermissions, dontAsk) |
-b, --bypass | --permission-mode bypassPermissions 的简写 |
moai cc 额外支持以下标志。
| 标志 | 说明 |
|---|---|
-c, --continue | 续接上一个会话 |
-m, --model <model> | 覆盖模型选择 |
--chrome / --no-chrome | 原样传递给 Claude Code。启动器不会自行添加任一标志,因此除非传入 --no-chrome,否则可通过 /chrome 连接 |
auto权限模式在 GLM(第三方提供者)中不可用 —— 仅在moai cc中支持。
moai cc 按下面的顺序查找会话模型,并把找到的第一个值作为 --model 传给 Claude Code。
- 显式指定的
--model参数 - 配置文件中的模型(在
moai profile setup里选的值) - 环境变量
ANTHROPIC_MODEL(仅本次启动) - 项目
.claude/settings.local.json里的model(仅本项目) - 该配置文件的用户级
settings.json中用/model保存的值 —— 启动时会用一行提示,例如model: opus (user /model) - 以上都为空时不传任何值。此时由项目
.claude/settings.json里的model固定值决定会话模型,启动器会指出该值以及修改方法
越具体、越新近由用户直接指定的,优先级越高。第 3 步和第 4 步由 Claude Code 自己应用,所以启动器不传 --model,直接让路。项目设置优先于用户级设置,所以没有第 5 步时,用 /model 选的模型会被项目固定值盖住。moai glm 不适用这条规则:GLM 需要以槽位别名传入模型,而在 Anthropic 账户里用 /model 选的值属于另一个模型系列,会连到错误的槽位。
| 命令 | 说明 |
|---|---|
moai glm setup <api-key> | 保存 GLM API 密钥 |
moai glm status | 显示当前 GLM 凭据状态 |
moai glm tools | 管理 Z.AI MCP 服务器工具(启用/禁用) |
为当前会话注册·查询·解除基于条件的自主 goal 循环。在条件满足之前,每个回合结束时进行评估。
moai goal <COMMAND>| 命令 | 说明 |
|---|---|
moai goal arm <condition> | 为活跃会话注册·激活 goal |
moai goal status | 输出活跃会话的 goal 状态 |
moai goal clear | 解除活跃会话的 goal |
管理用于跨越 /clear 边界续接会话的 auto-resume 交接待处理记录。
moai handoff <COMMAND>| 命令 | 说明 |
|---|---|
moai handoff save | 把粘贴即用的 resume 正文保存为待处理记录 |
moai handoff clear | 移除待处理的交接记录 |
管理用于缓解多会话竞态的活跃会话协调注册表。
moai session <COMMAND>| 命令 | 说明 |
|---|---|
moai session current | 输出当前编排器会话 UUID |
moai session list | 活跃会话列表(可用 --filter-spec 过滤) |
moai session register <session_id> <spec_id> <phase> | 向注册表登记会话 |
moai session deregister <session_id> | 从注册表移除会话(幂等) |
moai session heartbeat <session_id> | 更新会话 last_heartbeat |
moai session purge | 移除过期条目(默认: 最后 heartbeat 超过 30 分钟) |
moai session doctor | 诊断会话注册表为空的原因 |
启动基于浏览器的配置编辑器 MoAI Web Console。
moai web [OPTIONS]| 标志 | 说明 |
|---|---|
--port <N> | 绑定到 127.0.0.1 的 TCP 端口(默认: 3041) |
--no-open | 不自动打开浏览器 |
--no-reuse | 不从过期的 moai 实例回收端口 |
显示版本、commit 哈希、构建日期。
moai version
moai --version # 相同按智能体逐一分配模型的旧性能层级系统已经退役。v3.2 起,子代理沿用主会话的模型与推理深度 —— 生成子代理时不传 model 也不传 effort,MoAI 智能体定义对两者都不作声明。模型策略的位置上剩下的,是会话层面的一个选择:moai profile setup 的会话模型策略问题,决定以此配置文件启动的 Claude 会话的默认推理强度(未单独选择推理强度时的回退值)。
| 旧值 | 今天的含义 |
|---|---|
| high | 会话 effort 回退 high |
| medium | 会话 effort 回退 medium |
| low | 会话 effort 回退 low |
# 配置会话模型策略(以及配置文件的其余全部)
moai profile setup
# 已退役的逐智能体旗标只打印弃用警告,没有任何效果
moai init my-project --model-policy high旧的 --model-policy、--profile、--high、--medium-alias、--low 旗标是已弃用的桩:为脚本兼容仍接受值,但没有任何效果,并打印指向 moai profile setup 的警告。会话级模型·effort 调节见模型策略页面,矩阵的退役见配置矩阵页面。