前言
Claude Code 是 Anthropic 推出的终端原生 AI 编程助手。它不像 Copilot 那样只在 IDE 里补全代码,
而是直接在终端中以代理(Agent)的方式工作:读懂整个项目、自己动手改文件、跑命令、提交代码,
并能调用外部工具、浏览器、子代理协同完成任务。
它的设计哲学是**”在开发者真正工作的地方工作”**——终端 + 代码仓库,而不是网页聊天框。
这让它特别适合:
- 在大型代码库中跨文件重构
- 自动化完成重复性的工程任务(写测试、修 lint、批量迁移)
- 配合 MCP(Model Context Protocol)扩展能力(数据库、GitHub、Playwright)
- 嵌入 CI/CD 做自动化 PR Review、Issue 处理
- 团队内统一升级与策略下发(Managed Settings)
本文是一份从零到生产的完整指南,覆盖安装、认证、配置、日常使用、高级特性、性能调优、CI/CD 集成与团队管理。
一、安装
1.1 平台与前置要求
Claude Code 提供多种安装方式,覆盖 macOS、Linux、WSL、Windows:
| 安装方式 | 适用平台 | 是否自动更新 |
|---|---|---|
| 原生安装器(推荐) | macOS / Linux / WSL / Windows | ✅ |
| npm 全局安装 | macOS / Linux / WSL / Windows | ✅(需 npm global 目录可写) |
| Homebrew | macOS / Linux | ❌ 手动 brew upgrade |
| WinGet | Windows | ❌ 手动 winget upgrade |
| apt / dnf / apk | Linux | ❌ 走系统包管理 |
建议个人开发者选原生安装或 npm 全局安装(自动后台更新,体验最好);
团队/CI 环境可用包管理器版本(更可控)。
1.2 原生安装(推荐)
macOS / Linux / WSL
1 | # 安装最新版本(latest 通道) |
安装位置默认在 ~/.local/bin/claude(会被自动加入 PATH)。
如果安装后 claude 命令找不到,手动追加到 ~/.bashrc 或 ~/.zshrc:
1 | export PATH="$HOME/.local/bin:$PATH" |
Windows(PowerShell)
1 | # 安装 latest |
1.3 npm 全局安装
1 | # 安装最新 |
⚠️ 不要用
npm update -g @anthropic-ai/claude-code(会按 semver 范围走,可能跳不到最新)。
也不要用sudo npm install -g(避免权限问题)。
如果遇到 EACCES 错误,把 npm 全局目录改成当前用户可写:
1 | sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share} |
或改用原生安装器一劳永逸避开 npm 权限问题。
1.4 包管理器安装
1 | # macOS / Linux Homebrew |
1.5 验证安装
1 | claude --version # 看当前版本 |
二、认证与登录
2.1 三种认证方式
| 方式 | 适用场景 | 配置 |
|---|---|---|
| Claude 订阅(Pro/Max/Team/Enterprise) | 个人开发者、交互使用 | claude → /login 走 OAuth |
| Anthropic API Key | API 计费、CI/SDK | export ANTHROPIC_API_KEY=sk-ant-... |
| 第三方平台(Bedrock / Vertex / Foundry) | 企业合规、已有云账户 | 设置 CLAUDE_CODE_USE_BEDROCK=1 等 |
用 Claude 订阅登录
1 | claude |
用 API Key
写到 ~/.claude/settings.json:
1 | { |
或用环境变量:
1 | export ANTHROPIC_API_KEY="sk-ant-..." |
用 Amazon Bedrock
1 | export CLAUDE_CODE_USE_BEDROCK=1 |
用 Google Vertex AI
1 | export CLAUDE_CODE_USE_VERTEX=1 |
用自建代理 / 中转站
1 | export ANTHROPIC_BASE_URL="https://your-proxy.example.com" |
2.2 给 CI 用的长期 Token
1 | claude setup-token |
生成的 OAuth Token 可放进 ANTHROPIC_API_KEY 环境变量,不需要每个 CI job 重新登录。
适合自托管 Runner 场景。
2.3 验证认证
1 | claude auth status # JSON 格式输出认证状态 |
三、配置体系
Claude Code 的配置是多层级、覆盖式的。优先级从高到低:
- Enterprise managed(企业下发,无法被覆盖)
- CLI 参数(
--model、--permission-mode等) settings.local.json(本地,gitignore)settings.json(项目级,提交 git)- 用户级
~/.claude/settings.json
3.1 常用 settings.json
1 | { |
关键字段说明:
permissions.allow/permissions.deny:工具白/黑名单,匹配规则自动放行,省掉每次点 “yes”。enableAllProjectMcpServers:让项目内.mcp.json自动批准(不用每次启动确认)。claudeMdExcludes:排除不需要加载的CLAUDE.md(节省 token)。
3.2 关键环境变量
| 变量 | 默认 | 作用 |
|---|---|---|
ANTHROPIC_API_KEY |
– | API Key(API/Bedrock/Vertex 也用它) |
ANTHROPIC_BASE_URL |
https://api.anthropic.com |
API 端点(自建代理可改) |
ANTHROPIC_MODEL |
default |
当前模型别名 |
API_TIMEOUT_MS |
600000(10 分钟) |
单次 API 请求超时,最大不能超 2147483647 |
CLAUDE_CODE_MAX_RETRIES |
10 |
重试次数,硬上限 15(v2.1.186+) |
CLAUDE_CODE_RETRY_WATCHDOG |
unset | 设 1 后对 429/529 无限重试(仅 CI) |
DISABLE_AUTOUPDATER |
unset | 关闭后台自动检查,claude update 仍可用 |
DISABLE_UPDATES |
unset | 彻底关闭所有更新(含手动) |
CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK |
unset | 设为 1 禁止流式回退非流式 |
API_FORCE_IDLE_TIMEOUT |
– | 覆盖 5 分钟流式空闲超时 |
3.3 配置加载路径
| 位置 | 作用 | 是否进 git |
|---|---|---|
~/.claude/settings.json |
用户级(所有项目) | – |
<repo>/.claude/settings.json |
项目级(提交共享) | ✅ |
<repo>/.claude/settings.local.json |
本地覆盖 | ❌(加 .gitignore) |
~/.claude/CLAUDE.md |
用户级记忆 | – |
<repo>/CLAUDE.md |
项目记忆 | ✅ |
<repo>/.claude/agents/*.md |
项目级 subagents | ✅ |
<repo>/.claude/skills/<name>/SKILL.md |
项目级 skills | ✅ |
<repo>/.claude/hooks/hooks.json |
项目级 hooks | ✅ |
<repo>/.mcp.json |
项目级 MCP(团队共享) | ✅ |
四、CLAUDE.md:让 Claude 真正理解你的项目
CLAUDE.md 是 Claude Code 自动加载的项目级 prompt 文件。
写得好的 CLAUDE.md 能让 Claude 一次就做对,写得差的会让它反复犯同样的错。
4.1 CLAUDE.md 该写什么
- 构建/测试/lint 的具体命令(让 Claude 直接跑)
- 核心架构决策(为什么用 Postgres 不用 Mongo)
- 强约束 / 不变量(比如”所有 API 必须走 DRF”、”绝不直接 JOIN 用户表”)
- 命名规范和目录约定(比如”业务代码放
apps/,工具代码放lib/“) - 团队的 review checklist(PR 提交前要做什么)
4.2 不该写什么
- 通用编程知识(Python 怎么写类、JS 闭包)
- 长段历史背景
- 完整 API 文档(那种放 skill 按需加载)
- 流程化操作清单(那种也放 skill)
- 复制来的 README
4.3 一个真实的示例
1 | # 项目说明 |
4.4 嵌套 CLAUDE.md
Monorepo 中可以在子目录放 CLAUDE.md,只在 Claude 编辑该子目录的文件时自动加载,
节省主上下文 token。
1 | monorepo/ |
4.5 自动生成
1 | /init |
扫描项目结构、依赖、配置,自动生成一份 CLAUDE.md 草稿。
五、核心使用
5.1 交互模式
1 | cd /path/to/project |
进入 REPL 后可用命令:
| 快捷键 / 命令 | 作用 |
|---|---|
claude |
进入 REPL |
claude "解释这个项目" |
带初始 prompt |
/help |
帮助 |
/clear |
清空当前会话 |
/compact |
手动压缩上下文 |
/resume |
续接历史会话 |
/model |
切换模型 |
/effort |
切换推理深度 |
/config |
打开设置 |
/login / /logout |
登录/登出 |
/agents |
管理 subagents |
/mcp |
管理 MCP 服务器 |
/plugin |
管理插件 |
/init |
初始化 CLAUDE.md |
/memory |
编辑 CLAUDE.md |
/statusline |
状态栏 |
Shift+Tab |
循环切换权限模式 |
Ctrl+C |
打断当前回复 |
Ctrl+G |
用编辑器编辑当前输入 |
@文件名 |
引用文件为上下文 |
!command |
跑 shell 命令(仅打印输出) |
Esc Esc(双击 Esc) |
回退到上一轮对话 |
5.2 常用工作流
探索陌生代码库
1 | claude "这个项目是做什么的?给我画一张架构图" |
修 bug
1 | claude "登录接口偶发 500,看下 logs/auth.log 找到根因并修复" |
重构
1 | claude "把 src/services/order.py 重构成 strategy 模式,要保留所有现有测试" |
写测试
1 | claude "为 src/api/users.py 里所有 handler 补单元测试,覆盖率不低于 90%" |
写 commit
1 | git add -p |
5.3 权限模式(Permission Modes)
按 Shift+Tab 在以下模式间循环:
| 模式 | 行为 | 适用 |
|---|---|---|
default |
只读操作免提示,写操作问一次 | 默认 |
acceptEdits |
文件编辑免提示,Bash 仍问 | 大量编辑场景 |
plan |
只读 + 输出计划,不动代码 | 想先看方案再决定 |
auto |
完全免提示(需 Opus 4.6+ / Sonnet 4.6+) | 自动化场景 |
dontAsk |
仅允许白名单工具 | CI |
bypassPermissions |
跳过所有检查 | 仅隔离容器 |
CLI 启动指定:
1 | claude --permission-mode plan |
5.4 Plan Mode(先思考后动手)
适合复杂任务:
1 | claude --permission-mode plan |
Claude 读代码、搜索、出方案、列出 4 个选项让你选:
- 批准并自动(切到
auto模式开干) - 批准并接受编辑(切到
acceptEdits) - 批准并人工审(先看每一步 diff)
- 继续规划(还要更多细节)
按 Ctrl+G 可以用你熟悉的编辑器打开当前 plan 修改后再批准。
5.5 OpusPlan 别名
opusplan 模型别名:plan 阶段用 Opus(推理强),实施阶段自动切 Sonnet(省 cost)。
适合”先思考、后落地”的场景。
1 | claude --model opusplan "重构订单系统" |
5.6 模型选择
1 | /model # 交互选 |
| 别名 | 适用 |
|---|---|
default |
系统默认 |
best / fable |
不确定时 / 超长任务 |
opus |
复杂推理(Opus 4.8) |
sonnet |
日常编码(Sonnet 4.6) |
haiku |
简单任务、节约成本 |
opus[1m] / sonnet[1m] |
1M token 长会话 |
opusplan |
plan 用 Opus / 执行用 Sonnet |
5.7 推理深度(Effort)
1 | /effort # 交互选 |
| 级别 | 何时用 |
|---|---|
low |
短、范围小、延迟敏感 |
medium |
成本敏感 |
high |
默认 |
xhigh |
更深推理 |
max |
极深推理(session-only) |
ultracode |
自动跑动态 workflow + xhigh |
5.8 续接会话
1 | claude -c # 续当前目录最近 session |
避免每次开新 session 重复加载 CLAUDE.md 与 auto memory。
六、Slash Commands / Skills(自定义命令)
Claude Code 的”自定义命令”已经统一在 Skills 体系下。Skills 是带 frontmatter 的 Markdown 文件,
可被用户手动调用或被 Claude 自动触发。
6.1 Skill 存放位置
| 位置 | 作用 |
|---|---|
~/.claude/skills/<name>/SKILL.md |
用户级(跨项目) |
<repo>/.claude/skills/<name>/SKILL.md |
项目级(团队共享) |
<plugin>/skills/<name>/SKILL.md |
插件内(按插件启用) |
Monorepo 子目录 apps/web/.claude/skills/... |
命名空间为 apps/web:skill-name |
6.2 最小示例
.claude/skills/summarize-changes/SKILL.md:
1 | --- |
调用:
1 | /summarize-changes |
6.3 动态上下文注入
用 !`command` 在 Claude 看到内容前就把 shell 输出塞进 prompt。
.claude/skills/pr-summary/SKILL.md:
1 | --- |
6.4 关键 frontmatter
| 字段 | 作用 |
|---|---|
description |
描述,Claude 据此自动触发 |
disable-model-invocation: true |
仅用户手动调用(适合 /commit、/deploy 这类带副作用的) |
user-invocable: false |
仅 Claude 自动调用(背景知识) |
context: fork |
在独立子代理 context 中运行 |
allowed-tools / disallowed-tools |
自动授权 / 禁止特定工具 |
agent |
指定运行的子代理类型(如 Explore、Plan) |
model |
指定模型(haiku 省钱) |
6.5 参数替换
| 占位符 | 作用 |
|---|---|
$ARGUMENTS |
完整参数 |
$0、$1 |
位置参数 |
${CLAUDE_SESSION_ID} |
当前 session ID |
${CLAUDE_SKILL_DIR} |
skill 所在目录 |
七、Hooks(自动化钩子)
Hooks 让 Claude 在工具调用前后自动跑命令。官方支持 24+ 事件:
PreToolUse / PostToolUse / PostToolUseFailure / UserPromptSubmit /SessionStart / SessionEnd / Stop / StopFailure / Notification /SubagentStart / SubagentStop / PreCompact / PostCompact /PermissionRequest / PermissionDenied / ConfigChange / CwdChanged /FileChanged / WorktreeCreate / WorktreeRemove 等
7.1 hooks.json 示例
1 | { |
7.2 退出码语义
exit 0:成功exit 2:阻塞操作并把 stderr 反馈给 Claude- 其他非零:非阻塞警告
7.3 handler 类型
| 类型 | 说明 |
|---|---|
command |
跑 shell 命令(最常用) |
http |
调 HTTP 接口 |
mcp_tool |
调 MCP 工具 |
prompt |
让另一个 LLM 评价(注入 prompt) |
agent |
调用子代理 |
7.4 不会写 JSON?用 hookify
hookify 插件(/plugin install hookify@claude-plugins-official)让你用 Markdown 写 hook:
1 | --- |
7.5 实战常见 hook 模板
| 场景 | 事件 | 动作 |
|---|---|---|
| 写代码后自动格式化 | PostToolUse matcher=Write|Edit |
prettier / black / gofmt |
| 写 Python 后自动 lint | PostToolUse matcher=Write|Edit |
ruff check --fix / flake8 |
| 写 TS 后自动类型检查 | PostToolUse matcher=Write|Edit |
tsc --noEmit |
| 阻止危险命令 | PreToolUse matcher=Bash |
拦截 rm -rf / curl | bash |
| commit 前跑测试 | PreToolUse matcher=Bash |
拦截 git commit,先 npm test |
| 记录审计日志 | PostToolUse |
把所有文件改动追加到 ~/.claude/audit.log |
| 上下文压缩前打点 | PreCompact |
记录当前 session 信息 |
八、Subagents(子代理)
Subagent 是 Claude Code 的”独立 context worker”——把脏活放进隔离 context,只把摘要返回主会话。
8.1 Subagent 价值
- 节省主 context token:大文件读取、批量搜索放进子代理
- 隔离权限:给子代理只读工具 / 限定工具集
- 省成本:用
haiku跑简单任务 - 并行:多个子代理同时跑不同子任务
- 嵌套:最多 5 层
8.2 定义 Subagent
.claude/agents/code-reviewer.md:
1 | --- |
8.3 使用
Claude 会自动根据 description 决定何时调用,也可以显式要求:
1 | 用 code-reviewer 子代理审一下当前 PR |
8.4 关键字段
| 字段 | 作用 |
|---|---|
name |
子代理名(必填) |
description |
描述,Claude 据此自动选用 |
tools |
工具白名单(不写 = 主代理的全套工具) |
model |
用哪个模型(haiku / sonnet / opus) |
permissionMode |
独立权限模式(如 plan / dontAsk) |
8.5 常见 subagent 类型
- Explore:代码探索(只读,haiku 即可)
- Plan:架构设计(plan mode,强推理)
- code-reviewer:PR review
- test-writer:写测试
- refactor:代码重构
- doc-writer:写文档
- db-explorer:只读查数据库
九、Plugins(插件)
9.1 插件市场
1 | /plugin marketplace add anthropics/claude-plugins-official |
或交互式:/plugin > Discover
也支持本地/远程加载:
1 | claude --plugin-dir ./my-plugin |
9.2 官方推荐插件
| 插件 | 做什么 | 入口 |
|---|---|---|
code-review |
自动 PR review,4 并行 agent + 置信度评分 | /code-review |
pr-review-toolkit |
6 个细粒度 review agent | /pr-review-toolkit:review-pr |
feature-dev |
7 阶段功能开发(discovery → 架构 → 实现 → 评审) | /feature-dev |
commit-commands |
git 工作流(提交 / 推 PR / 清已删分支) | /commit、/commit-push-pr、/clean_gone |
frontend-design |
避免通用 AI 美学,UI 更耐看 | 自动触发 |
security-guidance |
PreToolUse hook 扫 9 类安全反模式 | 自动触发 |
hookify |
用 markdown 写 hook | /hookify |
ralph-wiggum |
让 Claude 持续迭代直到满意 | /ralph-loop |
skill-creator |
给 skill 做 A/B 评测 | /skill-creator |
起步推荐:先装 code-review + commit-commands + security-guidance 三个,单这 3 个就值回票价。
9.3 外部热门插件
| 插件 | 做什么 |
|---|---|
github / gitlab |
Issue、PR、Repo 操作 |
linear / asana / jira |
项目管理 |
playwright |
浏览器自动化 MCP |
context7 |
实时拉库最新文档(强烈推荐) |
serena |
语义级编码(symbol 搜索) |
greptile |
AI 代码 review |
discord / telegram / imessage |
消息集成 |
firebase / terraform / laravel-boost |
平台/框架集成 |
十、MCP(Model Context Protocol)
MCP 是 Claude Code 的”工具扩展协议”——任何实现了 MCP 的服务都能成为 Claude 的工具。
10.1 推荐必装 MCP
1 | # 实时拉最新库文档,避免幻觉(强烈推荐) |
10.2 MCP scope
| Scope | 说明 |
|---|---|
local |
仅本项目当前用户(默认) |
user |
个人所有项目 |
project |
通过 .mcp.json 提交 git,团队共享 |
1 | claude mcp add --scope project --transport stdio my-mcp -- my-command |
10.3 MCP 配置文件
<repo>/.mcp.json(项目级,提交 git):
1 | { |
配合 enableAllProjectMcpServers: true 启动时自动批准,不用每次点 yes。
10.4 完整管理命令
1 | claude mcp list # 列出已配 MCP |
十一、性能调优
11.1 减 token 消耗
| 技巧 | 怎么做 | 效果 |
|---|---|---|
| 精简 CLAUDE.md | 只写命令、架构决策、强约束 | 每轮省几百~几千 token |
claudeMdExcludes |
排除 vendored / node_modules 里的 CLAUDE.md | 启动时省 |
/compact 主动触发 |
上下文将满时手动按 | 比自动触发更可控 |
| permissions.allow | 给常用命令加白名单 | 减少弹窗和重复输入 |
disableBundledSkills: true |
不用内置 skill 时关掉 | 省 token |
--bare |
CI/单次任务用 | 启动快 2-3 倍 |
exclude-dynamic-system-prompt-sections |
把 per-machine 段挪出 system prompt | 显著提升 prompt cache 命中率 |
| Subagent 隔离脏活 | 大文件读取、批量搜索 | 不污染主 context |
Skill context: fork |
复杂 skill 跑在子代理 | 同上 |
| 1M context 模型 | opus[1m] / sonnet[1m] |
长会话免 compact |
11.2 提速
模型选择:
haiku跑简单任务(找文件、解释单函数),sonnet日常,opus复杂推理fast mode:
/fast切换(在订阅允许时)并行 background agents:
1
2
3
4
5claude --bg "investigate the flaky test" # 返回 session ID,立刻返回
claude agents # 看所有后台 session
claude logs <id> # 看输出
claude attach <id> # attach 到本终端
claude stop <id> # 停止Advisory 模式(v2.1.98+):
claude --advisor haiku,server-side advisor 用便宜模型给建议agent 编排:在 subagent 用
haiku,主对话用sonnet/opus
11.3 Prompt cache
Anthropic API 自动对 prompt 前缀做 cache(5 分钟 TTL)。要最大化命中率:
- CLAUDE.md / system prompt 稳定不变(别每次拼不同内容)
- 把 cwd、env、git flag 等 per-machine 段挪到第一条 user message(用
exclude-dynamic-system-prompt-sections) - 长会话用 1M context 模型,省去频繁 compact
11.4 长会话管理
- 主动
/compact - Auto memory 把关键洞察存盘,跨会话保留
- 用 subagent /
context: forkskill 把大量输出隔离 cleanupPeriodDays: 30自动 trim 30 天前的 session 文件
11.5 CI 友好参数
1 | claude -p "query" # 非交互模式 |
十二、CI/CD 集成
12.1 GitHub Action
仓库:https://github.com/anthropics/claude-code-action(8.2k ⭐,被 17.8k 仓库用)
一键安装
在 Claude Code 内:
1 | /install-github-app |
手动安装
.github/workflows/claude.yml:
1 | name: Claude Code |
支持 Bedrock / Vertex AI / Foundry / Workload Identity Federation。
内置 8 种 solutions:自动 PR review、路径触发、外部贡献者审查、定制清单、定时维护、Issue triage、文档同步、安全审查。
PR 自动 review
1 | name: Claude PR Review |
12.2 Agent SDK(编程式调用)
把 Claude Code 当库用,Python 或 TypeScript:
1 | npm install @anthropic-ai/claude-agent-sdk |
1 | import asyncio |
1 | import { query } from "@anthropic-ai/claude-agent-sdk"; |
可用的工具:Read / Write / Edit / Bash / Monitor / Glob / Grep / WebSearch / WebFetch / AskUserQuestion。
支持 hooks、subagents、MCP、permissions、sessions。
12.3 其他 CI 平台
- GitLab CI/CD:https://code.claude.com/docs/en/gitlab-ci-cd
- Claude Code on the Web:https://claude.ai/code(浏览器跑,无需本地环境)
claude remote:创建 web session- Headless:
claude -p "query"+--output-format json/stream-json配合 shell pipeline
十三、IDE 集成
| IDE | 怎么装 | 能力 |
|---|---|---|
| VS Code | 扩展市场搜 “Claude Code” | 内联 diff、@-提及、计划评审、历史 |
| JetBrains | Marketplace 搜 “Claude Code” | 交互式 diff、上下文共享 |
| Cursor | 扩展市场搜 “Claude Code” | 同 VS Code |
| Chrome 扩展 | --chrome 启动或 /chrome |
浏览器调试 web app |
| Desktop App | https://claude.ai/download | 多会话并行、定时任务 |
| Web | https://claude.ai/code | 浏览器跑,无需本地环境 |
十四、监控与分析
| 工具 | 用途 |
|---|---|
claude doctor |
验证 settings / hooks / 配置文件是否有误 |
claude --version |
当前版本 |
claude auth status |
认证状态(JSON) |
/insights |
内置 skill,分析你过往会话模式、效率点 |
/usage |
Anthropic Console 网页看历史 token 用量与花费 |
ccstatusline |
实时显示 token / 上下文用量(社区工具) |
Agent SDK modelUsage 字段 |
non-interactive 结果里读每模型实际 token |
| Auto memory | 跨会话保留洞察 |
十五、团队与企业
15.1 Managed Settings
Managed settings 是企业下发、用户和项目 settings 都覆盖不了的最高优先级配置。
适合公司统一管控升级通道、强制最低版本、禁止特定工具、注入组织 CLAUDE.md 等。
分发路径:
| 平台 | 路径 |
|---|---|
| 所有平台 | claude.ai admin 控制台(通过 Anthropic 服务器) |
| macOS MDM | /Library/Application Support/ClaudeCode/managed-settings.json |
| macOS MDM (plist) | com.anthropic.claudecode 域的 managed preferences |
| Windows MDM | 注册表 HKLM\SOFTWARE\Policies\ClaudeCode(REG_SZ / REG_EXPAND_SZ 包含 JSON) |
| Linux / WSL | /etc/claude-code/managed-settings.json |
| Windows 文件式 | C:\Program Files\ClaudeCode\managed-settings.json(v2.1.75+) |
drop-in 目录:
managed-settings.d/*.json 按文件名字母序合并在 managed-settings.json 之上。
可用数字前缀控制顺序(如 10-telemetry.json、20-security.json)。
15.2 关键 managed 设置
1 | { |
| 设置 | 行为 |
|---|---|
autoUpdatesChannel: "stable" |
全员跑稳定通道 |
requiredMinimumVersion: "2.1.100" |
低于此版本启动直接退出(仅 managed) |
requiredMaximumVersion: "2.1.100" |
高于此版本启动直接退出(防内部未测版本) |
forceRemoteSettingsRefresh: true |
启动时阻塞拉取最新策略,失败则退出(用缓存) |
DISABLE_UPDATES=1 |
彻底锁死更新(自分发场景) |
⚠️
requiredMin/Max写错默认失败开放(strip 而不 enforce),
避免一次错误推送让全员启不来。官方建议在测试机上跑claude doctor验证后再批量下发。
15.3 企业内自建 npm registry
官方 troubleshoot-install 文档里的明确警告:
Corporate npm mirror is missing the platform packages. Ensure your registry mirrors all eight
@anthropic-ai/claude-code-*platform packages in addition to the meta package.
@anthropic-ai/claude-code 这个 meta 包依赖 8 个 per-platform optional dependencies 拉取 native binary:
@anthropic-ai/claude-code-darwin-arm64@anthropic-ai/claude-code-darwin-x64@anthropic-ai/claude-code-linux-x64@anthropic-ai/claude-code-linux-arm64@anthropic-ai/claude-code-linux-x64-musl@anthropic-ai/claude-code-linux-arm64-musl@anthropic-ai/claude-code-win32-x64@anthropic-ai/claude-code-win32-arm64
企业 npm 镜像必须把这 8 个包 + meta 包都同步上。
且 .npmrc 不能设 optional=false,npm 命令不能带 --omit=optional / --no-optional / --ignore-optional。
15.4 升级策略
| 场景 | 策略 |
|---|---|
| 个人 | latest 通道(默认),享受最新特性 |
| 团队 | stable 通道 + requiredMinimumVersion 强制升级 |
| 严格合规 | stable + requiredMaximumVersion 防跳到未测版本 |
| 私有分发 | DISABLE_UPDATES=1 + 自行推送 |
十六、安全与权限
16.1 内置安全机制
- 工具白/黑名单(
permissions.allow/deny) - 预执行钩子拦截(
PreToolUsehook 阻断危险命令) - Prompt injection 防护(
disableSkillShellExecution: true禁 skill 里的!内联 shell) - 代码签名验证(native binary 经 GPG 签名,macOS Apple 公证,Windows Authenticode 签名)
16.2 推荐的权限设置
~/.claude/settings.json:
1 | { |
16.3 数据流向
Claude Code 不会主动上传你的代码库。但默认行为是:
- 用户输入 + 工具调用结果 → Anthropic API
- 会话 transcript 存到本地(默认
~/.claude/,30 天后自动 trim,可配cleanupPeriodDays)
如果合规要求”数据不出本地”:
- 用 Bedrock / Vertex 走自己的云
- 用
--bare模式减少自动发现的本地文件 - 设置
cleanupPeriodDays: 1减少本地留存 - managed settings 加
permissions.deny限制读取范围
十七、常见问题(FAQ)
Q1:Claude Code 会无限重试吗?
不会。默认最多重试 10 次(v2.1.186 起硬上限 15 次),用指数退避,spinner 显示 Retrying in Ns · attempt x/y。
重试范围只覆盖 transient 错误(5xx、529、临时 429、timeout、网络断开)。
4xx(401/403/404 等)不会重试,立即报错。
可用变量调小上限:CLAUDE_CODE_MAX_RETRIES=2,让 CI 配错 base URL 时更快失败。
Q2:怎么升级到最新版?
1 | claude update # 通用(推荐) |
Q3:怎么关闭自动更新?
写到 ~/.claude/settings.json 的 env:
1 | { |
彻底锁死(连 claude update 都不能用):
1 | { |
Q4:怎么用本地代码库而不联网?
用 Bedrock / Vertex 走自己的云端点:
1 | export CLAUDE_CODE_USE_BEDROCK=1 |
注意这要求 Bedrock 那边已经开通 Claude 模型访问权限。
Q5:怎么给团队统一发配置?
用 managed settings(详见第十五章)。它下发的策略用户和项目 settings 都覆盖不了。
企业管理员通过 claude.ai admin 控制台统一下发。
Q6:CLAUDE.md 写多长合适?
越短越好。官方建议不超过 200 行。
把始终需要的事实放 CLAUDE.md(命令、约束、约定);
把长但偶尔用的流程放 skill(按需加载);
把通用知识留给 Claude 自己知道(不写)。
Q7:怎么减少 token 消耗?
按优先级:
- 精简 CLAUDE.md
claudeMdExcludes排除 vendored 库- 用 subagent 隔离大文件读取
- 用
context: forkskill /compact主动触发- 选合适的模型(简单任务用 haiku)
permissions.allow加白名单(避免弹窗打断)--bare启动(CI 场景)
Q8:怎么从 Copilot / Cursor 迁过来?
Claude Code 与 IDE 不冲突。推荐渐进式迁移:
- 在终端跑 Claude Code 做工程任务(重构、写测试、git 操作)
- IDE 继续用 Copilot 做行内补全
- 逐步把”复杂任务”都让 Claude Code 在终端做
- 装 VS Code / JetBrains 扩展,IDE 里也能用 Claude Code
Q9:怎么调试 Claude 做了什么?
/statusline看当前 session 状态claude doctor看配置 / hooks 是否有误--verbose启动看详细日志~/.claude/看本地 transcript(每个 session 一个 JSONL 文件)- GitHub issue 时附上
claude doctor输出 + transcript 路径
Q10:怎么接入私有 LLM / 第三方代理?
1 | export ANTHROPIC_BASE_URL="https://your-proxy.example.com" |
要求代理实现 Anthropic Messages API 兼容端点。
Q11:Windows 上能用吗?
可以,原生安装器(irm https://claude.ai/install.ps1 | iex)和 npm 都支持。
注意 WSL 比原生 Windows 体验更好(路径处理、shell 兼容性)。
Q12:能离线用吗?
不能。Claude Code 需要联网调用 Anthropic API(或自建代理)。
但会话 transcript 离线可看(JSONL 格式,存 ~/.claude/)。
Q13:怎么回滚到旧版本?
1 | # 原生 |
Q14:怎么报告 bug?
- 在 Claude Code 内
/feedback - GitHub issues:https://github.com/anthropics/claude-code/issues
- 附上:
claude doctor输出、复现步骤、transcript 路径
十八、参考资源
官方文档
- 总览:https://code.claude.com/docs/en/overview
- 安装:https://code.claude.com/docs/en/setup
- 设置:https://code.claude.com/docs/en/settings
- 错误处理:https://code.claude.com/docs/en/errors
- 环境变量:https://code.claude.com/docs/en/env-vars
- CLI 参考:https://code.claude.com/docs/en/cli-reference
- Hooks:https://code.claude.com/docs/en/hooks
- MCP:https://code.claude.com/docs/en/mcp
- Sub-agents:https://code.claude.com/docs/en/sub-agents
- Skills:https://code.claude.com/docs/en/skills
- Plugins:https://code.claude.com/docs/en/plugins
- Permission modes:https://code.claude.com/docs/en/permission-modes
- Memory:https://code.claude.com/docs/en/memory
- Model config:https://code.claude.com/docs/en/model-config
- 故障排查:https://code.claude.com/docs/en/troubleshooting
- 故障排查(安装):https://code.claude.com/docs/en/troubleshoot-install
- Changelog:https://code.claude.com/docs/en/changelog
- GitHub Actions:https://code.claude.com/docs/en/github-actions
- Agent SDK:https://code.claude.com/docs/en/agent-sdk/overview
- VS Code:https://code.claude.com/docs/en/vs-code
- JetBrains:https://code.claude.com/docs/en/jetbrains
- GitLab CI/CD:https://code.claude.com/docs/en/gitlab-ci-cd
- Fast mode:https://code.claude.com/docs/en/fast-mode
- Managed settings:https://code.claude.com/docs/en/permissions#managed-settings
官方仓库
- Claude Code:https://github.com/anthropics/claude-code
- 官方插件目录:https://github.com/anthropics/claude-plugins-official
- 社区插件:https://github.com/anthropics/claude-plugins-community
- GitHub Action:https://github.com/anthropics/claude-code-action
- Agent SDK 示例:https://github.com/anthropics/claude-agent-sdk-demos
MCP 生态
- MCP 参考实现:https://github.com/modelcontextprotocol/servers
- Claude 工具目录:https://claude.ai/directory
- context7(库文档):https://github.com/upstash/context7
- Playwright MCP:https://github.com/microsoft/playwright-mcp
十九、总结
Claude Code 是当前最接近”AI 软件工程师”形态的终端 Agent。它强在:
- 原生 Agent 体验:不只补全代码,而是真正读懂项目、改文件、跑命令
- 极强的扩展性:hooks、subagents、skills、plugins、MCP 五维可扩展
- 完整的工程闭环:从开发到 PR review 到 CI 都有官方支持
- 企业级管控:managed settings 让大公司可以放心推
适用人群
- ✅ 个人开发者:日常编码、自动化工程任务、学习新代码库
- ✅ 小团队:统一代码规范、自动 PR review、提速
- ✅ 大企业:managed settings 统一管控、合规、可观测
下一步
- 5 分钟起步:原生安装 →
/login→ 在一个小项目里跑claude "解释这个项目" - 一周深入:写一份精炼的 CLAUDE.md,装
code-review+commit-commands+context7三个插件 - 一月精通:用 subagents 隔离脏活、用 skills 沉淀团队流程、用 hooks 自动 lint/test、用 GitHub Action 自动化 PR review
- 长期演进:用 Agent SDK 把 Claude Code 嵌入自己的产品;用 managed settings 团队统一管控
希望这篇指南能帮你用好 Claude Code,把更多时间留给真正有创造性的工作。🚀
二十、附录:用 OpenClaw + 微信 把 Claude Code 变成微信里的远程 Agent
OpenClaw(Tencent 开源的本地 AI Agent Gateway)原生支持 20+ 消息渠道(含微信)。
配合 Claude Code CLI 作 agent runtime,可把任意一台机器上的 Claude Code 变成”微信里的远程打工人”——
手机发消息,Claude Code 处理,微信秒回。无需公众号、无需企业认证。
20.1 架构
1 | [手机微信] → [openclaw-weixin 插件] → [OpenClaw Gateway (root)] → [Claude Code CLI] → [Anthropic API] |
关键事实:Claude Code CLI 在主机以 nobody 身份运行(不是 root),但仍在 root 的文件系统里——不需要额外用户、不需要容器、不需要 sudo 切权。
20.2 一键安装流程
按顺序执行,整套约 10 分钟:
1 | # ========== 1. 装 OpenClaw + 微信插件 ========== |
20.3 三个最常踩的坑
坑 1:--dangerously-skip-permissions cannot be used with root/sudo privileges
Claude Code 出厂安全策略,禁止 root 用 --dangerously-skip-permissions。
错误做法:创建 openclaw-user、装 Docker、sudo 切用户——全都引入了额外复杂度。
正确做法:unshare -U 创建 user namespace,进程在 namespace 内看到自己是 nobody (uid=65534),实际仍是 root 跑。
验证命令:
1 | unshare -U id # 应返回 uid=65534(nobody) |
坑 2:wrapper 放错位置
OpenClaw gateway 进程的 PATH 是:
1 | /root/.nvm/versions/node/v24.16.0/bin:/root/.nvm/current/bin:/root/.local/bin:... |
/root/.local/bin 在 /usr/local/bin 前面。
→ wrapper 必须放 /root/.local/bin/claude,不能放 /usr/local/bin/claude。
放错位置,OpenClaw 调的是真 binary(root 检测生效 → 报错)。
验证 wrapper 生效:
1 | which claude # 应是 /root/.local/bin/claude |
坑 3:openclaw-weixin 插件所有权错
/root/.openclaw/npm/.../openclaw-weixin 必须归 root 所有。uid=1000 会被拒:
1 | plugins.entries.openclaw-weixin: blocked plugin candidate: suspicious ownership |
修复:
1 | chown -R root:root /root/.openclaw |
20.4 故障排查速查表
| 症状 | 原因 | 修复 |
|---|---|---|
unshare: failed to create new user namespace |
内核禁 unprivileged userns | echo 1 > /proc/sys/kernel/unprivileged_userns_clone |
EACCES /root/.claude/settings.json |
nobody 读不到登录态 | chmod -R o+rX /root/.claude |
cannot be used with root/sudo privileges |
wrapper 没生效 | which claude 检查,wrapper 必须放 /root/.local/bin/ |
suspicious ownership uid=1000 |
插件所有权错 | chown -R root:root /root/.openclaw |
unknown channel id: openclaw-weixin |
插件被 block | 同上 |
| 微信通道 enabled 但不发消息 | gateway 未重启 | openclaw gateway restart |
claude: command not found 升级后 |
claude.real symlink 断了 |
ln -sf /root/.local/share/claude/versions/<新版本> /root/.local/bin/claude.real |
20.5 升级注意事项
Claude Code 自动升级时,/root/.local/bin/claude.real 指向的版本路径不会自动变。
升级后跑:
1 | readlink /root/.local/bin/claude.real # 看指向哪个版本 |
如果不一致:
1 | ln -sf /root/.local/share/claude/versions/$(ls /root/.local/share/claude/versions/ | sort -V | tail -1) /root/.local/bin/claude.real |
20.6 进阶:用 minimax 兼容 API 省钱
如果不需要 Sonnet/Opus 的强推理,OpenClaw 可配国内 Anthropic 兼容 API(如 MiniMax、DeepSeek 等)走 anthropic-messages 协议:
1 | // ~/.openclaw/openclaw.json |
运行时 openclaw agent --model anthropic/claude-sonnet-4-6 --message "..." 临时切到 Claude。
20.7 反模式(不要做的事)
- ❌ 创建
openclaw-user用 sudo 跑——引入手动 sync .claude 登录态的麻烦 - ❌ Docker 容器化 Claude CLI——破坏”单用户单套”的目标
- ❌ 用
chmod o+x /root然后让 wrapper 跑其他用户——权限边界混乱 - ❌ 复制
/root/.claude给其他用户——OAuth token 散落、升级易断 - ❌ 改 Claude CLI 源码去掉 root 检查——下次升级自动失效
20.8 一句话总结
1 | unshare -U + 位置对的 wrapper = root 跑 OpenClaw + Claude Code CLI 唯一干净的姿势 |