Grok Build 使用文档

  |   0 评论   |   0 浏览

Grok Build 使用文档

依据 xAI 官方文档整理:https://docs.x.ai/build/overview
本地用户指南:~/.grok/docs/user-guide/(随 CLI 一并安装)
产品页:https://x.ai/build · 更新日志:https://x.ai/build/changelog
整理日期:2026-08-18 from grok


目录

  1. 它是什么
  2. 安装与更新
  3. 登录与认证
  4. 第一次使用
  5. 日常交互
  6. 常用启动方式
  7. 快捷键
  8. 斜杠命令
  9. 配置
  10. 项目规则 AGENTS.md
  11. 会话
  12. 权限与安全
  13. 沙箱
  14. Plan 模式
  15. 子 Agent 与 Persona
  16. Agent Dashboard
  17. 后台任务与定时
  18. 无头模式(脚本 / CI)
  19. ACP 与 IDE 集成
  20. MCP 服务器
  21. Skills
  22. Plugins
  23. Hooks
  24. 跨会话记忆
  25. 自定义模型
  26. 主题与外观
  27. 终端与排障
  28. 文件位置一览
  29. 推荐用法

1. 它是什么

Grok Build 是 xAI 的终端编码 Agent。当前默认模型为 Grok 4.6

三种用法:

方式命令场景
全屏 TUIgrok日常写代码、改仓库、审 PR
无头模式grok -p "..."脚本、CI、批处理
ACP Agentgrok agent stdio / serve接到 IDE、SDK、自定义客户端

TUI 会读代码、跑命令、改文件、搜网页、管任务。也可以挂 MCP、Skill、Plugin、Hook 做扩展。

订阅门槛(官方发布说明):SuperGrokX Premium Plus


2. 安装与更新

Windows(PowerShell,推荐)

irm https://x.ai/cli/install.ps1 | iex

指定版本:

$env:GROK_VERSION="0.1.42"; irm https://x.ai/cli/install.ps1 | iex

安装器会把 %USERPROFILE%\.grok\bin 加进用户 PATH。

macOS / Linux / Git Bash

curl -fsSL https://x.ai/cli/install.sh | bash

指定版本:

curl -fsSL https://x.ai/cli/install.sh | bash -s 0.1.42

WSL 会装 Linux 二进制。

校验与更新

grok --version
grok update

关掉自动更新:启动加 --no-auto-update,或环境变量 GROK_DISABLE_AUTOUPDATER=1,或在 config.toml[cli] auto_update = false


3. 登录与认证

浏览器登录(默认)

grok

首次启动会打开浏览器,走 grok.com / auth.x.ai OAuth。凭证写在 ~/.grok/auth.json(Unix 权限 0600),之后自动刷新。没有服务端过期时间时,按 30 天算。

grok login              # 重新登录 / 换账号
grok login --oauth      # 同上,默认就是这条
grok login --device-auth   # 无浏览器环境,打印 URL + 设备码
grok logout             # 清掉本地凭证

~/.grok/auth.json 和 MCP 的 ~/.grok/mcp_credentials.json 等同于密钥:不要拷进共享盘、工单、聊天。主机建议开全盘加密(BitLocker / FileVault / LUKS)。

API Key(CI / 无浏览器)

console.x.ai 拿 Key:

export XAI_API_KEY="xai-..."
grok

Windows PowerShell:

$env:XAI_API_KEY="xai-..."
grok

已有交互登录时,会话 token 优先于 API Key。要用 Key,先 grok logout 或删掉 auth.json

凭证优先级(每次请求)

  1. config.toml 里某个 [model.<name>]api_key / env_key
  2. auth.json 里的会话 token(浏览器 / OIDC / 外部认证)
  3. 环境变量 XAI_API_KEY

登录方式优先级:外部认证脚本 → 企业 OIDC → 默认 xAI OAuth。

企业 OIDC

# ~/.grok/config.toml
[grok_com_config.oidc]
issuer = "https://acme.okta.com"
client_id = "0oa1b2c3d4e5f6g7h8i9"

或环境变量 GROK_OIDC_ISSUER / GROK_OIDC_CLIENT_ID。Redirect URI:http://127.0.0.1/callback(PKCE,无 client secret)。

外部认证脚本

无浏览器、隔离网、CI 时可把登录交给自己的二进制:

[auth]
auth_provider_command = "/usr/local/bin/my-auth-provider"
auth_provider_label = "Acme Corp"
auth_token_ttl = 3600

约定:

  • stdout:只输出 token(纯字符串,或含 access_token / expires_in 的 JSON)
  • stderr:给人看的状态、登录 URL(TUI 会把第一个 https:// 做成可点链接)
  • 退出码 0 成功;非 0 回退到交互登录
  • 无头刷新时环境变量 GROK_AUTH_EXPIRED=1:不要弹窗、不要阻塞

auth.json 热加载:外部脚本改完 token,下次 API 调用就会用新凭证。

编程数据与隐私

/privacy 打开「Coding data, retention, and training」。它改遥测开关。团队账号只有管理员能改;开了 Zero Data Retention(ZDR)后这一项会显示 ZDR,不能再改。

独立开关:

配置
产品遥测[features] telemetry / GROK_TELEMETRY_ENABLED
会话 trace 上传[telemetry] trace_upload / GROK_TELEMETRY_TRACE_UPLOAD
外部 OpenTelemetryGROK_EXTERNAL_OTEL / [telemetry] otel_*

4. 第一次使用

grok

界面两块:

  • Scrollback:对话、思考、工具调用、diff、任务列表
  • Prompt:底部输入框

输入后按 Enter 发送。Tab 在输入框和滚动区之间切焦点。

默认会在跑命令、改文件前问你。三种「少问」方式:

  • Ctrl+O 切换 always-approve(YOLO)
  • 启动:grok --yolo
  • 输入:/always-approve

@ 挂文件

@src/main.rs              # 整个文件
@src/main.rs:10-50        # 第 10–50 行
@src/                     # 浏览目录
@!.github                 # 搜隐藏路径(默认尊重 .gitignore,并藏 dotfile)
@!.env                    # 挂 .env

@ 会打开模糊文件选择器。

内置工具(模型自己会调)

工具作用
read_file / search_replace读文件、按行精确改
grep全库正则搜索(ripgrep)
list_dir列目录
run_terminal_command跑 shell
web_search / web_fetch搜网、拉 URL
todo_write任务清单
spawn_subagent并行子 Agent
memory_search搜跨会话记忆

扩展靠 MCP


5. 日常交互

发送与插话

动作默认VS Code / Cursor / Windsurf / ZedApple Terminal
发送Enter同左同左
换行Shift+Enter / Alt+Enter同左同左
多行模式Ctrl+M(焦点在输入框时)同左同左
回合进行中排队后续普通 Enter同左同左
立刻打断并发送Ctrl+Enter(备选 Ctrl+ICtrl+LCtrl+O

默认 [ui].follow_up_behavior = "queue":回合没结束时 Enter 只排队。改成 "steer" 会在下一个安全间隙把排队内容塞进去。

取消、清空、回退

状态按键效果
回合进行中(默认全屏,非 Vim 滚动)Esc立刻取消,草稿保留
回合进行中 + 全屏 Vim 滚动Esc不取消;用 Ctrl+C
回合进行中 + 有草稿Ctrl+C先清草稿,再按一次才取消
空闲 + 输入框有内容800ms 内按两次 Esc清空输入(进历史)
空闲 + 输入框空 + 已有对话800ms 内按两次 Esc打开 /rewind

Ctrl+CEsc 不要混用:前者先清草稿,后者取消并保留草稿。

贴图

操作macOSLinuxWindows
从资源管理器拖图进输入框可以可以可以
复制文件后粘贴Cmd+VCtrl+VCtrl+V
剪贴板里的截图 /「复制图像」Cmd+VCtrl+VAlt+V

Windows Terminal 默认 Ctrl+V 只贴纯文本。要用 Ctrl+V 贴图,在 settings.jsonactions 里加 { "command": null, "keys": "ctrl+v" }

非图片文件粘贴后变成绝对路径文本,不是 chip。

滚动区

  • 点选条目、滚轮滚动、点输入框聚焦
  • 选中后 / 折叠 / 展开;Enter 全屏查看
  • Vim 模式:j/k 移动,h/l 折叠,y 复制内容,Y 复制元数据(例如刚跑的命令)
  • 开 Vim:/vim-mode,或 [ui] vim_mode = true

注意:simple_mode 管的是输入框编辑方式(readline / vim),vim_mode 管的是滚动区导航。两套互不影响。


6. 常用启动方式

# 打开 TUI,并把这句话当作第一轮
grok "fix the failing auth test and run it"

# 在新 git worktree 里开(必须用 --worktree=,否则后面的字会被当成 worktree 名)
grok --worktree=feat "refactor module X"

# worktree 基于 main,而不是当前 HEAD
grok -w --ref main "implement feature from main"

# 指定工作目录
grok --cwd ~/projects/my-app

# 本会话附加规则
grok --rules "Always use TypeScript. Prefer functional components."

# 全部自动批准
grok --yolo

# 指定模型
grok -m grok-build

# 恢复某次会话
grok --resume <session-id>

# 继续当前目录最近一次会话
grok -c

# 实验性:滚动区原生 / 极简模式(会记住上次选择)
grok --minimal
grok --fullscreen

# 无头
grok -p "Explain this codebase"

--minimal / --fullscreen 只影响这次会话,不写 config.toml。要改默认,用 /settingsDefault screen mode,或设 [ui] screen_mode

极简模式没有主题、没有 Dashboard、/theme 不可用;颜色跟终端自己的 16 色盘走。


7. 快捷键

绑定写死,目前不能改键。

几乎随时能用

作用
Ctrl+P?命令面板(快捷键、斜杠命令、Skill)
Ctrl+M滚动区:模型选择器;输入框:多行开关
Ctrl+O切换 always-approve
Ctrl+S会话选择器
Ctrl+N新会话(1 秒内按两次确认)
Ctrl+Q / Ctrl+D退出(VS Code 系只用 Ctrl+D
Ctrl+\Agent Dashboard
Ctrl+B把正在跑的前台命令丢到后台
Ctrl+TTODO 面板
Ctrl+G全屏:任务面板;极简模式:用外部编辑器改草稿
Ctrl+L非 VS Code 系:扩展弹窗;VS Code 系:回合中插话
Shift+Tab循环模式:Normal → Plan → Always-approve
F2 / Ctrl+,设置
Ctrl+. / Ctrl+X快捷键帮助(多数终端 Ctrl+X 更稳)
!空输入框进入 shell 模式

回到欢迎页没有快捷键,用 /home(别名 /welcome)。

滚动区(焦点在对话上)

Vim普通作用
j / k / 下 / 上一条
⇧L / ⇧HShift+→ / Shift+←下一 / 上一轮用户消息
g / ⇧G 顶 / 底
h / l / 折叠 / 展开
e / ⇧E 切换折叠 / 全部展开或折叠
Ctrl+E 思考块全部展开或折叠
y / ⇧Y 复制内容 / 复制元数据
Enter 全屏查看

未开 vim_mode 时,单独按字母会直接跳回输入框并打出这个字母。

阻塞卡片(提问 / 权限 / 取消回合)

Tab / Shift+Tab 在卡片内循环,不会跑出去。Esc 先清卡片内部状态;提问卡和权限卡会把键盘停到滚动区(卡片还在),Tab 回来。权限卡 Esc 不会回答或关掉请求。

权限卡额外: / 调整 “Always” 的记住范围;e 手改 always-allow 模式(bash);Ctrl+O 开 always-approve。

欢迎页

作用
Ctrl+S恢复会话
Ctrl+W新 worktree(仅 git 仓库内)
Ctrl+I导入 Claude 设置
Ctrl+Shift+I关掉 Claude 导入提示

破坏性操作

Ctrl+NCtrl+Q 要在 1 秒内按两次才生效,避免误关会话。


8. 斜杠命令

输入 / 打开菜单,模糊匹配。来源:shell 内置、pager 内置、以及 user-invocable: true 的 Skill。

Skill 和内置重名时,内置占裸名(如 /login),Skill 变成 /plugin-name:login。菜单会标 built-in / skill · …

会话

命令作用
/new/clear新会话
/resume恢复历史会话
/dashboard/sessions本进程里的活动会话看板
/compact [备注]压缩上下文;85% 会自动压(可配)
/context上下文占用明细
/session-info/status认证、模型、轮次、上下文
/fork从当前历史分出新 Agent
/rewind/undo回到更早一轮(不回滚磁盘文件
/copy [N\|路径]复制最近回复;也可写到文件
/export导出对话
/quit/exit退出
/home/welcome回欢迎页
/delete删当前会话(先确认)
/rename/title改标题;/rename --auto 交还自动起名

模型与模式

命令作用
/model <名>/m换模型,可带 effort
/effort只改当前模型的推理强度
/always-approve开关「全自动批准」
/auto分类器批准安全工具(功能开启时才有)
/multiline/ml多行输入
/history搜本会话提示词历史
/vim-modeVim 滚动导航
/minimal / /fullscreen切换渲染模式
/plan [描述]进入 Plan 模式
/view-plan看已保存计划

全屏才有:/find/jump/timeline/theme/tutorial/workflows/dashboard
极简才有:/expand/edit-prompt

记忆(需开启 Memory)

/memory/flush/dream/remember/remember 始终可用。

扩展

/hooks/plugins/marketplace/skills/mcps 打开同一个扩展弹窗的不同页。

其它常用

命令作用
/imagine / /imagine-video文生图 / 文生视频
/loop [间隔] <提示>定时重复跑(最短 60s,7 天后过期)
/goal自主目标(需开启)
/deep-research <查询>后台调研工作流
/workflow / /workflows启动 / 管理 Rhai 工作流
/theme/t换主题
/feedback反馈
/btw旁路问一句,不打断当前任务
/doctor终端、剪贴板、颜色、沙箱诊断
/docs内置指南;/docs web 开官方站
/tutorial约 30 秒一篇的入门
/import-claude导入 ~/.claude
/config-agents/agentsAgent 定义 / Persona
/login /logout /usage /privacy账号、用量、隐私
/settings交互改配置

工作流脚本:项目 .grok/workflows/*.rhai,用户 ~/.grok/workflows/*.rhai。进程重启后的 run 不能恢复。


9. 配置

优先级(高 → 低)

  1. CLI 参数(--yolo--model--sandbox
  2. 环境变量(XAI_API_KEYGROK_MEMORY
  3. requirements.toml / MDM(组织硬限制,夹死下面所有层)
  4. GROK_CONFIG / GROK_CONFIG_PATH 覆盖层
  5. ~/.grok/config.toml
  6. managed_config.toml(组织默认)
  7. 内置默认

GROK_CONFIG 是 JSON 覆盖,不是随便注入任意键:只放行少量软设置(模型、features、收窄的 toolset、环境过滤)。不能用来提权、改认证、加发现源。

主配置 ~/.grok/config.toml

文件不存在就用默认值,只写要改的项。

[cli]
auto_update = true

[models]
default = "grok-4.5"
web_search = "grok-4.5"

[ui]
simple_mode = true          # 输入框 readline;false = 实验性 vim 编辑
vim_mode = false            # 滚动区 vim 键
show_thinking_blocks = true
group_tool_verbs = true
collapsed_edit_blocks = false
page_flip_on_send = true
follow_up_behavior = "queue"   # 或 "steer"
screen_mode = "fullscreen"     # 或 "minimal"
theme = "auto"
permission_mode = "ask"        # ask / auto / always-approve
remember_tool_approvals = false
default_selected_permission = "always_allow_all_sessions"

[features]
telemetry = false
codebase_indexing = true
remote_fetch = true

[session]
auto_compact_threshold_percent = 85
load_envrc = true

[tools]
respect_gitignore = false

项目级 .grok/config.toml 只贡献 [mcp_servers][plugins][permission](以及 [mcp] max_output_bytes)。其它段只从用户主配置读。

MCP / Plugin 优先级:当前目录 .grok/config.toml > 仓库根 .grok/config.toml > ~/.grok/config.toml[permission] 是合并,不是覆盖:deny > ask > allow

外观 ~/.grok/pager.toml

管 padding、滚动条、动画、块样式、是否进备用屏。改完重启生效。

[terminal]
alt_screen = "auto"    # auto | always | never

常用环境变量

变量作用
XAI_API_KEYAPI Key
GROK_HOME配置根目录,默认 ~/.grok
GROK_MEMORY1 开 / 0 关跨会话记忆
GROK_SUBAGENTS子 Agent
GROK_WORKFLOWS后台工作流(默认开)
GROK_SANDBOX沙箱档位
GROK_LOG_FILE日志文件绝对路径
RUST_LOG日志级别;无头模式默认关 stderr 日志
GROK_THEME强制主题或 auto
GROK_AGENT_DASHBOARD0 关掉 Dashboard

兼容 Claude / Cursor

默认会扫对方的 skills、rules、MCP、hooks:

[compat.claude]
skills = true
rules = true
agents = true
mcps = true
hooks = true

[compat.cursor]
skills = true
rules = true
agents = true
mcps = true
hooks = true

欢迎页 Ctrl+I 可导入 Claude 设置。


10. 项目规则 AGENTS.md

在仓库里放 Markdown,Grok 启动时读入并当作项目指令。不必每轮重讲约定。

每个目录按这个顺序找(能匹配的都会加载):

Agents.mdClaude.mdCLAUDE.mdCLAUDE.local.mdAGENT.mdAGENTS.md

另外还会扫:

  • <dir>/.grok/rules/*.md
  • <dir>/.claude/rules/<dir>/.cursor/rules/(兼容开关打开时)
  • ~/.grok/rules/~/.claude/rules/~/.cursor/rules/

发现顺序:家目录规则 → 仓库根到当前目录的每一层。越深越优先(后出现覆盖冲突项)。

.gitignore 忽略的文件不会被发现。个人覆盖建议 gitignore CLAUDE.local.md

一次性规则,不写文件:

grok --rules "Always use TypeScript."

整段替换系统提示(连默认提示一起丢掉):

grok --system-prompt-override "You are a code reviewer. Do not edit files."

grok inspect 能看到加载了哪些规则和大致 token 数。

建议:根目录写全局约定;monorepo 各包自己再放一份;写可执行的短句,不要把 README 复制进去。


11. 会话

每次对话都是一个 session,自动存到 ~/.grok/sessions/<编码后的工作目录>/<session-id>/

里面主要有:summary.json(索引)、updates.jsonl(权威对话日志)、chat_history.jsonlplan.jsonrewind_points.jsonl

标题:第一轮后自动生成,前几轮会再改一次然后冻结。/rename 之后不再自动改;/rename --auto 交还自动起名。

恢复

grok --resume <session-id-或标题>
grok --resume          # 当前目录最近一次
grok -c                # 继续最近一次

TUI 里:/resume 或欢迎页列表。按标题匹配时忽略大小写;UUID 形状的值永远当 ID。脚本请用 JSON 里的 sessionId

/rewind 注意

只截断对话历史,磁盘上的文件改动不会还原

/compact

长会话主动压上下文。可加备注告诉它该留什么。默认上下文用到 85% 自动压。Plan 模式压缩后状态会保留。

CLI 列会话

grok sessions list
grok sessions list --limit 50
grok sessions search "rate limit"

Worktree 与磁盘

grok du                 # ~/.grok 占用
grok worktree gc --max-age 7d --dry-run
grok worktree gc --max-age 7d
grok worktree rm --dry-run <path>

克隆 worktree 和源仓库共享存储,报表总和可能大于真实占用。未登记的 worktree,gc 不会碰,要用 grok worktree rm

恢复会话到新 worktree:grok -w -r <session-id>


12. 权限与安全

权限是「模型能不能请求这件事」;沙箱是「就算批准了,内核允不允许进程这么干」。两层建议一起用。

模式

模式不询问时能跑什么适合
default(ask)只读工具 + 内置只读命令日常交互
acceptEdits改文件不问本地写代码、事后看 diff
auto安全检查放行的;其余拦截或升级想少弹窗
dontAsk只跑预先允许的严格 CI 白名单
bypassPermissions(always-approve)大体都跑(deny / hook / 部分 shell ask 仍生效)脚本、CI、Agent 服务

Always-approve 与 auto 互斥,同时开以 always-approve 为准。

设置方式:Shift+Tab / Ctrl+O / /always-approve / /auto / /settings,或:

grok --always-approve -p "Run the test suite"
grok --permission-mode auto
[ui]
permission_mode = "always-approve"

组织可在 requirements.toml 锁死 always-approve:

[ui]
disable_bypass_permissions_mode = true

一次工具调用怎么过关

  1. PreToolUse hook(可直接 deny)
  2. 规则:deny > ask > allow
  3. 本项目记住的交互授权
  4. 内置只读自动放行
  5. 当前模式的询问策略

Always-approve 在第 2 步之后短路:deny / hook / 命中 shell 段的 ask 仍有效。

默认不问的操作

只读工具:read_filelist_dirgrepweb_searchtodo_write、子 Agent 控制、调用 Skill。

只读命令(按 && || ; 管道切开后,主命令命中才算):lscatpwdgit status / log / diff 等、rg(不含 --pre)、kubectl get / logs / describe

teecargo check 不在只读名单里。rmchmodgit push 等危险命令即使有「记住的前缀」也会再问;配置里的显式 allow 和 always-approve 仍会放行。

规则写法

# 项目 .grok/config.toml
[permission]
allow = [
  "Bash(git *)",
  "Bash(npm run build)",
]
deny = [
  "Bash(rm -rf *)",
  "Read(/Users/you/private/**)",
  "Edit(/Users/you/private/**)",
]
ask = [
  "Edit",
]

CLI:

grok -p "Review the API" \
  --allow 'Bash(git *)' \
  --allow 'Read' \
  --deny 'Bash(rm -rf *)'

也兼容 .claude/settings.jsonpermissions.allow/deny/askdefaultMode

规则在会话启动时读一次,改完要新开会话。

Bash(git *)allow 匹配整串命令,所以 git status && rm -rf / 会被当成以 git 开头而放行。窄 allow 必须配 deny。deny / ask 会拆段检查。

路径:* / ? 不跨 /** 跨目录。Read(src/*) 不含嵌套;整树用 Read(src/**)

MCP:MCPTool(linear__*)。也认 Claude 写法 mcp__linear__get_issue

交互「总是允许」

默认关。打开:

[ui]
remember_tool_approvals = true

记住的授权按仓库存在本机,不进 git。要给团队看的白名单,写进项目 .grok/config.toml

项目里的 permission allow 没有单独的信任提示。陌生仓库先看 .grok/config.toml.claude/settings.json,再干活。


13. 沙箱

默认关。用内核原语限制进程:Linux 是 Landlock(需 5.13+),macOS 是 Seatbelt。限制打在整个 grok 进程上,不可运行时放松。

grok --sandbox workspace
grok --sandbox read-only
grok --sandbox strict
档位子进程网络场景
off不限不限不限默认
workspace全盘CWD + ~/.grok/ + 临时目录允许日常开发
devbox全盘/data 外的顶层目录允许一次性开发机
read-only全盘~/.grok/ + 临时目录Linux 拦只看不改
strictCWD + 系统路径CWD + ~/.grok/ + 临时目录Linux 拦不信任代码

子进程断网只在 Linux 用 seccomp;macOS 上是空操作。进程内的 web_search、LLM API 始终能上网。

自定义(~/.grok/sandbox.toml 或项目 .grok/sandbox.toml):

[profiles.project]
extends = "workspace"
restrict_network = true
read_only = ["/data"]
read_write = ["/tmp/scratch"]
deny = ["**/.env", "**/*.pem"]
grok --sandbox project

deny 是内核级读写/重命名拒绝。Linux 上 glob 只展开启动时已存在的文件;之后新建的匹配文件盖不住,关键路径请写死。缺 bubblewrap 且 deny 非空时,Grok 拒绝启动

会话一旦用了某个沙箱档,终身绑定。恢复时不能换档;要换就开新会话。

沙箱开着时不会走共享 leader 进程。workspace / read-only / strict 会写保护 ~/.grok/hooks/(仍可读)。

环境变量过滤(防止命令读到你 shell 里的密钥):

[shell_environment_policy]
inherit = "core"                 # all | core | none
ignore_default_excludes = false
exclude = ["ACME_*"]
include_only = ["PATH", "HOME"]

默认 inherit = "all",行为与没配一样。

事件日志:~/.grok/sandbox-events.jsonl


14. Plan 模式

先探代码、写方案,批准前不改业务文件。适合有真实架构分歧的任务,不适合「加个按钮」「改个错字」。

进入:

  • Agent 自己调 enter_plan_mode(要你批准)
  • /plan/plan 做登录
  • Shift+Tab 切到 Plan

计划写在会话目录的 plan.md。Plan 模式下只有这个文件能改(自动批准);改其它文件直接失败。这条在 always-approve 下也成立。

注意:Plan 只拦编辑工具,不检查 bash 重定向写文件。子 Agent 不受父会话 Plan 闸门约束。

批准界面:

作用
a批准并开始实现(有批注则一并送出)
s要求修改
c给选中行加评论
y复制全文
q放弃计划并退出 Plan 模式

/view-plan 以后还能再看。状态会落盘,重启后仍在(Pending / ExitPending 会收成 Inactive)。


15. 子 Agent 与 Persona

子 Agent 是独立子会话:自己的上下文,干完把摘要交回父 Agent。默认开启。关:GROK_SUBAGENTS=0[subagents] enabled = false

只能一层:子 Agent 不能再 spawn。

Agent vs Persona

AgentPersona
配什么整场会话:模型、工具、系统提示叠在子 Agent 提示上的行为层
范围主会话或子会话仅子 Agent
例子exploreplangrok-buildresearcherconcise

内置类型:

类型能力
general-purpose全套工具
explore读、搜、跑命令,不改文件
plan探代码出方案,不改文件

能力模式:read-only / read-write / execute / all

隔离:none(共享工作区)或 worktree(独立 git worktree,改完再 merge)。

MCP 默认继承父会话已连上的服务器。Agent frontmatter mcpInheritanceall / none / named / except。插件 Agent 不能自己声明 mcpServers、hooks,也不能 permissionMode: bypassPermissions

TUI:Ctrl+G 看任务/子 Agent;滚动区点开子 Agent 块进全屏只读回放。

管理定义:/config-agents;Persona:/personas

[subagents.toggle]
plan = false

[subagents.models]
explore = "grok-build"

[subagents.personas.researcher]
instructions = "You are a thorough researcher. Always cite specific file paths."

16. Agent Dashboard

本 pager 进程里所有顶层会话的看板(不含子 Agent)。

打开:grok dashboard/dashboardCtrl+\。极简模式没有。关:GROK_AGENT_DASHBOARD=0[dashboard] enabled = false

它不是 /config-agents(定义),也不是 /resume(磁盘历史),也不是 /workflows

底部输入框永远是新开会话。选中一行是导航,要对话请打开该 Agent,或用 peek 的 ❯ reply

常用键:Enter 打开,Ctrl+S 发送并挂上,Ctrl+/ 搜索,Ctrl+R 改名,Ctrl+T 钉住,Ctrl+G 按状态/目录分组,Ctrl+X 取消回合 / 连按两次删除。

搜索前缀:a:名称s:working|idle|…#标签


17. 后台任务与定时

后台命令

run_terminal_commandbackground: true 立刻返回 task_id。TUI 里 Ctrl+B 把正在跑的前台命令丢到后台。

查结果:get_command_or_subagent_output。多任务:wait_commands_or_subagents(最多 20 个)。杀掉:kill_command_or_subagent

/loop

/loop 5m Check if the test suite passes
/loop 2h Summarize new commits since the last check

间隔:Ns(最短 60)/ Nm / Nh / Nd。创建后立刻跑一次,然后按间隔重复。最多 50 个,7 天后过期。

底层是 scheduler:scheduler_create / list / deletedurable: true 可跨会话。

monitor

把长命令的每一行 stdout/stderr变成对话通知。管道里必须用 grep --line-buffered,否则缓冲会拖几分钟。事件太多会被自动停掉,收紧过滤再开。persistent: true 跟会话同寿。

后台还在跑、主 Agent 看似空闲时,输入框上方会有:

◎ 1 command · 2 monitors · 1 loop · 1 subagent still running

这时发消息会打断等待,立刻处理你的输入。


18. 无头模式(脚本 / CI)

grok -p "Your prompt here"

--prompt-json--prompt-file 也会进无头。不读管道 stdin;外部内容用命令替换或 --prompt-file

关键参数

参数作用
-p提示词
-m模型
-r / --resume恢复已有会话(不存在就报错)
-c继续当前目录最近会话
-s新建指定 UUID 的会话(已存在则报错;不用于恢复)
--fork-session-r/-c 一起:分叉到新 ID
--output-formatplain / json / streaming-json / streaming-messages-json
--yolo / --always-approve不问批准
--tools / --disallowed-tools工具白/黑名单(仅无头)
--max-turns最多回合(仅无头)
--allow / --deny权限规则
--sandbox沙箱
--rules附加规则
--agentAgent 定义
# 只要只读工具
grok -p "Explain this codebase" --tools "read_file,grep,list_dir"

# 禁止所有子 Agent
grok -p "Fix this bug" --disallowed-tools "Agent"

# CI 审代码
grok -p "Review changes for bugs" --output-format json --yolo | jq -r '.text'

--disallowed-tools 里工具 ID 是内部名,shell 是 run_terminal_cmd 不是 bashAgent / Agent(explore) 控制子 Agent。

JSON 输出

完成后一个对象:textstopReasonsessionIdrequestId,以及用量(usagenum_turnsmodelUsage、费用)。

usage.input_tokens未命中缓存的输入。total_tokens = 未缓存输入 + 缓存读 + 缓存写 + 输出。没有费用字段表示服务端没给出完整账单,不是免费usage_is_incomplete 为真时不要当完整账单用。

失败非 0 退出,stderr 可有 error 对象。

跨调用保持上下文

ID=$(grok -p "Review the PR" --output-format json | jq -r '.sessionId')
grok -p "Now check security" --resume "$ID"

退出码

含义
0正常结束
1认证 / 网络 / 运行错误
130SIGINT
143SIGTERM

中断会保存到最后一个完成的工具调用;文件改动不回滚。接着跑:grok -p "continue" --resume "<id>"

CI 认证

export XAI_API_KEY="xai-..."
export GROK_DISABLE_AUTOUPDATER=1
grok -p "Run the test suite" --yolo --no-auto-update

无浏览器机器也可用 grok login --device-auth。只读挂载 ~/.grok 时会话落盘会静默失败。

大 monorepo 里不要把 --cwd 指到很深的子目录还让它往上找到巨型 .git——发现范围会变成整个仓库,启动变慢。指到真正要改的子项目。


19. ACP 与 IDE 集成

长时间跑的 Agent 服务,走 Agent Client Protocol(JSON-RPC)。一次性打印用 grok -p

# 本地 stdio(IDE / SDK 最常见)
grok agent --always-approve stdio

# WebSocket 服务(自己架,不是 xAI 托管沙箱)
grok agent --always-approve serve --bind 127.0.0.1:2419 --secret <token>

参数写在 agent 和模式名之间。开了非 off 沙箱会拒绝 leader 模式,工具必须留在本进程。

会话 _meta

{
  "cwd": "/path/to/project",
  "mcpServers": [],
  "_meta": { "yoloMode": true }
}

流式更新类型:agent_message_chunkagent_thought_chunktool_calltool_call_updateplan。另有 x.ai/fs/*x.ai/git/*x.ai/git/worktree/* 等扩展。

已支持客户端:Zed、Neovim(CodeCompanion / avante.nvim)、Emacs(agent-shell)、marimo。JetBrains 标注为即将支持。

SDK:TypeScript @agentclientprotocol/sdk,以及 Rust / Python / Go / Kotlin 的 ACP 库。


20. MCP 服务器

Model Context Protocol 把外部工具接进来。工具名带命名空间:github__create_issue

模型侧用 search_tool 发现、use_tool 调用。

配置

# 本地进程
[mcp_servers.github]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-github"]
env = { GITHUB_PERSONAL_ACCESS_TOKEN = "ghp_xxx" }
startup_timeout_sec = 30

# 远程 HTTP(优先用 url,不要再包一层 mcp-remote)
[mcp_servers.linear]
url = "https://mcp.linear.app/mcp"
enabled = true

密钥用 ${VAR},不要写进要提交的项目配置:

headers = { "Authorization" = "Bearer ${INTERNAL_MCP_TOKEN}" }

Windows 上 npx.cmd,Grok 会按 PATHEXT 解析,不必手写 cmd /c

CLI

grok mcp list
grok mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem /path
grok mcp add postgres -e DATABASE_URL=postgres://localhost/db -- npx -y @modelcontextprotocol/server-postgres
grok mcp add --transport http sentry https://mcp.sentry.dev/mcp
grok mcp remove github
grok mcp enable github
grok mcp disable github
grok mcp doctor

--scope project 写到 .grok/config.toml,可提交给团队。同名时项目配置整段替换全局,不合并。

TUI:/mcpsSpace 开关,i 做 OAuth,r 刷新,a 添加,x 删除。

OAuth token 存在 ~/.grok/mcp_credentials.json0600)。

结果默认截断到 20_000 字节,完整内容落到会话的 mcp/ 目录。可用 [mcp] max_output_bytesGROK_MAX_MCP_OUTPUT_BYTES 改。

冷启动 npx/uvx 常超过 30s:设 startup_timeout_sec,或 GROK_MCP_STARTUP_TIMEOUT_SECS / MCP_TIMEOUT(后者是毫秒,兼容 Claude)。

也兼容 ~/.claude.json.cursor/mcp.json、项目 .mcp.json。合并顺序:config.toml > Claude > Cursor > .mcp.json

stdio 失败看 ~/.grok/logs/mcp/<server>.stderr.log

项目 / 插件 MCP 要过目录信任(和 Hook、LSP 同一把闸):/hooks-trust 或启动 --trust。关文件夹信任:GROK_FOLDER_TRUST=0


21. Skills

可复用的提示词包:一个目录 + SKILL.md。适合「比 AGENTS.md 更具体、又不想每次重打」的流程。

发现顺序(高 → 低):当前目录 .grok/skills/ → 仓库 .grok/skills/~/.grok/skills/,并兼容 .agents/skills/.claude/skills/.cursor/skills/。同名高优先级覆盖。commands/ 下的扁平 *.md 会变成斜杠命令。

Skill 发现不看 .gitignore。要藏:[skills] ignore

---
name: commit
description: Create well-formatted git commits following conventional commit standards. Use when the user wants to commit changes or asks for /commit.
---

# Git Commit Skill
...

description / when-to-use 决定会不会自动调用。只要斜杠、不要自动:disable-model-invocation: true。不要出现在 / 菜单:user-invocable: false

交互创建:/create-skill。项目技能建议提交 .grok/skills/

/commit fix the build
/local:commit
/user:commit
grok inspect

内置技能缓存在 ~/.grok/bundled/skills/,不会写进你的 ~/.grok/skills/


22. Plugins

把 Skill、命令、Agent、Hook、MCP、LSP 打成可安装包。流程:加 marketplace → 安装插件 → 信任后 Hook/MCP 才真正跑。

grok plugin marketplace add my-org/team-plugins
grok plugin install deploy-tools --trust
grok plugin list
grok plugin update
grok plugin enable <name>
grok plugin disable <name>
grok plugin uninstall <name> --confirm
grok plugin validate [<path>]

不加 --trust 会警告后停下。~/.grok/plugins/ 自动信任;项目 .grok/plugins/ 要信任。

TUI:/pluginsSpace 启用,r 重载,a 添加。

[plugins]
paths = ["~/my-plugins/custom-tools"]
enabled = ["gdrive"]
disabled = ["user/a1b2c3d4/noisy-plugin"]

插件默认关,要进 enabled 或在 UI 里打开。

自建 marketplace:仓库里 .grok-plugin/marketplace.json + 每个插件一个目录。组织分发用 managed_config.toml / managed-settings.json(可锁 marketplace、锁允许的 MCP、强制 pin commit SHA)。

插件交付的是文件,不是运行时。Skill 调的 Python/二进制,机器上得已经有。


23. Hooks

在生命周期节点跑脚本或 HTTP。用途:拦危险命令、审计、通知、改完自动 format、会话开始导出环境变量。

位置:

范围路径是否信任
全局~/.grok/hooks/*.json始终
项目/.grok/hooks/*.json要信任
配置config.toml / managed / requirements始终
插件插件包内按插件

项目 Hook 第一次要 /hooks-trust--trust,记在 ~/.grok/trusted_folders.toml(MCP/LSP 同一份)。这是为了防恶意仓库在打开时跑任意代码。

主要事件:

事件何时能否拦住
SessionStart / SessionEnd会话开/关(子 Agent 自己的会话不触发 Start)
UserPromptSubmit你提交提示否(退出码被忽略)
PreToolUse工具马上跑能 deny / 改 input
PostToolUse / PostToolUseFailure工具成功 / 失败
Stop / SubagentStop回合真正结束能挡住结束、让 Agent 继续干
StopFailure / StopCancelledAPI 错 / 被取消
Notification需要你看一眼
PreCompact / PostCompact压缩前后

失败默认 fail-open:超时、崩溃、输出坏了只记日志,拦工具。只有明确 {"decision":"deny"} 才拦。当安全边界用时,脚本必须自己处理错误并给出 deny。

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          { "type": "command", "command": "bin/safe-shell.sh", "timeout": 5 }
        ]
      }
    ]
  }
}

stdin 是 JSON 事件。PreToolUse stdout:

{"decision": "allow"}
{"decision": "deny", "reason": "Unsafe command"}

退出码 2 = 明确拒绝。matcher 认 Claude 别名:Bashrun_terminal_commandReadread_file 等。

Stop 挡住结束后,原因会当用户消息喂回模型。同一回合最多续 8 次。默认超时 600 秒(方便跑测试)。会话结束也会再打一次观察用 Stop,脚本请判断 reason == "end_turn"

HTTP hook:{ "type": "http", "url": "https://hooks.example.com/grok-event" },POST 整个事件。

管理:/hooksr 重载,Space 启用。


24. 跨会话记忆

实验功能,默认关

export GROK_MEMORY=1
[memory]
enabled = true

会话内:/memory on / off(只影响本会话,不写配置)。

存哪儿:

路径范围
~/.grok/memory/MEMORY.md全局偏好
~/.grok/memory/<项目>-/MEMORY.md本仓库(同一 origin 的 clone / worktree 共用)
…/sessions/每会话摘要

默认全文检索;配了 embedding 模型才有向量检索。

  • 会话结束会写一份不调模型的元数据摘要(太短的会话跳过)
  • /flush:用模型总结重要内容,压缩前建议跑
  • /remember …:立刻记一条(会弹出确认)
  • /dream:把碎片收成主题;也可按间隔自动跑
  • 直接改 ~/.grok/memory/ 下的文件,watcher 会重建索引
grok memory clear              # 清当前工作区
grok memory clear --global
grok memory clear --all --yes

新会话第一轮会按相关度注入记忆。若先开了会话再开 Memory,用 /new 重来。


25. 自定义模型

grok models
grok -p "Hello" -m grok-build

TUI:/model grok-build,或滚动区 Ctrl+M

[models]
default = "grok-4.5"
web_search = "grok-4.5"
temperature = 0.7
extra_headers = { "X-Request-Tags" = "team=example" }

[model.my-model]
model = "model-id"
base_url = "https://api.example.com/v1"
name = "Display Name"
env_key = "XAI_API_KEY"
api_backend = "chat_completions"   # 或 responses / messages
context_window = 128000

密钥:api_key > env_key > 登录 token > XAI_API_KEY

三种后端:chat_completions(默认,OpenAI)、responsesmessages(Anthropic)。Claude 要把 Key 放进 extra_headersx-api-key

覆盖内置模型只写要改的字段:

[model.grok-build]
temperature = 0.5

企业网关:

export GROK_MODELS_BASE_URL="https://api.acme.com/v1"
export XAI_API_KEY="xai-..."

设了 models_base_url 就走 Bearer,不再需要 grok login

本地 Ollama 例:

[model.ollama-codellama]
model = "codellama"
base_url = "http://localhost:11434/v1"
name = "CodeLlama (Ollama)"

新模型若不写 context_window,自动压缩按 200_000 token 估。请按供应商真实窗口填写。


26. 主题与外观

内置:

主题配置名说明要 truecolor
GrokNightgroknight / dark默认深色
GrokDaygrokday / light浅色
TokyoNighttokyonight蓝调深色
RosePineMoonrosepine玫瑰松
OscuraMidnightoscura深紫
/theme
/theme tokyonight
[ui]
theme = "auto"
auto_dark_theme = "tokyonight"
auto_light_theme = "grokday"

auto 跟系统深浅色(Windows 读个性化注册表)。SSH 可用 GROK_APPEARANCE=dark,或 grok wrap ssh … 带上本地外观。

NO_COLOR 则单色。/compact-mode 收紧边距,适合小屏。

极简模式无视主题设置。


27. 终端与排障

/doctor
/doctor fix
grok doctor
grok doctor --json

检查颜色、剪贴板、键盘、通知、沙箱冲突。别名:/terminal-setup/terminal-check/terminal-info

Windows

  • 推荐 Windows Terminal
  • 截图粘贴用 Alt+V
  • VS Code / Cursor 集成终端:退出用 Ctrl+D;插话用 Ctrl+L;半页下滚是 Shift+D
  • Ctrl+; 的备选是 Ctrl+'(有的控制台会丢掉标点上的 Ctrl)

常见问题

现象处理
认证失败grok logoutgrok login
颜色发灰/doctor;tmux 要 terminal-features ",*:RGB" 且重载后再 attach
复制不到剪贴板/doctor 看 native / tmux / OSC 52;失败会写 ~/.grok/last-copy.txt
SSH 复制grok wrap ssh user@host(实验性);或 /copy out.txt
WezTerm 的 Ctrl+Enter 无效enable_kitty_keyboard = true
Zellij 抢快捷键用 Unlock-First (non-colliding) 预设
项目 Hook / MCP 不跑/hooks-trust--trust
调试日志RUST_LOG=debug GROK_LOG_FILE=C:\temp\grok.log grok

无头模式 RUST_LOG 默认 off,要日志请显式设级别,日志在 stderr。

版本钉扎(企业):

[cli]
minimum_version = "0.2.109"           # 更新器不下探
required_minimum_version = "0.2.100"  # 低于此拒绝启动

minimum_version 不再阻止启动,只约束更新器。硬下限用 required_minimum_version


28. 文件位置一览

Windows 下 ~%USERPROFILE%,默认 C:\Users\<你>\.grok。可用 GROK_HOME 改。

路径内容
~/.grok/config.toml主配置
~/.grok/pager.tomlTUI 外观
~/.grok/sandbox.toml自定义沙箱
~/.grok/auth.json登录凭证
~/.grok/mcp_credentials.jsonMCP OAuth
~/.grok/trusted_folders.toml目录信任
~/.grok/sessions/会话
~/.grok/memory/跨会话记忆
~/.grok/skills/用户 Skill
~/.grok/plugins/用户插件(自动信任)
~/.grok/agents/用户 Agent 定义
~/.grok/hooks/用户 Hook
~/.grok/workflows/用户工作流
~/.grok/logs/内部日志;MCP stderr 在 logs/mcp/
~/.grok/worktrees/git worktree
~/.grok/bin/CLI 本体
~/.grok/docs/user-guide/本机官方英文指南
.grok/config.toml项目 MCP / 插件 / 权限
.grok/skills/ .grok/hooks/ .grok/agents/项目级扩展
.grok/workflows/项目工作流
AGENTS.md项目指令

29. 推荐用法

  1. 日常写代码grok,默认 ask;常用命令写进项目 [permission] allow。需要少打断再开 /auto 或 always-approve。
  2. 先想清楚再改:有架构分歧时 /plan,看完 plan.mda 批准。
  3. 危险仓库 / 审计--sandbox read-onlystrict,再加 deny 和 Hook。不要只靠「只读命令名单」,那不是安全边界。
  4. CIXAI_API_KEY + grok -p … --yolo --output-format json,用 --deny / Hook 钉死红线。用 -r 接上下文,不要依赖 -s 恢复。
  5. 团队约定:仓库根 AGENTS.md + .grok/skills/ + .grok/config.toml(MCP 与权限)。密钥用 ${ENV},不要提交。
  6. 长会话:主动 /compact;重要结论 /flush/remember/rewind 只回对话,不回文件。
  7. 并行调研:让主 Agent spawn explore;改文件用 worktree 隔离。
  8. 接 GitHub / Linear / 数据库:优先 HTTP MCP 的 url 形式,配完 /mcpsi 登录。
  9. 从 Claude / Cursor 过来:欢迎页 Ctrl+I,或保留 ~/.claude / .cursor 让兼容层自己扫。
  10. 出问题先 /doctorgrok inspect

附录:官方入口

资源地址
总览https://docs.x.ai/build/overview
本机指南~/.grok/docs/user-guide/(01–24)
产品https://x.ai/build
更新日志https://x.ai/build/changelog
源码说明https://github.com/xai-org/grok-build
控制台 / API Keyhttps://console.x.ai
ACPhttps://agentclientprotocol.com
MCPhttps://modelcontextprotocol.io
ZDRhttps://docs.x.ai/developers/faq/security#how-to-enable-zdr

在 TUI 里也可以 /docs/docs web 打开官方文档。

本文按官方用户指南转写,命令、路径、键位保持原文。产品仍在迭代,以当前安装的 grok --version/release-notes 为准。


标题:Grok Build 使用文档
作者:llp
地址:https://llinp.cn/articles/2026/08/18/1787039870965.html