GKD
July 16, 2026 · View on GitHub

GKD · 搞快点
GKD 是「搞快点」的拼音首字母,也是三个当下前沿开源模型的首字母 —— GLM · Kimi · Deepseek。
GKD 是一个 Claude Code plugin。它借 Claude Code 自己的工具循环(harness),起一个以你指定的任意模型为大脑的子进程去干活——子进程有完整的 Read/Edit/Bash... 工具,在自己的上下文里读文件、思考、改代码、跑命令,只把结果回传给主对话。
两个并重的目的:
- 省 token —— 重活的开销发生在子进程,主 Claude 只付「指令 + 结果」那一点点;可降级的活交给便宜模型即可。
- 借不同模型的视角 —— 代码、长文摘要、视觉、高难推理,各家强项不一样;换一个大脑,既能在 brainstorm / cross-review 时不被单一模型的偏好带着走,也能把每样活交给最擅长它的那个。
默认这套子进程走 Claude Code 的 harness(
claude -p换端点)。如果你本机装了 Codex CLI,还能把任务委派给 codex——那是另一套 harness,GPT 在自己的工具循环里干活、走你的 codex 登录态。详见下文「另一套 harness:codex」。
它解决什么问题
用 Claude Code 时会有两个问题:一是很多活其实不需要最贵的旗舰模型(写样板、批量同构改写、格式/语言转换、读长文档做摘要、代码审查……),但默认全喂给同一个主模型,token 哗哗地烧;二是你被锁死在单一模型的视角里,想听听 GLM、Kimi、Deepseek、GPT 对同一个问题怎么看,得手动切来切去。
GKD 的思路是分包给另一个大脑:主 Claude 给方向,真正读写跑的实活交给一个换了脑的子进程。
flowchart LR
U([你]) -->|/gkd:do 改这50个文件| Main[主 Claude<br/>调度 · 给方向]
Main -->|只传任务+文件路径<br/>不传文件内容| RT[gkd-runtime.mjs<br/>换脑底座]
RT -->|spawn 独立子进程<br/>claude -p --model 你选的模型| Sub[子 agent<br/>GLM/Kimi/Deepseek… · 大脑]
Sub -->|完整工具循环<br/>Read/Edit/Bash 自己干| Files[(你的代码)]
Sub -->|只回传结果| Main
Main -->|汇报| U
style Main fill:#d97757,color:#fff
style Sub fill:#2d6a4f,color:#fff
style RT fill:#e9c46a,color:#000
关键纪律:主 Claude 绝不先读文件内容再转发给子进程,只传文件路径,子进程自己读。这样主对话的 token 占用几乎只剩「下达指令」那一句话。
省了多少?(/gkd:stats)
GKD 自带用量统计,每次委派都记一笔,随时可查省了多少,例如:
GKD delegation stats 30d · cache 5m old
────────────────────────────────────────────────────────────────────────────
44 calls · 9 failed · saved \$15.40 (↓38%)
Tokens
input 6.46M (96%) · output 267.1k (4%)
cache_r 2.44M · cache_w 0
Models
model │ calls │ tokens │ cache_r/w │ cost
glm-5.2 │ 21 ok · 2 fail │ 2.98M │ 1.84M/— │ \$5.12
kimi-k2.6 │ 6 ok · 6 fail │ 236.3k │ 603.9k/— │ \$0.4531
gpt-5.5 │ 8 ok · 1 fail │ 3.51M │ — │ \$19.22
Cost
\$24.80 actual █████████████████░░░░░░░░░░░ \$40.20 if Opus
saved \$15.40 · 38% lower
· baseline claude-opus-4-8
· public-rate estimate, gateway billing may differ
成本按 LiteLLM 的公开价格表估算,
baseline是「同样的活全用 Opus 跑」的假想成本。实际网关计费可能不同,数字仅供参考方向。
安装
前置条件
- 已安装 Claude Code(
claude在 PATH 里) - 至少一个 Anthropic 兼容的模型端点(官方 Claude API、OpenRouter、各家兼容网关均可)及其 API Key
- (可选)本机装了 Codex CLI 并已登录,即可用
--codex把任务委派给 GPT——无需额外配端点/密钥,走 codex 自己的登录态
第一步:添加 marketplace 并安装
/plugin marketplace add alvis-HaoH/gkd
/plugin install gkd@gkd
然后 /reload-plugins(或重启 Claude Code)使命令生效。
也可以本地开发模式加载:
claude --plugin-dir /path/to/gkd
第二步:配置你的模型(必做)
GKD 出于安全不把任何真实端点/密钥入库。安装后需要你提供一份模型注册表:
# 进入 plugin 目录(marketplace 安装后在 ~/.claude/plugins/cache/gkd/gkd/<version>/)
cp config/models.example.json config/models.json
# 编辑 models.json,填你自己的端点和模型
模板里自带 GLM · Kimi · Deepseek 三个示例条目(正是 GKD 名字的由来),你按自己接入的真实端点改写即可。单个模型的结构(完整字段见 models.example.json 里的 _comment):
{
"models": {
"glm": {
"model": "glm-5.2",
"baseUrl": "${ANTHROPIC_BASE_URL}",
"authToken": "${ANTHROPIC_AUTH_TOKEN}",
"pricingKey": "fireworks_ai/glm-5p2"
}
}
}
要点:
baseUrl/authToken支持${ENV_VAR}插值 —— 推荐用环境变量传密钥,别把明文写进文件。- 模型选择靠显式指定:用
/gkd:ask --glm ...点名;不指定时主 Claude 自行判断,拿不准就用默认(第一个未禁用条目)。 - 支持视觉输入的模型加
"supportsVision": true—— 主 Claude 无法从模型名推断模态,派带图任务时据此避开收不了图的模型。runtime 有一道硬护栏:--with-context且主对话含图片时,若选定模型没标supportsVision,直接 fail 拦住(不会等到子进程被端点 400)。子进程自己Read图片文件的路径 runtime 无从预判,靠主 Claude 自觉选对模型。 - 第一个未禁用的模型 = 默认模型。
harness字段选 harness:缺省"claude"(spawnclaude -p换端点);设"codex"则委派给本机 codex CLI(见下文专节)。模板里的codex条目就是个harness:"codex"的例子——不填 baseUrl/authToken(走本机登录态),autoDetect:true让本机没装 codex 时自动禁用。- 加新模型只改这个文件,runtime 自动读,无需改代码。
- 某些网关未适配新版 CLI 的
adaptivethinking 会报 400,可在该模型加"env": { "MAX_THINKING_TOKENS": "0" }关掉 thinking 绕过。
models.json 已在 .gitignore 里(含密钥不入库),models.example.json 是给所有人看的模板。
命令速查
| 命令 | 权限 | 用途 |
|---|---|---|
/gkd:ask <任务> | 只读(Read/Grep/Glob + git) | 问 / 分析 / 咨询,主进程物理上无法改文件 |
/gkd:do <任务> | 读写(+Edit/Write/Bash) | 改文件 / 落盘 / 执行,命令名本身就是你的「同意改」 |
/gkd:resume [<模糊描述>] <补充> | 自动继承上次 | 续委派线程:默认续本目录上次;也可凭「上次那个改配置的」等模糊描述点名续任意历史 / 跨目录 session(主 Claude 自动检索,读/写模式自动继承) |
/gkd:review | 只读 | 代码审查(常规缺陷 / --adversarial 对抗式设计审) |
/gkd:brainstorm | 只读 | 多模型并行独立发散,主 Claude 综合分歧与共识 |
/gkd:workflow | 视任务 | N 个 item 批量委派,各起一个子进程并行处理 |
/gkd:stats | — | 委派用量与省钱估算 |
主 Claude 会智能补全 flag:你只需要用自然语言表达,它自己判断选哪个模型、要不要带上对话历史。当然你也可以显式指定:
/gkd:do --glm 把 src/legacy/ 下所有 .js 转成 TypeScript
/gkd:review --codex 这个并发设计有没有竞态问题?
/gkd:brainstorm 让 glm,kimi,deepseek 一起脑暴下xxx
三个核心机制
1. 换脑:最可靠的开关
在默认的 claude harness 里,GKD 不靠环境变量换模型(那些常被全局 settings 钉死),而是直接 spawn 一个独立子进程:
claude -p --model <你的模型> --setting-sources project ...
2. 上下文三档:按需决定子进程「知道多少」
flowchart TD
A["A 档 · 干净委派<br/>(默认)"] -->|不带任何历史<br/>任务自洽时用| R[换脑子进程]
B["B 档 · --resume<br/>续线程"] -->|接着上次委派<br/>继续干| R
C["C 档 · --with-context<br/>fork 主对话"] -->|子进程自己从磁盘<br/>加载主对话历史<br/>主 token 几乎免费| R
style A fill:#2d6a4f,color:#fff
style B fill:#e9c46a,color:#000
style C fill:#d97757,color:#fff
- A 档(默认):任务文本已经写清一切,子进程从零开始,最省。
- B 档(
--resume):接着委派线程往下做,读/写模式自动继承。默认续本目录上次;你也可以只凭模糊描述(「上次那个改配置的」)让主 Claude 检索历史委派、点名续任意一条(含跨目录、fork 链最新节点),不必记 session id。 - C 档(
--with-context):任务里有「上面那个方案」这种回指时,让子进程自己从磁盘 fork 主对话历史——主 Claude 不用把历史复述一遍,所以主 token 几乎免费。
3. workflow:批量委派的双层编排
/gkd:workflow 把「50 个文件各转一次」这类同构批量,编排成并行的换脑子进程:
flowchart LR
Main[主 Claude<br/>拿到路径列表] --> WF{Workflow 编排}
WF -->|item 1| S1[换脑子进程]
WF -->|item 2| S2[换脑子进程]
WF -->|item N| S3[换脑子进程]
S1 --> Agg[汇总: 成功/失败]
S2 --> Agg
S3 --> Agg
Agg --> Main
style Main fill:#d97757,color:#fff
style WF fill:#e9c46a,color:#000
style S1 fill:#2d6a4f,color:#fff
style S2 fill:#2d6a4f,color:#fff
style S3 fill:#2d6a4f,color:#fff
每个 item 一个独立子进程,token 互相隔离,还能按 item 或按「worker 干活 / verifier 把关」分配不同模型。
另一套 harness:委派给本机 codex(GPT)
前面讲的换脑,都是同一套 harness(Claude Code 的工具循环)换一个模型端点。GKD 还支持换掉整套 harness:如果你本机装了 Codex CLI 并已登录,--codex 会 spawn 一个 codex exec 子进程,让 GPT 在 codex 自己的工具循环里读文件、改代码、跑命令。
flowchart LR
U([你]) --> Main[主 Claude<br/>调度]
Main -->|--glm / --kimi …| RT[gkd-runtime.mjs]
RT -->|harness: claude| C["claude -p --model 你选的模型<br/>(换端点)"]
RT -->|harness: codex| X["codex exec<br/>(换整套 harness · 走本机登录态)"]
style Main fill:#d97757,color:#fff
style RT fill:#e9c46a,color:#000
style C fill:#2d6a4f,color:#fff
style X fill:#264653,color:#fff
它是什么、不是什么:codex 是另一套 harness,不是又一个便宜模型。它走你的 codex 订阅登录态(不消耗 Anthropic 端点额度,/gkd:stats 也不计它的成本),要的是 GPT 的独立第二意见 / 换 harness 的视角 / GPT 侧的能力(如 GPT-image 生成)。
开箱即用:你甚至不必在 models.json 里配它——只要本机装了 codex,runtime 会自动注入一个默认 codex 条目;没装则 --codex 会明确报「未检测到 codex CLI」而不是静默退化。要自定义(改模型、effort)再在 models.json 显式配 harness:"codex" 条目。
支持上下文三档:--with-context 同样可用——首次会把当前对话导入成一个 codex thread(约 1–2s),之后 --resume 续这个 thread。
写模式的两点差异(派写任务给 codex 前务必知悉):
- 写边界由 codex 自己的 sandbox 定义(
workspace-write), - codex 写模式默认关闭网络 ——
npm install、git fetch这类要联网的命令会失败;这类任务别派给 codex,交给 claude harness 的模型。
续接差异:codex 的 thread 存在 ~/.codex/sessions(不是 Claude 的 jsonl),续接走 codex exec resume,工作目录跟原 thread 走——README 里那些「jsonl 归属目录 / 跨目录续」是 Claude 侧机制,对 codex 不适用。
思考强度:--effort <档>(none/low/medium/high/xhigh/max),claude/codex 通用。各 harness 把不支持的档就近映射到最近的支持档(claude 无 none → 取 low),不报错不丢语义。
codex 专属开关:--codex-model <名>(覆盖本机默认模型)。
直接调底座
所有命令最终都调同一个底座,你也可以手动调:
node "${CLAUDE_PLUGIN_ROOT}/scripts/gkd-runtime.mjs" [--<modelKey>] [选项] "<任务(含文件路径)>"
# 看帮助和当前可用模型
node "${CLAUDE_PLUGIN_ROOT}/scripts/gkd-runtime.mjs" --help
关键开关:--write(允许改文件)、--resume(续线程)、--with-context(fork 主对话)、--effort <档>(思考强度 none/low/medium/high/xhigh/max,claude/codex 通用)、--prompt-file <path>(注入前置系统指令,如审查模板)、--json(结构化输出,供 workflow 消费)。codex 专属:--codex-model <名>。
目录结构
gkd/
├── .claude-plugin/
│ ├── plugin.json # plugin 元信息
│ └── marketplace.json # 自带 marketplace(让别人能一键装)
├── commands/ # 7 个 slash 命令
├── scripts/
│ ├── gkd-runtime.mjs # 换脑底座(核心 · 兼派发 claude/codex 两套 harness)
│ ├── gkd-brainstorm.mjs # 多模型并行
│ ├── gkd-codex-import.mjs # --with-context 时把当前对话导入成 codex thread
│ ├── gkd-find-session.mjs # 委派历史检索(主 Claude 把模糊描述翻成 session id)
│ └── gkd-stats.mjs # 用量统计 TUI
├── bin/gkd-stats # 零模型成本看 stats 的入口
├── config/
│ └── models.example.json # 模型注册表模板(复制成 models.json 用)
└── prompts/ # review 的两种立场模板
命令与模型完全解耦:加模型只改 models.json,命令文件不动。
License
MIT © alvis-HaoH