Coding Agent 军备竞赛,xAI 终于下场了

过去一年半,终端 Coding Agent 的牌桌上坐着谁?OpenAI Codex CLI(10.5 万 Star)、Anthropic Claude Code(闭源但装机量最大)、Google Gemini CLI、阿里 Qwen Code、DeepSeek Reasonix……每个大厂都在抢「开发者终端里那个默认的 agent」。唯独 xAI 一直缺席——直到 7 月 14 日,xai-org/grok-build 空降 GitHub。

28 天后它拿到 24,584 Star、4,677 Fork。这不是「又一个开源 CLI agent」,它是 xAI 官方 monorepo 里整个 agent 栈的 Rust 开源版——全屏鼠标交互 TUI、headless 脚本模式、ACP 协议嵌入编辑器、内核级沙箱、会自己定目标干活的 agent runtime,一次全给了。我 8 月 11 日实测:grok 1.0.0 (3cd0d0cbce),一条 curl 命令装完,文档里写的功能基本都在。

它到底是什么:一个「Agent 的 less」

一句话:Grok Build 是 xAI(README 里自称 SpaceXAI)官方的终端 Coding Agent,最特别的地方是它把整个 TUI 做成了一个 pager——就像 man 手册的 less 一样,只不过分页的对象是 Agent 的输出流。

这个设计从代码结构上就看得出来:核心 crate 不叫 grok-cli,而叫 xai-grok-pager(pager!),旁边是 xai-grok-shell(agent runtime)、xai-grok-tools(工具实现)、xai-grok-workspace(文件系统/VCS/执行/checkpoint)。仓库本身是 xAI monorepo 的定期同步切片,根目录一个 SOURCE_REV 文件记录着对应的 monorepo commit SHA,提交历史清一色是「Synced from monorepo」——所以它每天更新,但不是社区驱动的,外部 PR 一概不收

它能干什么:读代码、改文件、跑命令、搜网页、管长任务,这些是标配。真正拉开差距的是下面这几个设计。

三个最值得拆的设计

1. TUI 即 pager:输出流变成可折叠的条目

传统 CLI agent 是「滚动聊天窗口」,Grok Build 把每一次工具调用、每一条回复都渲染成 scrollback 里的独立条目:按方向键选中、左右键折叠展开、Enter 进全屏查看器、vim 模式用 h/l 折叠、y 复制内容、Y 复制元数据(比如刚才跑的命令)。文件编辑直接内联 diff,thinking 块可折叠,任务列表用 todo 跟踪。

还有两种渲染模式:--minimal 把完成的回复直接写进终端原生 scrollback(能用终端自己的滚动和选中),--fullscreen 回到全屏 alt-screen。这个「输出即对象」的思路,比纯文本流强在一点:长会话里你想回看「刚才那个命令到底跑了啥」,不用往上翻屏,直接定位条目。我们写过 8 月 1 日的 Codex CLI、7 月 15 日的 Kilo Code,它们的 TUI 都没有这个「条目化」设计。

2. Plan Mode:计划文件强制只读,always-approve 也拦得住

/plan 进入计划模式后,agent 只能读代码 + 写 plan.md改任何其他文件都会被工具层直接拒绝——官方明说这在所有权限模式下都成立,包括 always-approve。计划写完后 TUI 打开审批视图:a 批准开干、s 打回重做、c 在具体行上写评论、q 放弃计划。agent 自己觉得任务有歧义时也会主动申请进 plan mode(比如「加用户认证」这种方案不唯一的任务)。

「计划阶段物理上碰不到代码」这个约束很关键——大多数 agent 的 plan 只是提示词层面的约定,模型想越界就越界,这里是工具层硬拦。比单纯写 CLAUDE.md 靠谱一个量级。

3. 内核级沙箱:Landlock / Seatbelt / bubblewrap,不是 chroot 过家家

沙箱默认关闭,开了之后用 Linux Landlock / macOS Seatbelt 这些 OS 内核原语限制 agent 进程和它 spawn 的子进程的读写与网络,内核在进程生命周期内强制生效。四个内置档位:

Profile子进程网络适用
off(默认)不限不限不限裸奔
workspace全盘CWD + ~/.grok + /tmp允许日常开发
read-only全盘~/.grok + /tmpLinux 上阻断读代码、review
strictCWD + 系统路径CWD + ~/.grok + /tmpLinux 上阻断不可信代码

还能在 ~/.grok/sandbox.toml 里写自定义 profile,最有意思的是 deny 列表:deny = ["**/.env", "**/*.pem"] 这种 glob 是内核级读+写双重拒绝,文档明确说「mv secret x && cat x 的绕过路径被堵死了」——想搬走再读都不行。这套东西的认真程度,目前 CLI agent 里独一份。

无头模式:CI 里把 Agent 当函数调

grok -p "prompt" 单轮执行,四种输出格式:plainjson(text/stopReason/sessionId/requestId)、streaming-json(NDJSON 事件流)、streaming-messages-json(Anthropic Messages wire format)。还有 --json-schema 结构化输出(模型被约束输出匹配 schema 的 JSON,天然适合当工具链的一环)、--tools/--disallowed-tools 工具白名单黑名单、--max-turns 回合上限、--permission-mode。这些都是 headless 专用,TUI 里传了会被警告忽略。

另外两个狠活:/goal 自主目标模式——给个目标加 token 预算,agent 跨多轮自己干,完成声明要经过独立证据审查,复现不了就不算完成/deep-research——后台研究任务,多个验证 shard 交叉核对每个 claim,存活下来的才渲染,有失败 shard 就标 Partial。还有 /loop 30m <prompt> 定时任务(最小间隔 60 秒,7 天自动过期)——这已经是「agent 自己上班」的形态了。

和 Claude Code / Codex CLI 比一比

维度Grok Build(24.5K Star)OpenAI Codex CLI(10.5万 Star)Claude Code(闭源)
出品方 / 语言xAI / RustOpenAI / RustAnthropic / TypeScript
TUI 形态pager 条目化,鼠标可点,vim 模式,minimal/fullscreen 双渲染经典聊天式,插件生态靠社区聊天式 + 各种 UI 增强
沙箱Landlock/Seatbelt/bubblewrap 内核级,deny glob 防绕过无内核沙箱(靠权限确认)有 sandbox 但力度弱一档
计划模式plan.md 工具层强制只读,行内评论审批有 plan 但靠提示词约束有 /plan,约束偏软
无头/脚本4 种输出格式 + JSON Schema + 工具白名单 + max-turnsexec 模式,输出格式少-p 模式,格式有限
模型绑定grok-4.5(默认),支持自定义模型OpenAI 系Anthropic 系为主
记忆experimental,默认关,/dream 自动合并无跨会话记忆CLAUDE.md + 第三方方案
编辑嵌入ACP 协议(agent 命令)MCP 为主官方插件体系
协议Apache-2.0,但外部 PR 不收Apache-2.0,社区活跃专有

一句话:Codex CLI 是「官方正统」,Claude Code 是「生态之王」,Grok Build 是「工程最狠」——pager TUI、内核沙箱、工具层强制只读,这三样是冲着「把 agent 当严肃生产工具」去的,不是聊天玩具。

上手:十分钟跑起来(实测)

# 1. 安装(我在这台 Linux 上跑通了,会装到 ~/.grok/bin 并 symlink 到 ~/.local/bin)
curl -fsSL https://x.ai/cli/install.sh | bash
grok --version        # → grok 1.0.0 (3cd0d0cbce)

# 2. 认证三选一
grok login            # 有浏览器:跳转 grok.com 登录,凭证存 ~/.grok/auth.json
grok login --device-code   # 无浏览器/CI:设备码流
export XAI_API_KEY="xai-..."   # 或者直接 API key

# 3. 交互模式
grok                  # 全屏 TUI,Tab 切焦点,Ctrl+O 切换 always-approve
grok "修一下登录失败的测试并跑一遍"   # 带初始 prompt 启动

# 4. 无头模式(CI 里用)
grok -p "Review changes for bugs" --output-format json --yolo | jq -r '.text'

# 5. 隔离工作区 + 沙箱
grok --worktree=feat "refactor module X"   # 新 git worktree 里干,注意等号!
grok --sandbox read-only "分析这个代码库"   # 只读模式 review
grok --sandbox strict "跑一下这个不可信脚本"  # 最严格档

# 6. 会话管理
grok -c               # 继续最近会话
grok --resume <session-id>   # 恢复指定会话
grok export           # 导出会话为 Markdown
grok doctor           # 检查终端/剪贴板支持

项目管理:AGENTS.md 三档生效(全局 ~/.grok/AGENTS.md → 仓库根 → 当前目录,越深优先级越高),还兼容读 CLAUDE.md,从 Claude Code 迁过来不用改文件。会话自动存 ~/.grok/sessions/,支持 fork、rewind(undo 到任意历史点)、/compact 压缩上下文。

实际体验的几个坑

跟我们有关的一件事

Grok Build 跟这个工坊的读者关系挺近:它是「大厂官方 CLI agent」这条线的最新成员,我们写过的 Codex CLI(8月1日)、Qwen Code(8月4日)、oh-my-pi(8月2日)都可以直接拿来跟它做同题对比——尤其是 worktree 并行、headless CI、多 agent 编排这几个场景,它和 superset(8月8日)那套并行调度是天然搭档:superset 管多个 CLI agent 的 worktree 和终端,grok 的 --worktree= 内置隔离正好接上。

就算你不换 agent,它的三个设计也值得抄进自己的工具链:一是 pager 式输出条目化——任何长输出工具都应该可折叠可定位,而不是滚屏;二是计划文件工具层强制只读——「想清楚再动手」应该是约束不是请求;三是 deny glob 的内核级落地——敏感文件靠权限提示防不住,靠内核 deny 才防得住。

要不要我帮你把 grok-build、Codex CLI、Qwen Code 三个 CLI agent 在同一批任务上做个实测对比,看谁在真实 repo 里更靠谱?

适合谁用

总结

Grok Build 一个月 2.4 万 Star 不是营销堆出来的——它是 xAI 把内部 monorepo 里的完整 agent 栈开源了:pager 式 TUI、内核级沙箱、工具层只读计划、headless 脚本化、自主目标,每一层都有真功夫。它现在还不是「生态之王」(插件/技能市场刚起步,外部贡献也不收),但论工程严谨度,它给整个 CLI agent 赛道立了新标杆——尤其沙箱和计划模式这两块,Claude Code 和 Codex 都得跟上。

唯一要掂量的是认证门槛(必须 grok.com 账号或 xAI API key)和记忆功能的 experimental 状态。但如果你想要一个「把 agent 当生产工具而不是聊天窗口」的终端体验,它值得你花十分钟装上试试。

项目地址:github.com/xai-org/grok-build(主页:x.ai/cli · 文档:docs.x.ai/build/overview)