1. 为什么你的 Claude Code 总是“差点意思”
Claude Code 是 Anthropic 推出的终端 AI 编码代理,能读文件、跑命令、改代码、走 Git 流程,适合已经习惯命令行、又想让 AI 深度参与日常开发的工程师。但很多人装完之后发现:它好像没那么神——改错文件、忘记项目规范、每次都要重新解释一遍背景、上下文一长就开始胡言乱语。问题往往不在模型本身,而在于你没有把“项目记忆、代码诊断、工具接入、Git 工作流”这四件事配好。
这篇围绕四条主线展开:CLAUDE.md 项目记忆、LSP 代码诊断、MCP 工具接入、Git worktree 并行开发,并给出可直接复制的settings.json与config.toml骨架。同时演示如何通过 TaoToken 统一 Key/API 通道完成接入,让 Claude Code 的请求走一条稳定、可复用的通道,而不是每次手动改环境变量。全文按“能跟做”的标准写,命令、参数、报错排查都给到位。
2. 前置:用 TaoToken 统一 Key 与 API 通道
Claude Code 默认读ANTHROPIC_API_KEY和ANTHROPIC_BASE_URL两个环境变量。如果你同时用多个 AI 工具,每个工具配一套 Key 会非常乱。TaoToken 的做法是给你一个统一入口,把模型调用收敛到一条通道上,Claude Code、Coding Plan、模型对话都从这里走。
官网入口:https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=
API 地址(不带 UTM):https://taotoken.net/api
你需要先拿到一个 API Key。进入控制台创建:
- 控制台:https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=
- API Keys 管理:https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=
创建后复制 Key,形如sk-xxxx。接下来把它写进 shell 配置,而不是每次临时 export。以 zsh 为例,编辑~/.zshrc:
# TaoToken 统一通道 export ANTHROPIC_BASE_URL="https://taotoken.net/api" export ANTHROPIC_API_KEY="sk-你的Key" # 顺手加个别名,后面所有技巧都用 cc 启动 alias cc='claude'保存后source ~/.zshrc。这一步同时解决了技巧 1(cc 别名)和通道配置。注意ANTHROPIC_BASE_URL只写到/api,不要自己拼/v1,Claude Code 会按协议补路径,多写反而 404。
注意:Key 不要提交进 Git。建议在项目
.gitignore里加上.env、.claude/settings.local.json这类本地文件。
3. 可复制配置:CLAUDE.md、settings.json 与 config.toml
3.1 CLAUDE.md 项目记忆骨架
CLAUDE.md 是 Claude Code 每次会话自动读取的项目记忆文件。放在仓库根目录,用/init可以自动生成初版,但自动生成的往往太泛,建议手动补上“规范、命令、禁区”三块。下面是我常用的骨架:
# 项目:xxx-service ## 技术栈 - Node.js 20 + TypeScript 5.4 - 框架:Fastify - 测试:Vitest - 包管理:pnpm ## 常用命令 - 安装:pnpm install - 开发:pnpm dev - 测试:pnpm test - 类型检查:pnpm tsc --noEmit - Lint:pnpm lint --fix ## 代码规范 - 禁止 any,用 unknown + 类型守卫 - 所有导出函数必须有 JSDoc - 错误统一走 src/errors/AppError.ts ## 目录约定 - src/routes/ 路由 - src/services/ 业务逻辑 - src/db/ 数据访问 ## 禁区 - 不要改 pnpm-lock.yaml - 不要动 migrations/ 下已合并的文件 - 提交前必须跑 pnpm test有了它,你就不用每次重复“我们用 pnpm 不用 npm”“别用 any”。实测下来,这一条对减少返工最明显。
3.2 settings.json 配置骨架
Claude Code 的项目级配置放在.claude/settings.json,权限、环境变量、MCP 都在这里。骨架如下:
{ "permissions": { "allow": [ "Bash(pnpm test:*)", "Bash(pnpm lint:*)", "Bash(git status)", "Bash(git diff:*)", "Read(src/**)", "Edit(src/**)" ], "deny": [ "Bash(rm -rf:*)", "Bash(git push:*)", "Read(.env)" ] }, "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api" }, "mcpServers": { "filesystem": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "./src"] } } }allow里放你信任的高频命令,减少每次确认;deny把危险操作和敏感文件挡掉。mcpServers先放一个文件系统 MCP 试水,后面第 5 节展开。
3.3 config.toml 配置骨架
如果你用支持 TOML 的客户端或自建网关,config.toml可以这样写,把通道和模型映射集中管理:
[provider] name = "taotoken" base_url = "https://taotoken.net/api" api_key_env = "ANTHROPIC_API_KEY" [models] default = "claude-sonnet-4-5" fast = "claude-haiku-4-5" [claude_code] worktree = true lsp = true auto_init = trueapi_key_env指向环境变量而不是硬编码 Key,这样配置文件可以进仓库,Key 留在本地。worktree = true对应第 6 节的并行开发。
4. LSP 与 MCP:让 Claude Code 真正“看懂”代码
4.1 装语言专用 LSP
Claude Code 本身不内置语言智能,靠 LSP 提供补全、跳转、诊断。装对应语言的 server 后,它才能准确定位符号、理解类型。常用组合:
| 语言 | LSP Server | 安装命令 |
|---|---|---|
| TypeScript | typescript-language-server | pnpm add -g typescript-language-server typescript |
| Python | pyright | pip install pyright |
| Rust | rust-analyzer | rustup component add rust-analyzer |
| Go | gopls | go install golang.org/x/tools/gopls@latest |
装完后在settings.json里确认 LSP 开启(部分版本默认开)。验证方式:让 Claude Code 分析一个跨文件函数调用,比如“src/auth.ts里的verifyToken被哪些文件引用”,如果它能准确列出,说明 LSP 生效了。没装 LSP 时它只能靠文本搜索,容易漏。
4.2 MCP 工具接入
MCP(Model Context Protocol)是标准化的工具接入协议,让 Claude Code 能操作文件系统、查数据库、调 API、跑浏览器自动化。原则是“按需接入”,别一次装一堆。除了上面的 filesystem,再给一个数据库查询的例子:
{ "mcpServers": { "postgres": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-postgres", "postgresql://readonly_user@localhost:5432/mydb" ] } } }注意:数据库 MCP 一定用只读账号,别把生产库的写权限交出去。这是踩过的坑,查询类工具给只读权限就够了。
接入后重启 Claude Code,用/mcp查看已加载的 server 列表,确认状态是 connected。
5. 验证请求:确认通道与工具都通了
配置写完必须验证,否则后面出问题分不清是通道还是工具。分三步。
第一步,验证 TaoToken 通道。在终端直接发一个最小请求:
curl -s https://taotoken.net/api/v1/messages \ -H "x-api-key: $ANTHROPIC_API_KEY" \ -H "anthropic-version: 2023-06-01" \ -H "content-type: application/json" \ -d '{ "model": "claude-sonnet-4-5", "max_tokens": 64, "messages": [{"role": "user", "content": "回复 OK 两个字母"}] }'返回里带content字段且文本是 OK,说明 Key 和通道没问题。如果返回 401,检查 Key 是否复制完整;返回 404,检查 base_url 是否多写了/v1。
第二步,验证 Claude Code 能读到 CLAUDE.md。启动cc,输入“这个项目用什么包管理器”,它应该答 pnpm。答错说明 CLAUDE.md 没被读到,检查文件是否在仓库根目录、文件名大小写是否正确。
第三步,验证 MCP。输入“列出 src 目录下的文件”,如果它调用了 filesystem MCP 并返回真实文件列表,说明工具链通了。想快速对比模型输出,可以打开模型对话页面手动测同一问题:
- 模型对话:https://taotoken.net/models?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=
6. 常见错排查与 Git worktree 并行开发
6.1 高频报错对照
| 现象 | 原因 | 处理 |
|---|---|---|
| 401 Unauthorized | Key 错误或未加载 | echo $ANTHROPIC_API_KEY确认,重开终端 |
| 404 Not Found | base_url 多写路径 | 只保留https://taotoken.net/api |
| MCP 显示 failed | npx 拉包失败 | 手动跑一次npx -y @modelcontextprotocol/server-filesystem ./src看报错 |
| 读不到 CLAUDE.md | 文件位置或权限 | 放仓库根目录,检查permissions.allow是否含 Read |
| LSP 不生效 | server 未装或未在 PATH | which typescript-language-server确认 |
| 上下文混乱 | 历史信息干扰 | 执行/clear清空,再开新任务 |
6.2 Git worktree 并行开发
Claude Code 支持--worktree参数,底层是 Git worktree:同一个仓库同时检出多个分支到不同目录,互不干扰。适合“一边修 bug 一边开发新功能”。用法:
# 为当前任务创建独立 worktree cc --worktree feature/login # 另开一个终端,处理紧急修复 cc --worktree hotfix/token-expire每个 worktree 有独立工作目录和上下文,Claude Code 在各自目录里改代码,不会互相覆盖。合并时按正常 Git 流程走。这样避免了频繁git stash和分支切换导致的上下文丢失。
如果你长期跑编码任务、Agent 自动化,建议用 Coding Plan 把额度集中管理:
- Coding Plan:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=
6.3 几个提效小动作
直接贴完整报错堆栈,别转述成“这里报了个类型错误”,堆栈里的文件路径和行号是精确定位的关键。任务无关时执行/clear,保持上下文干净。复杂任务先用计划模式让它列步骤,确认后再动手。指定文件时给明确路径,比如“分析src/auth.ts和src/middleware/jwt.ts”,比“帮我看看代码”准确得多,也省 token。
接入文档和 API Keys 都在下面,配置卡住时对照检查:
- 接入文档:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=
- API Keys:https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=
把 CLAUDE.md 写扎实、LSP 装齐、MCP 按需接、worktree 用起来,再让所有请求走 TaoToken 统一通道,这套环境基本可以稳定复用。剩下的就是根据自己项目往里填规范,越用越顺。