1. Ubuntu 24.04 上把 gstack 接到 TaoToken:从 npm 装到 settings 改完
Ubuntu 24.04 装 AI 自动化编程环境,最烦的不是敲命令,而是装到一半发现 npm 依赖打架、Claude Code 的 settings 里 Base URL 不知道往哪填。这篇就按我实际在 Noble 上跑通的顺序,把 gstack 这套 Claude Code 技能包从 npm 安装、Git 配置、Bun 环境到 settings 指向 TaoToken 统一 Key/API 通道,逐项拆开写。适合已经在用 Claude Code、想加 gstack 做自动化编程工作流的人,也适合刚在 Ubuntu 24.04 上配 AI 编程环境、被 Signed-By 警告和 npm 循环依赖卡住的新手。
核心检索词先摆出来:Ubuntu 24.04 环境配置 AI 自动化编程 gstack,本质是「系统层修依赖 + 应用层装技能包 + 通道层改 settings」三件事。gstack 是 Garry Tan 开源的 AI 编程工作流,属于 Claude Code 的插件技能,不是系统软件,依赖 Bun 运行环境;而 Claude Code 本身通过 npm 全局安装。两者都装好后,真正决定你能不能稳定调用模型的,是~/.claude/settings.json里的 Base URL 和 Key 指向哪里。我把它统一指到 TaoToken 的 API 通道,一个 Key 管多模型,省得在多个平台之间来回切。
下面每一步都给可复制命令和配置片段,最后附 curl 验证请求是否走通。你照着敲,遇到报错直接跳到第 5 节对照。
2. 前置环境:Ubuntu 24.04 修源警告与 npm 依赖冲突
Ubuntu 24.04 加强了软件源签名校验,旧官方源没适配新格式,apt-get update会冒出一堆N: 缺失 Signed-By警告;同时 Ubuntu 把 npm 拆成大量子依赖包,残缺安装很容易形成依赖闭环,apt install npm直接死锁。这两件事不解决,后面 Claude Code 和 gstack 都装不干净。
先备份并切清华源,Noble 分支已适配新签名规范,警告会自动消失,下载也快:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo tee /etc/apt/sources.list << 'EOF' deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble-security main restricted universe multiverse EOF sudo apt-get update更新完不再出现 Signed-By 相关警告。接着用 aptitude 智能修复 npm 依赖死锁,它擅长降级和调换依赖逻辑,比 apt 更能处理复杂关系:
sudo apt-get install aptitude sudo aptitude install npmaptitude 会给出方案选择:第一个默认方案是「保持软件包当前版本(不安装 npm)」,输入n拒绝;第二个推荐方案会降级或调整 nodejs 相关依赖,输入y接受。它会自动梳理依赖闭环。装完验证:
npm -v node -v输出版本号即正常。然后全局装 Claude Code:
npm install -g @anthropic-ai/claude-code claude --versionGit 也顺手配好,gstack 的 setup 脚本和后续仓库操作都要用:
sudo apt update && sudo apt install git -y git config --global user.name "你的名字" git config --global user.email "你的邮箱@example.com" git config --global color.ui auto git config --global init.defaultBranch main需要免密连远程仓库的话,生成 ed25519 密钥,全程回车即可:
ssh-keygen -t ed25519 -C "你的邮箱@example.com" cat ~/.ssh/id_ed25519.pub把ssh-ed25519开头的内容贴到 GitHub 的 Settings → SSH and GPG keys,或 GitLab 的 Settings → SSH Keys,再测连通:
ssh -T git@github.com出现认证成功提示就通了。这一步做完,系统层和应用层的坑基本填平,可以进 gstack 安装。
3. 可复制配置:gstack 安装与 settings 指向 TaoToken
gstack 依赖 Bun,没装先补:
curl -fsSL https://bun.sh/install | bash source ~/.bashrc bun --version一键克隆并执行 setup,脚本会自动下载依赖、编译浏览器组件,耗时几分钟:
git clone --single-branch --depth 1 https://github.com/garrytan/gstack.git ~/.claude/skills/gstack && cd ~/.claude/skills/gstack && ./setup如果提示脚本权限不足,补一句chmod +x setup再跑。装完在项目根目录或全局~/.claude/CLAUDE.md里启用技能:
gstack Use /browse from gstack for all web browsing. Never use mcpclaude-in-chrome* tools. Available skills: /office-hours, /plan-ceo-review, /plan-eng-review, /plan-design-review, /design-consultation, /design-shotgun, /design-html, /review, /ship, /land-and-deploy, /canary, /benchmark, /browse, /connect-chrome, /qa, /qa-only, /design-review, /setup-browser-cookies, /setup-deploy, /retro, /investigate, /document-release, /codex, /cso, /autoplan, /plan-devex-review, /devex-review, /careful, /freeze, /guard, /unfreeze, /gstack-upgrade, /learn关键一步来了:把 Claude Code 的 settings 改到 TaoToken。编辑~/.claude/settings.json,路径和字段名保持原样,只替换 Base URL 和 Key:
{ "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_AUTH_TOKEN": "你的TaoToken Key", "ANTHROPIC_MODEL": "claude-sonnet-4-5-20250929", "ANTHROPIC_SMALL_FAST_MODEL": "claude-haiku-4-5-20251001" }, "permissions": { "allow": ["Bash", "Read", "Write", "Edit"] } }三件套对齐一下,别漏项:
| 配置项 | 值 | 说明 |
|---|---|---|
| Base URL | https://taotoken.net/api | 统一 API 通道入口 |
| Key | TaoToken 控制台生成的 Key | 一个 Key 管多模型 |
| Model ID | claude-sonnet-4-5-20250929 | 按需换成其他可用模型 |
Key 在 TaoToken 控制台的 API Keys 页面生成,模型 ID 以接入文档里的可用列表为准。如果你用 Codex,对应的是~/.codex/auth.json,同样把 Base URL 和 Key 换成上面这套;用 Cline 的 MCP 配置则在 MCP settings 里填 Base URL、Key、Model ID 三项。三件套缺一个都会连不上,这是最常见的翻车点。
4. 验证请求:curl 测通道 + Claude Code 跑通 gstack
配置写完别急着开 Claude Code,先用 curl 确认通道走通,能省掉一半排障时间:
curl -s https://taotoken.net/api/v1/messages \ -H "x-api-key: 你的TaoToken Key" \ -H "anthropic-version: 2023-06-01" \ -H "content-type: application/json" \ -d '{ "model": "claude-sonnet-4-5-20250929", "max_tokens": 64, "messages": [{"role": "user", "content": "reply with ok"}] }'返回 JSON 里带content字段和正常文本,说明 Base URL、Key、Model ID 三件套都对。如果返回 401,是 Key 或请求头字段写错;返回local proxy failed,多半是 Base URL 拼错或网络层拦截;返回reading choices相关报错,通常是响应体不是预期格式,检查 Model ID 是否在可用列表里。
通道通了再进项目目录启动 Claude Code:
cd ~/your-project claude进去后敲/office-hours做产品思路评审,或/review跑代码深度审核,/qa做自动功能测试。第一次跑 gstack 技能时它会加载浏览器组件,如果无头浏览器异常,系统一般会自动补齐libgbm1等依赖库,手动补也行:
sudo apt-get install -y libgbm1 libasound2t64更新 gstack 时进目录git pull再执行./setup,或在 Claude 里直接/gstack-upgrade。实测下来,通道验证这步做完,后面 gstack 的技能调用基本不会因为网络层问题中断,报错也能快速定位到是配置还是技能本身。
5. 常见报错排查:401、local proxy failed、reading choices、OAuth
把真实会撞上的报错列出来对照,比盲猜快得多。
401 Unauthorized:Key 没填对,或ANTHROPIC_AUTH_TOKEN字段名写成了别的。检查~/.claude/settings.json里字段名是否严格一致,Key 有没有多余空格。TaoToken 的 Key 在控制台 API Keys 页面重新生成一个再试。
local proxy failed:Base URL 写错,比如漏了/api或多了斜杠。正确值是https://taotoken.net/api,不要带 UTM 参数。也可能是本地网络层拦截,换 curl 直接测同一地址,curl 通而 Claude Code 不通,就是 settings 没生效,重启终端或claude进程。
reading choices 类报错:响应体不是预期的 JSON 结构,常见于 Model ID 填了不可用的模型。对照接入文档里的模型列表,换成claude-sonnet-4-5-20250929这类确认可用的 ID。如果用的是 Codex,检查~/.codex/auth.json里的模型字段是否同步改了。
OAuth 相关报错:Claude Code 某些版本会尝试走 OAuth 登录流程,和 API Key 模式冲突。确认 settings 里用的是ANTHROPIC_AUTH_TOKEN而非 OAuth token,必要时清掉~/.claude下的缓存凭证再重启。
npm 装 Claude Code 时报 MODULE_NOT_FOUND:回到第 2 节用 aptitude 重装 npm,别用apt install npm硬刚。gstack setup 报权限不足:chmod +x setup。无头浏览器起不来:补libgbm1、libasound2t64。
排查顺序建议固定成:先 curl 测通道 → 再查 settings 三件套 → 最后看技能层。这样每次报错都能收敛到具体一层,不会在系统、应用、通道之间来回试。
6. 把 Key 和通道固定下来,长期跑自动化编程
环境搭好只是开始,真正省心的是把 Key 和通道固定成一套配置,之后不管换项目还是加技能,都只动 settings 不动系统。TaoToken 的 API 通道在这里的作用就是统一入口:一个 Key 覆盖多个模型,Claude Code、Codex、Cline MCP 都指同一个 Base URL,省掉每个工具单独配一遍的麻烦。
需要生成或轮换 Key,去控制台 API Keys 页面:https://taotoken.net/console/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api_keys&utm_campaign=rewrite
接入细节和可用模型列表看文档:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite
想先在网页里试模型对话、确认模型 ID 再写进 settings:https://taotoken.net/models?utm_source=taotoken_aicg_blog_end&utm_content=models&utm_campaign=rewrite
如果你打算长期用 gstack 跑自动化编程和 Agent 工作流,Coding Plan 比按量更划算:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding_plan&utm_campaign=rewrite
最后留个实用习惯:把~/.claude/settings.json和~/.codex/auth.json里的 Base URL、Key、Model ID 三件套抄一份到密码管理器,换机器时直接贴,不用重新回忆字段名。gstack 的技能列表更新后,/gstack-upgrade跑一次就行,配置层不用动。