
本教程不是使用
Claude Code编程工具直接对接Claude Code的AI接口进行 AI 编程,而是通过本地代理服务 Claude Code Router 来实现AI编程。其中编程能力的强弱主要取决于你接入的AI大模型。
文档简介
本文介绍通过 Claude Code Router 代理工具,绕过国内网络限制,让官方 Claude Code 兼容 DeepSeek、Gemini 等 OpenAI 标准接口大模型,实现本地AI编程能力,解决直连 Anthropic 服务网络不通、付费门槛高、账号不稳定三大痛点。
一、工具基础介绍
1.1 Claude Code 是什么
Claude Code 是 AI 厂商 Anthropic 官方推出的原生具备本地操作能力的智能编程代理助手,内置完整工具调用与自主任务调度能力,可深度对接本地项目全链路开发流程,无缝集成终端 CLI、VS Code、JetBrains 全系列 IDE 等主流开发环境,依托超大长文本上下文理解能力完整读取、解析整个代码仓库结构,自主完成从需求落地、代码开发、调试测试到版本管理的一站式开发任务。
1.2 Claude Code Router 又是什么
Claude Code Router 是一个中间代理层,它负责拦截 Claude Code 请求并转换格式,转发至国内可正常访问的兼容OpenAI接口模型(DeepSeek、Gemini、Ollama等),再将模型返回数据反向适配给 Claude Code,实现无感替换。
1.3 为什么要使用 Claude Code Router
ClaudeCode 是由 Anthropic 公司开发的AI编程工具,而 Anthropic 公司是位于美国加州旧金山的一个人工智能相关的公司。所以原生 Claude Code 直连 Anthropic 官方服务在国内存在三大使用障碍:
网络限制:无法直接访问海外官方接口;
成本门槛:官方计费单价高,国内支付渠道不友好;
账号风险:海外账号风控严格,易出现权限封禁。
这个时候使用Claude Code Router 进行作为中间代理来使用 Claude Code,又能享受 Claude Code 工具的便捷,又能体会到模型直连的速度或是部分大模型相对便宜的费用。
注意:有部分模型可以直接支持 Claude Code 客户端,只需要设置好对应的环境变量启动 Claude Code 客户端即可。这样使用 Claude Code 会更方便。
1.3 中间代理代理工作流程
本地终端运行 Claude Code;
请求被 Claude Code Router 拦截;
Router 转换请求格式,转发至配置的大模型接口;
接收模型返回结果,封装为 Claude Code 可识别格式;
将数据回传给本地 Claude Code 完成交互。
二、安装并使用 Claude Code Router
安装 Claude Code和Claude Code Router 需要 Node 环境,如果没有 Node 环境需要自行准备 Node 环境。
2.1 安装官方 Claude Code 程序
直接在终端中全局安装 Claude Code
npm install -g @anthropic-ai/claude-code如果安装过程过慢或失败可以百度: npm切换淘宝的源进行安装
2.2 安装Claude Code Router程序
在终端中全局安装 Claude Code Router 和它需要的依赖程序 tiktoken (优先安装)
# 优先安装分词依赖
npm install -g tiktoken
# 全局安装代理路由工具
npm install -g @musistudio/claude-code-router2.3 启用Claude Code Router
进入需要进行编程的目录在进行启动,启动后会在目录下生成一些Claude Code和Claude Code Router相关的文件
cd D:\workspace\project
ccr code2.4 Claude Code Router的基础命令
# 启动代理并打开Claude Code交互终端
ccr code
# 可视化Web配置面板(浏览器打开)
ccr ui
# 停止路由服务
ccr stop
# 启动路由服务(仅后台运行,不打开交互)
ccr start
# 修改配置后重启服务(必执行, 如果执行后配置未生效请检查配置文件, 再用stop start命令启动)
ccr restart
# 在项目目录执行初始化
/init三、配置文件
3.1 配置文件位置
Windows:
C:\Users\你的用户名\.claude-code-router\config.jsonMacOS / Linux:
~/.claude-code-router/config.json
3.2 带注释个人完整配置模板
{
// 全局默认模型基础配置
"OPENAI_API_KEY": "sk-替换为你的密钥",
"OPENAI_BASE_URL": "https://api.deepseek.com",
"OPENAI_MODEL": "deepseek-chat",
"log": true,
"API_TIMEOUT_MS": 60000,
// 多模型服务商配置列表
"Providers": [
{
"name": "deepseek",
"api_base_url": "https://api.deepseek.com/v1/chat/completions",
"api_key": "sk-xxxxxxxxxxxxxxxxxxxx",
"models": [
"deepseek-reasoner",
"deepseek-chat"
],
"transformer": {
"use": [
"deepseek"
],
"deepseek-chat": {
"use": [
"tooluse"
],
"max_tokens": 4096
},
"deepseek-reasoner": {
"max_tokens": 4096
}
}
},
{
"name": "gemini",
"api_base_url": "https://xxx.dpdns.org/v1",
"api_key": "xxx",
"models": [
"gemini-2.5-pro-preview-06-05",
"gemini-2.5-flash-preview-05-20"
],
"transformer": {
"use": [
"gemini"
]
}
}
],
// 场景化模型路由策略
"Router": {
"default": "deepseek,deepseek-chat",
"background": "deepseek,deepseek-chat",
"think": "deepseek,deepseek-reasoner",
"longContext": "gemini,gemini-2.5-pro-preview-06-05"
}
}3.3 CLAUDE.md 文件
CLAUDE.md 是项目专属规则文件,用于约束 AI 代码行为、项目规范、目录说明
贴一份前端项目开发的配置示例
# 前端项目开发规范 & AI 行为约束
## 项目基础信息
- 技术栈:Vue3 + TypeScript + Vite + Element Plus / Ant Design Vue
- 包管理器:pnpm
- 代码规范:ESLint + Prettier + Stylelint
- 路由方案:Vue Router 4
- 状态管理:Pinia
- 接口请求:Axios 统一封装请求实例
- 样式方案:SCSS / CSS Modules
- 构建产物:dist 目录,禁止提交至 Git
## AI 强制行为规则
### 1. 文件读写限制
1. 禁止修改以下目录/文件,如需改动必须先询问确认:
- `node_modules/`、`dist/`、`.vite/`、`.git/`
- `package.json`、`pnpm-lock.yaml`、`.env*` 环境变量文件
2. 新增/删除页面、组件、接口文件前,先输出完整文件路径清单确认;
3. 编辑已有代码时,仅修改目标逻辑,不全局格式化无关代码;
4. 新增文件必须补充完整类型定义、注释、导出语句。
### 2. 代码编写强制标准
#### TS/JS 规范
1. 全部组件、工具函数、接口请求必须使用 TypeScript,禁止 `any`;
2. 类型统一抽离至 `types/` 目录,禁止类型散写在单文件内;
3. 函数参数、返回值显式标注类型;复杂对象使用 `interface / type`;
4. 变量命名小驼峰,常量大写下划线,组件大驼峰;
5. 优先使用解构、可选链 `?.`、空值合并 `??`,避免 `==` 弱相等;
6. 异步逻辑统一 `async/await`,禁止多层回调嵌套。
#### Vue 单文件规范
1. 单文件顺序:`<script setup lang="ts">` → `<template>` → `<style scoped lang="scss">`;
2. 组件统一使用 `<script setup>` 语法糖,不写 Options API;
3. props 必须使用 `defineProps` + 完整类型校验,默认值必填;
4. 事件使用 `defineEmits` 定义类型;
5. 页面组件放 `views/`,公共复用组件放 `components/`;
6. 页面路由路径与 views 目录文件名保持一致;
7. 样式必须加 `scoped`,全局样式统一放入 `src/assets/styles/`。
#### CSS/SCSS 规范
1. 使用 scss 变量统一管理色值、间距、圆角、阴影;
2. class 命名采用 BEM 规范,避免无意义简写;
3. 禁止写行内大量 style,复杂样式抽至样式块;
4. 适配使用 flex / grid,尽量少用固定像素,支持响应式。
### 3. 接口与请求规范
1. 所有接口统一在 `src/api/modules/` 按业务模块拆分;
2. 请求入参、返回数据都定义对应 TS 类型;
3. 统一使用封装好的 axios 实例,自带 loading、错误拦截、token 携带;
4. 新增接口先写类型定义,再封装请求函数,最后在页面调用;
5. 错误处理统一捕获,弹出业务提示,不直接打印原生报错。
### 4. Git 与提交规范
1. 新增代码后自动给出规范 commit 示例:
- feat: 新增页面/组件/接口
- fix: 修复bug
- style: 样式调整、格式化
- refactor: 代码重构无功能变更
- types: 补充/修改类型定义
2. 禁止生成大体积改动一次性提交,建议拆分小commit;
3. 不生成可直接提交敏感密钥、环境变量代码。
## 提问输出要求
1. 需求拆解:先输出实现思路,再输出代码;
2. 代码块必须带完整文件路径标注;
3. 复杂逻辑增加行内注释,关键业务逻辑增加块注释;
4. 改动完成后给出测试验证步骤;
5. 若存在性能、兼容性、类型隐患,主动提示优化方案;
6. 不输出冗余无关代码,保持代码简洁可直接复制使用。
## 禁止行为清单
1. 不使用 var,不使用 any,不忽略 ts 类型报错;
2. 不直接操作 DOM,优先使用 Vue 内置指令;
3. 不写全局污染变量,所有状态统一用 Pinia;
4. 不硬编码接口地址、token、密钥;
5. 不删除原有业务逻辑,如需删除先注释并说明原因;
6. 不使用废弃 API、过时第三方语法。