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


目录

  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/19/1787099221561.html