1. gstack 是什么,为什么值得配一套统一通道
gstack 是 YC CEO Garry Tan 开源的一套 AI 工程团队工作流,GitHub Star 已经冲到 10 万。它做的事情不是再造一个编辑器,而是把 Claude Code 变成一支有分工的虚拟工程团队:从/office-hours审视需求,到/plan-ceo-review挑战方案,再到/review做 staff engineer 级代码审查、/qa跑真实浏览器测试、/ship一条龙推 PR,二十多个斜杠命令覆盖了思考、规划、构建、审查、测试、发布、复盘七个环节。适合谁?技术创始人、刚开始用 Claude Code 的人、想在每次 PR 上都跑严格 review 和发布自动化的技术负责人。
但真正落地时会撞上一个很现实的问题:gstack 的每个技能背后都要调用模型,而 Claude Code 默认走的是官方通道。如果你手上有多个项目、多个 agent(gstack 还支持 Codex CLI、Cursor 等 10 种编程 agent),每个都去单独配 Key、单独管额度,很快就会乱。我试过把 gstack 的模型调用统一收口到 TaoToken 的 API 通道,好处是:一个 Key 跑通所有技能,settings.json 里改一处,gstack 的二十多个命令全部生效,不用逐个去动。这篇就把这套 settings.json 骨架和验证动作完整交付出来,你可以直接复制。
2. 前置准备:TaoToken 通道与 gstack 环境
在动 settings.json 之前,先把两件事准备好,否则后面报错会很难定位。
第一件是 TaoToken 的 API Key。打开 https://taotoken.net/api 对应的控制台入口,在 API Keys 页面创建一个新 Key。建议按项目命名,比如gstack-dev,方便后面区分。创建后立刻复制保存,页面刷新后就看不到完整 Key 了。这个 Key 就是 gstack 所有技能调用模型的统一凭证。
第二件是 gstack 本身的运行环境。gstack 依赖 Claude Code、Git 和 Bun v1.0+。Bun 的版本一定要确认,低于 1.0 会在 setup 脚本阶段直接失败。可以用下面这条命令确认:
bun --version # 期望输出类似 1.1.x 或更高Claude Code 装好后,在 Claude Code 里贴 gstack 官方给的安装命令,它会自动 clone 仓库、跑 setup 脚本、注册所有技能。团队协作的话再执行一次 team mode 命令,队友每次打开 Claude Code 都会自动拉最新版 gstack,避免版本漂移。
这里有个关键点:gstack 的技能是通过 Claude Code 的配置去调用模型的,所以我们要改的不是 gstack 仓库里的文件,而是 Claude Code 读取的settings.json。把模型请求指向 TaoToken 的 API 地址,gstack 的所有斜杠命令就会自动走这条通道。
3. 可复制的 settings.json 骨架
下面这份骨架是核心。它放在 Claude Code 的配置目录下,不同系统路径不同:macOS/Linux 一般在~/.claude/settings.json,Windows 在%USERPROFILE%\.claude\settings.json。如果目录不存在就手动建一个。
{ "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_AUTH_TOKEN": "sk-你的TaoToken密钥", "ANTHROPIC_MODEL": "claude-sonnet-4-20250514", "ANTHROPIC_SMALL_FAST_MODEL": "claude-haiku-4-20250514" }, "permissions": { "allow": [ "Bash(bun:*)", "Bash(git:*)", "Read", "Write", "Edit" ] }, "includeCoAuthoredBy": false }逐项说明一下,别照抄完就不管了:
ANTHROPIC_BASE_URL指向 TaoToken 的 API 地址,这是整份配置的枢纽,gstack 所有技能发出的模型请求都会先到这里。注意这里用的是https://taotoken.net/api,不带任何多余路径。
ANTHROPIC_AUTH_TOKEN填你刚才创建的 Key。不要把这个文件提交到 Git,建议在项目.gitignore里加上.claude/settings.local.json这类本地覆盖文件。
ANTHROPIC_MODEL是主模型,gstack 的/review、/plan-eng-review这类重推理技能会用它。ANTHROPIC_SMALL_FAST_MODEL是轻量模型,/office-hours的追问、/careful的拦截判断这类高频小请求走它,能明显省额度。
permissions.allow里放的是 gstack 常用命令。/ship要跑 git、/qa要跑 bun 脚本,不放开这些权限,技能执行到一半会被权限提示打断。includeCoAuthoredBy设为 false 是因为 gstack 的/ship会自动开 PR,关掉它避免提交信息里出现多余的署名行。
如果你想让不同项目用不同的 Key 或模型,可以在项目根目录再放一份.claude/settings.json,它会覆盖全局配置。这样 gstack 在 A 项目跑 sonnet、在 B 项目跑 haiku,互不干扰。
4. 验证请求:确认 gstack 真的走通了
配置写完不代表生效,必须做一次端到端验证。分三步走。
第一步,确认 Claude Code 读到了配置。在终端里执行:
claude --print-env | grep ANTHROPIC期望能看到ANTHROPIC_BASE_URL=https://taotoken.net/api和你的模型名。如果这里是空的,说明 settings.json 路径放错了,或者 JSON 格式有语法错误(比如多了个逗号)。可以用python -m json.tool ~/.claude/settings.json校验格式。
第二步,发一个最小请求,确认通道通。在 Claude Code 里输入一句最简单的:
/office-hours 我想做一个给独立开发者用的记账工具/office-hours是 gstack 里最轻的技能,它会抛出六个强制性问题。如果它能正常返回问题列表,说明模型请求已经成功经过 TaoToken 通道到达模型并返回。这一步成功,基本就通了。
第三步,跑一个带工具调用的技能,确认权限和模型都正常。输入:
/review它会读取当前仓库的代码并给出审查意见。如果它开始读文件、输出审查结论,说明Read权限和主模型都工作正常。到这一步,gstack 的完整链路就算验证通过了。
成功的结果长这样:/office-hours返回六个结构化问题,/review输出带文件行号的审查意见,终端里没有任何401、Connection refused或model not found字样。如果出现了,直接看下一节。
5. 本篇常见错排查
报 401 Unauthorized。九成是 Key 的问题。先确认ANTHROPIC_AUTH_TOKEN里没有多余空格或换行,再确认这个 Key 在 TaoToken 控制台里是启用状态。如果 Key 是刚创建的,等十几秒再试,偶尔有缓存延迟。
报 model not found 或 404。说明ANTHROPIC_MODEL填的模型名通道不认。把模型名换成控制台里列出的可用模型,别凭记忆写。ANTHROPIC_SMALL_FAST_MODEL也要一起改,两个模型名必须都有效。
gstack 技能执行到一半卡住或报权限错误。检查permissions.allow是否漏了对应命令。/ship需要Bash(git:*),/qa需要Bash(bun:*)。如果不想逐条放开,可以临时用--dangerously-skip-permissions启动 Claude Code 定位问题,但定位完记得改回来。
改了 settings.json 但没生效。Claude Code 只在启动时读配置。改完必须完全退出再重新打开,热重载不生效。另外确认你改的是全局配置还是项目配置,项目配置优先级更高,可能覆盖了你的全局改动。
Bun 版本过低导致 setup 失败。回到第 2 节,bun --version必须 ≥ 1.0。升级用bun upgrade,升完重新跑 gstack 的 setup 脚本。
多个 agent 共用时互相覆盖。gstack 支持 Codex CLI、Cursor 等,如果它们各自读不同的配置文件,注意别把同一份 settings.json 改来改去。建议每个 agent 用独立的 Key,在 TaoToken 控制台按 agent 命名,出问题时能快速定位是哪个通道的请求。
6. 把通道固定下来,让 gstack 长期跑
配置一次不难,难的是长期稳定。我的做法是把 TaoToken 的 Key 按用途拆开:gstack 日常开发用一个,CI 里跑/ship和/qa用另一个,这样即使某个 Key 出问题也不影响另一条链路。模型选择上,重推理技能固定用 sonnet,高频小请求固定用 haiku,别频繁换,换来换去反而不好排查。
如果你打算把 gstack 用在长期编码和 Agent 场景,建议直接上 Coding Plan,额度更稳,不用每次盯着用量。接入文档在 https://taotoken.net/api 对应的文档页,里面有各语言 SDK 的调用示例,遇到通道层面的问题可以先翻那里。模型对话入口可以用来快速验证某个模型名是否可用,省得在 settings.json 里反复试错。
最后提醒一句:settings.json 里的 Key 是明文,别提交到公开仓库。团队协作时用环境变量注入,或者用本地覆盖文件,把敏感信息挡在版本控制之外。gstack 的二十多个技能跑起来之后,你会发现真正花时间的不是配置,而是它帮你省下来的那些 review 和测试环节。