CLI

在终端里使用 modu_code

modu_code 是 Modu 的终端编码 Agent。这一页覆盖安装、四种运行模式、会话恢复,以及 Agent 运行时的按键交互。

安装

需要 Go(具体版本以仓库中的 go.mod 为准)。可以直接从源码运行:

terminal
$ go run ./cmd/modu_code

也可以编译成单个二进制放进 PATH

terminal
$ go build -o modu_code ./cmd/modu_code
$ ./modu_code

下文的 go run ./cmd/modu_codemodu_code 两种写法等价。

零配置起步

最快的路径是设一个环境变量,不写任何配置文件。modu_code 按下面的顺序挑选 provider,第一个命中的生效:

  • ANTHROPIC_API_KEY — Anthropic(走 OpenAI 兼容端点)
  • OPENAI_API_KEY — OpenAI Responses,模型取 $OPENAI_MODEL,默认 gpt-4o
  • DEEPSEEK_API_KEY — DeepSeek,模型取 $DEEPSEEK_MODEL,默认 deepseek-chat
  • OLLAMA_HOST — Ollama,模型取 $OLLAMA_MODEL(必填)
terminal
$ export DEEPSEEK_API_KEY=sk-xxx
$ go run ./cmd/modu_code

一个 provider 都没配也能进 TUI:启动后会提示用 /config 现场配置 provider、API key 和模型。需要多模型、role、reasoning 这些,见模型与 Provider 配置

运行模式与命令行参数

不带 -p/--rpc/--acp 时是默认的交互 TUI,其余三种是非交互模式,供脚本或编辑器集成使用。

  • (无) — 交互 TUI(默认)
  • -p "<prompt>" — print 模式:发送一条 prompt,把结果输出到 stdout 后退出
  • --json — 配合 -p:输出 NDJSON 事件流而非纯文本
  • --rpc — RPC 模式:stdin/stdout 上的 JSON-line 协议
  • --acp — ACP stdio server:JSON-RPC 2.0 LDJSON,供 Zed 等 ACP 客户端接入
  • --no-approve — 跳过工具执行的人工确认,自动放行全部工具
  • --resume <id> — 恢复已保存的 session(完整 id 或唯一前缀均可)
  • --worktree — 在隔离的 git worktree 中启动
terminal
$ go run ./cmd/modu_code -p "总结 cmd/modu_code 的职责" --no-approve

非交互模式在没有配置 provider 时会直接报错退出,而不是进入配置引导——脚本场景需要先把模型配好。

会话与恢复

默认每次启动都会创建新的 session id,不会自动带入同一路径上一次的对话上下文。退出时终端会打印当前 session 的 id 和恢复命令:

terminal
$ go run ./cmd/modu_code --resume <session-id>

id 支持唯一前缀,不必粘贴完整的 UUID。

交互与快捷键

Agent 正在跑的时候,输入框里打字有两种送达方式,状态栏会实时提示:

  • Enter — 插话:消息在下一个工具边界加入当前这一轮,正在执行的工作不会被丢弃
  • ⇧Enter — 排队:消息等这一轮结束后再处理
  • Esc — 中断当前任务
  • Ctrl+V — 粘贴剪贴板里的图片(也可以把图片文件拖进终端)

在 macOS 终端里请用 Ctrl+V 而不是 Cmd+V 粘贴图片:Cmd+V 会被终端自己拦截,程序收不到这个按键。

已复制到剪贴板