这次我们来看 Claude Code。它是 Anthropic 开源的命令行 AI 编程工具,不是又一个聊天窗口,而是可以直接在终端里替你读代码、改文件、跑命令、提 Git 提交的 Agent 型工具。2025 年以来,Claude Code 已经成为很多开发者工作流里的标配,原因很简单:它能把“需求描述”变成“代码改动落地”,而且是在真实项目目录里操作,不是截图演示。
更值得关注的是,它并不强制要求只能调用 Anthropic 官方 API。通过兼容端点和协议转换网关,你可以把 Claude Code 接到本地大模型上,用 Ollama、vLLM、LM Studio 这类本地推理服务跑代码任务。这意味着你可以在断网内网环境下做 AI 辅助开发,也意味着数据可以留在自己的机器上。这套玩法不是付费课里那种渲染过的 Demo,而是可以在命令行里逐条验证的流程。
这篇文章会按一条完整链路展开:先讲 Claude Code 的能力边界,再讲环境准备和安装部署,然后重点讲本地大模型怎么接入、网关怎么配,接着用一个前后端全栈小项目演示完整开发闭环,最后给出命令行批处理、资源占用观察、常见问题排查和工程化建议。文章偏实操,适合已经装过 Node 和 Git、想认真跑通本地 AI 编程工具的开发者。
1. Claude Code 核心能力速览
先把最关键的信息放在前面,方便判断这个东西适不适合你。
| 能力项 | 说明 |
|---|---|
| 项目类型 | 终端 AI 编程助手(Agentic Coding CLI) |
| 开发来源 | Anthropic,Claude Code 已开源 |
| 主要功能 | 自然语言读代码、改文件、执行命令、运行测试、Git 操作、MCP 扩展、并行子任务 |
| 运行方式 | 命令行交互式会话;也支持非交互 headless 模式 |
| 支持平台 | macOS、Linux、Windows(WSL2 环境) |
| 官方接入 | Anthropic Claude 系列 API;兼容 Anthropic Messages 格式的端点均可配置 |
| 本地大模型 | 可以接入本地推理服务,前提是通过协议转换层提供 Anthropic 兼容格式 |
| 硬件门槛 | CLI 本体极低,普通开发机即可;本地大模型部分取决于模型规模和量化精度 |
| 启动方式 | npm 全局安装后执行 claude |
| 接口能力 | 可输出 JSON,支持脚本调用 |
| 批量任务 | 支持 headless 模式,循环调用即可批量处理 |
| 适合场景 | 全栈开发、代码重构、测试补全、批量文件修改、CI 内辅助编码 |
从这张表能看出来,Claude Code 的核心竞争力不是“生成一段回答”,而是“在一个真实代码仓库里持续工作”。它会根据你的项目结构去定位文件、修改内容、运行检查,并且在关键操作前征求你的确认。这种工作方式决定了它更适合有一定项目经验的开发者,而不是完全不懂代码的新手。
1.1 与传统 AI 编程工具的差异
很多国产 IDE 插件也提供 AI 补全和聊天问答,但 Claude Code 的工作单元更粗:你可以直接说“帮我把登录接口改成 JWT 认证,并补上对应测试”,它会自己决定改哪些文件。这个差异非常重要,因为工作流从“人看代码 -> 复制结果 -> 手动粘贴”变成了“人描述目标 -> Agent 执行修改 -> 人审查改动”。
这种模式的好处是速度快,尤其是重构和跨文件修改场景。缺点是 Agent 的行动自由度必须被限制,否则它可能改坏文件或执行危险命令。所以 Claude Code 的权限确认机制、沙箱依赖和 CLAUDE.md 记忆文件,不是摆设,是真正要用的东西。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 适用场景与使用边界
2.1 适合谁用
Claude Code 适合以下几类开发者:
- 需要频繁重构代码的人:跨文件修改、批量重命名、接口迁移这类机械但繁琐的活,适合交给 Agent。
- 全栈项目维护者:前端、后端、测试脚本混杂在一个仓库里,Claude Code 可以根据目录自动理解上下文。
- 内网或敏感环境开发者:通过本地大模型接入后,代码不需要离开本机,隐私边界更清晰。
- 喜欢脚本化的开发者:headless 模式可以接入 CI,让 AI 自动生成提交说明或批量处理任务清单。
2.2 不适合谁用
- 完全零基础的人:你至少要能看懂 Git diff、知道什么是终端,否则 Agent 改坏了代码你根本发现不了。
- 对模型幻觉零容忍的人:任何大模型都会犯错,Claude Code 也不例外。它的价值是把错误限制在可审查范围内,而不是彻底消除错误。
- 追求“一键生成整个产品”的人:Claude Code 擅长在已有代码库上做增量开发,从零生成一个大项目也能做,但后续维护仍然需要人。
2.3 使用边界与合规提醒
如果你接入本地大模型,要注意开源模型的许可证和使用边界。公司项目代码、客户数据、包含个人信息的内容,在处理前必须确认是否有权限。尤其涉及人脸、声音、身份信息、未公开源码时,不要直接丢给外部 API 或未经授权的本地模型。另外,如果你通过 API 网关接入云端模型,代码也会经过第三方服务,建议先评估数据合规要求。Claude Code 生成的代码本质上也是模型输出的结果,上线前要做代码审查和测试,不能直接默认“AI 写的就是对的”。
3. 环境准备与前置条件
Claude Code 本体对硬件要求很低,真正决定部署复杂度的是你打算接入什么样的模型。本文按“CLI + 本地大模型”的完整链路准备环境。
3.1 操作系统与基础工具
- 操作系统:推荐 macOS 或 Linux。Windows 用户建议使用 WSL2,因为原生 Windows 的终端权限和路径处理会更麻烦。
- Node.js:Claude Code 通过 npm 分发,需要 Node.js 18 以上。检查命令:
bash复制node -v
npm -v
- Git:必须安装,因为 Claude Code 会频繁使用 Git 来查看变更和生成提交。
bash复制git --version
- Python:如果后面要跑 FastAPI 类后端项目,需要 Python 3.10 以上,但这不是 Claude Code 的硬性要求。
3.2 本地推理环境
如果你要用本地大模型,建议先装好 Ollama 或其他兼容 OpenAI 接口的推理服务。核心原因是 Claude Code 原生请求的是 Anthropic Messages API 格式,而 Ollama 默认提供的是 OpenAI 兼容格式,两者不能直接互通,需要加一层协议转换网关。
先检查你的显卡和驱动:
bash复制nvidia-smi
如果没有 NVIDIA 显卡,也可以用 CPU 推理,但代码生成速度会慢很多,建议优先选择参数量较小的量化模型。磁盘方面,本地模型文件通常在 5GB 到 40GB 不等,建议预留至少 30GB 空间。
3.3 网络与 API 端点
Claude Code 可以配置环境变量指向任意 Anthropic 兼容端点。如果你的网络环境可以正常访问 Anthropic 官方 API,直接使用官方端点和密钥即可。如果所在网络无法直达官方 API,就需要接入组织内部已有的 API 网关。这里只讨论协议兼容,不讨论任何访问策略问题,实际网络方案请遵守当地法律法规和机构规定。
4. 安装部署与启动方式
4.1 npm 全局安装
打开终端,执行全局安装:
bash复制npm install -g @anthropic-ai/claude-code
安装完成后验证版本:
bash复制claude --version
如果出现 “command not found”,说明 npm 全局目录没有加入 PATH,需要检查 Node.js 安装路径。
4.2 配置 API 密钥
直接用官方 API 时,设置环境变量:
bash复制export ANTHROPIC_API_KEY="your-api-key"
如果你使用兼容端点,还需要指定基础地址:
bash复制export ANTHROPIC_BASE_URL="https://your-gateway.example.com"
export ANTHROPIC_MODEL="your-model-name"
注意:这里的网关地址和模型名只是示例,必须以你的实际网关服务参数为准。环境变量配置完后,可以用以下方式验证是否能正常返回模型列表,或者直接进入交互式会话测试。
4.3 启动交互式会话
在任意项目目录下执行:
bash复制claude
首次启动会在终端内打开一个交互界面。你可以直接输入自然语言指令,比如“列出当前项目结构并说明技术栈”。Claude Code 会读取目录内容、调用相应的命令,并在需要执行命令时弹出权限确认。
4.4 权限说明
交互式会话默认是安全的。Claude Code 执行 bash 命令、修改文件前,会弹出行级确认。如果你只是想快速测试,可以启动时跳过确认:
bash复制claude --dangerously-skip-permissions
但我不建议在真实项目里长期用这个参数,尤其是仓库里有删除脚本、数据库操作或生产配置时。更好的做法是维护权限白名单,只放行你信任的命令。
5. 本地大模型接入:网关配置与模型选择
这一步是很多人最关心的:Claude Code 能不能用本地模型?能,但要注意格式兼容。下面给出通用配置思路,具体网关软件请按官方文档调整。
5.1 为什么需要协议转换网关
Claude Code 发出的 HTTP 请求遵循 Anthropic Messages API 格式,请求体和流式返回结构都和 OpenAI 接口不同。而 Ollama、LM Studio、vLLM 这类工具默认提供 OpenAI 兼容接口。要从“Claude Code -> 本地模型”打通链路,中间必须有一个把 Anthropic 请求转成 OpenAI 请求、再把 OpenAI 返回转回 Anthropic 格式的网关。
常见的做法是用开源的统一 API 网关组件,这类组件通常支持多模型路由、密钥管理和 Anthropic 格式入站。配置逻辑是:
- 本地推理服务监听端口 A,例如 11434。
- 协议转换网关监听端口 B,例如 8080,并配置上游为本地推理服务。
- Claude Code 将
ANTHROPIC_BASE_URL指向http://127.0.0.1:8080。
5.2 本地推理服务启动示例
以 Ollama 为例,启动本地模型:
bash复制ollama pull qwen3-coder:14b
ollama serve
ollama serve 会在本机启动 OpenAI 兼容接口。注意:这个接口目前还不能被 Claude Code 直接调用,需要继续配置网关。
5.3 网关配置通用模板
不同的网关软件配置方式不同,但核心思想一致:入站协议用 Anthropic,出站协议指向 OpenAI 兼容的本地模型服务。下面给一个伪配置模板:
yaml复制# 网关配置示例,实际字段需要按所使用的网关软件调整
models:
- name: qwen3-coder:14b
source: http://127.0.0.1:11434/v1
protocol: openai
model_name: qwen3-coder:14b
server:
host: 127.0.0.1
port: 8080
protocol_in: anthropic
配置完成后,需要重启网关服务。然后设置 Claude Code 的环境变量:
bash复制export ANTHROPIC_BASE_URL="http://127.0.0.1:8080"
export ANTHROPIC_MODEL="qwen3-coder:14b"
export ANTHROPIC_API_KEY="local-key"
不同网关对 API Key 的要求不同,有些会校验请求头里的任意非空值,有些会在网关层重新鉴权。建议先看网关日志确认请求是否成功到达。
5.4 本地模型选择建议
Claude Code 是 Agent 型工具,非常依赖模型的工具调用能力。模型必须能理解“函数调用”“工具选择”“在多轮对话中维护上下文”这类任务。建议优先选择代码优化过的模型,或者明确支持工具调用的模型,例如 Qwen3 Coder、DeepSeek 系列、GLM 系列中带 Tool Use 能力的版本。
模型参数量也要结合硬件选。CPU 推理建议从 7B 到 8B 的量化版本试起;GPU 环境根据显存选择 14B 或更大规模。不要一上来就拉 70B 模型,否则显存和速度都会让你怀疑人生。
6. 全栈开发实战:从空目录到可运行项目
安装和接入跑通后,最重要的验证是在真实项目里走一遍全栈开发流程。本文用一个 React 前端 + FastAPI 后端的待办事项应用做演示。这个过程不需要写死模板,而是让 Claude Code 自己根据需求生成项目结构。
6.1 创建空项目
bash复制mkdir claude-fullstack-demo
cd claude-fullstack-demo
git init
6.2 启动 Claude Code
bash复制claude
然后在会话里输入需求:
text复制在当前空目录创建一个全栈项目:
- 前端用 React + Vite
- 后端用 FastAPI
- 实现一个待办事项 API,包含创建、列表、删除接口
- 前端页面可以输入待办内容,提交后刷新列表
- 给出清晰的目录结构,并补充 README
先不要运行命令,先输出计划。
先让它给出计划,而不是直接写代码。这样可以观察它的任务拆解能力,也方便后续审查。如果计划合理,再逐步让它创建文件。
6.3 验证前端与后端
假设 Claude Code 已经创建了目录和代码文件,接下来逐项验证:
前端构建:
bash复制cd frontend
npm install
npm run build
后端启动:
bash复制cd ../backend
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
uvicorn main:app --host 127.0.0.1 --port 8000
打开浏览器访问 http://127.0.0.1:5173,如果前端页面能正常渲染,并且添加待办后列表能更新,说明前后端链路是通的。
6.4 审查改动
开发完成后,用 Git 查看改动:
bash复制git status
git diff
这一步不能省。Claude Code 可能会创建额外文件、修改配置、或者写出和预期不一致的逻辑。审查改动是 AI 辅助开发流程里最关键的环节。
7. 批量任务与命令行自动化
Claude Code 的 headless 模式是它和很多“聊天式 AI”最大的区别。你可以在不进入交互界面的情况下,用一条命令让 AI 完成指定任务,再把输出交给脚本处理。
7.1 headless 模式基础用法
bash复制claude -p "阅读当前项目的 README,并把所有命令行示例更新为最新语法"
加 --output-format 可以控制输出结构:
bash复制claude -p "分析 package.json 中的依赖,列出可以升级的包" --output-format text
如果你的网关或模型支持,还可以输出 JSON 便于程序解析。具体参数名以 claude --help 的当前版本为准。
7.2 批量处理固定任务
假设你有一个 prompts.txt,每行是一条开发任务,可以用脚本循环调用:
bash复制#!/usr/bin/env bash
# 批量任务示例,实际模板可根据项目调整
set -e
INPUT_FILE="prompts.txt"
while IFS= read -r task; do
echo "=== 当前任务: $task ==="
claude -p "$task" --output-format text
echo ""
done < "$INPUT_FILE"
这种批量方式非常适合以下场景:
- 批量生成代码注释。
- 批量修改多个模块的日志输出。
- 根据目录清单批量生成测试用例。
- 在 CI 中自动生成 release 说明。
7.3 批量任务注意事项
第一,每一条 prompt 都对应一次完整的模型推理,耗时和费用都要考虑。第二,任务之间尽量相互独立,否则上下文不连续会导致结果不符合预期。第三,批量任务一定要有日志输出,最好把每个任务的输入和输出分别记录到文件里,方便失败后定位。
8. 资源占用与性能观察
Claude Code 本身是一个 Node.js CLI 进程,内存占用通常不高,主要资源消耗集中在本地大模型推理上。在实际部署前,建议先做一个资源摸底。
8.1 观察工具
macOS 可以用 htop,Linux 同样推荐 htop,查看 GPU 显存用:
bash复制nvidia-smi
如果使用的是 Ollama,也可以通过它的日志接口观察加载情况。
8.2 影响性能的关键因素
影响整体速度的因素包括:
- 模型参数量:7B 模型明显快于 14B 模型,但代码理解和工具调用能力可能弱一些。
- 量化精度:FP16 比 INT4 质量更高,但显存占用更大。
- 上下文长度:输入的项目文件越多,首 token 延迟越高。尽量保持每个任务的文件范围聚焦。
- 并发任务:不建议同时开多个 Claude Code 会话,因为本地推理服务可能不支持高并发。
8.3 降低资源占用的方法
如果显存或内存紧张,优先做三件事:
- 降低模型参数量,换用更小的量化版本。
- 限制 Claude Code 读取的文件范围,不要让它扫描整个仓库。
- 把批量任务拆成小批次,避免长文本同时冲击显存。
如果任务简单,也可以直接用 CPU 推理加小模型,虽然速度慢,但内存占用稳定,不会因为显存不足崩溃。
9. 常见问题与排查方法
9.1 启动与配置问题
| 问题现象 | 可能原因 | 排查方式 | 解决方案 |
|---|---|---|---|
claude 命令找不到 |
npm 全局路径未加入 PATH | 执行 npm prefix -g 检查路径 |
把全局 bin 目录加入 PATH |
| 提示 API Key 无效 | 环境变量配置错误 | 执行 echo $ANTHROPIC_API_KEY |
重新设置环境变量 |
| 请求超时 | 网关地址不可达或模型加载慢 | 用 curl 测试网关端口 | 确认网关监听地址和端口 |
| 一直输出模型不支持 | 模型缺少工具调用能力 | 查看网关日志中的错误详情 | 换支持工具调用的模型 |
9.2 网关与本地模型问题
| 问题现象 | 可能原因 | 排查方式 | 解决方案 |
|---|---|---|---|
| 请求返回 404 | Anthropic 路径未映射 | 检查网关入站路径配置 | 按网关文档调整路由 |
| 返回的代码频繁出错 | 模型参数量过小或指令遵循弱 | 人工检查生成结果模式 | 换更大的代码模型 |
| 显存不足报错 | 模型规模超出硬件 | 查看 nvidia-smi | 换量化版本或启用 CPU 模式 |
| 流式输出卡住 | 网关超时设置过短 | 观察网关日志超时记录 | 调大超时时间 |
9.3 权限与操作问题
如果 Claude Code 执行命令时被拒绝,先检查你是否使用了 --dangerously-skip-permissions。如果没有设置该参数,它会默认在敏感命令前等待确认。建议通过权限配置文件把常用命令加入白名单,而不是全部跳过。还需要注意:如果仓库里存在删除脚本或生产环境配置文件,要极其小心地审查 Agent 准备执行的命令。
10. 最佳实践与总结
10.1 从最小任务开始
第一次使用 Claude Code,不要一上来就让它重构整个项目。建议在空目录里跑一个最小的 Python 脚本或前端页面,摸清它会如何规划文件、如何执行命令、如何回应错误。小任务跑通后再逐步增加复杂度。
10.2 用好 CLAUDE.md
在项目根目录创建 CLAUDE.md,用简洁的语言写清楚项目背景、技术栈、常用命令和代码规范。Claude Code 在每次会话中会自动读取这个文件作为长期记忆。项目记忆写得越清楚,AI 生成的代码风格就越贴近团队习惯。
10.3 密钥管理
API Key 不要写在项目文件里,不要提交到 Git。建议通过环境变量或本机密钥管理工具注入。如果使用兼容网关,网关侧也要设置访问控制,避免内网中的其他设备随意调用你的模型服务。
10.4 数据与合规
本地大模型的价值之一就是数据不出内网,但前提是你真的把整个链路都放在了本机或内网。如果你通过外部网关调用云端模型,代码内容仍然会经过第三方服务。涉及未公开源码、客户数据、个人隐私信息时,先问自己该不该让这些内容进入模型。AI 生成代码的版权归属和开源许可证也要提前确认,不能想当然。
10.5 最容易踩的坑
最值得提醒的坑有三个:一是协议网关没有配好,Claude Code 发出 Anthropic 请求,本地服务返回 OpenAI 格式,导致解析失败;二是不审查 diff,AI 改坏了代码直接提交;三是模型能力不足还硬上高复杂任务,让一个 7B 模型去重构大型微服务,结果必然是反复改错。先把这三个问题解决掉,Claude Code 的体验会稳定很多。
10.6 下一步可以做什么
跑通基础流程后,可以继续尝试接入 MCP 服务,让 Claude Code 连接数据库、文件系统或内部工具;也可以把它接入 CI,在合并请求前自动生成代码说明;还可以在不同项目里维护多份 CLAUDE.md,观察 Agent 在不同规范下的表现差异。从命令行工具开始,逐步把它变成一个团队级的 AI 开发助手,这条路的投入产出比确实比看付费课程截图高得多。
