Claude Code开源代码解读&快速部署(本地模型)
快速部署并使用本地模型
claude code代码快速部署使用本地模型 (1)本地模型 (2)跳过claude code OAuth 认证
#!/bin/bash # 本地模型启动脚本 # 加载环境变量 export ANTHROPIC_BASE_URL=xxx export LOCAL_MODEL_NAME=xxx export ANTHROPIC_API_KEY=xxx export LOCAL_MODEL_NAME_DISPLAY="xxx" export LOCAL_MODEL_DESCRIPTION="xxx" export ENABLE_LOCAL_MODEL=true echo "启动本地模型..." echo "ANTHROPIC_BASE_URL: $ANTHROPIC_BASE_URL" echo "LOCAL_MODEL_NAME: $LOCAL_MODEL_NAME" echo "ANTHROPIC_API_KEY: $ANTHROPIC_API_KEY" echo "" # 使用 --bare 模式跳过 OAuth 认证 bun run dev --bare

📊 项目深度解读
项目身份
这是一个 Claude Code 的非官方还原版本,从 npm 包的 source map 逆向工程得到的完整 TypeScript 源码。
🎯 核心定位
Claude Code = 终端版的 AI 编程助手(类似 GitHub Copilot Chat 的 CLI 版本)
核心能力:
-
• 💻 直接在终端与 AI 对话写代码
-
• 🔧 自动执行文件操作、Shell 命令
-
• 🤖 支持多 Agent 协作
-
• 🌐 Web 搜索、API 调用
-
• 🔐 权限管理和安全控制
🏗️ 架构层次
┌─────────────────────────────────────────┐
│ 用户交互层 (Terminal UI) │
│ - React + Ink (终端渲染器) │
│ - 快捷键系统 (Vim 模式) │
│ - 对话框/提示框 │
└─────────────────────────────────────────┘
↓
┌─────────────────────────────────────────┐
│ 业务逻辑层 │
│ - 命令系统 (104 个斜杠命令) │
│ - 工具系统 (60+ 工具) │
│ - 任务管理 (Task 系统) │
└─────────────────────────────────────────┘
↓
┌─────────────────────────────────────────┐
│ 服务层 │
│ - API 客户端 (Anthropic) │
│ - MCP 服务器 (Model Context Protocol) │
│ - 会话管理/历史记录 │
│ - 分析/遥测服务 │
└─────────────────────────────────────────┘
↓
┌─────────────────────────────────────────┐
│ 基础设施层 │
│ - 配置管理 │
│ - 权限控制 │
│ - 文件系统操作 │
└─────────────────────────────────────────┘
📦 核心模块详解
1. 主入口 (main.tsx - 800KB+)
-
• 超大的单体文件,包含 CLI 启动、初始化、REPL 渲染
-
• 性能优化:并行读取设置、Keychain 预取
-
• 条件特性开关(COORDINATOR_MODE、KAIROS 等)
2. 工具系统 (src/tools/ - 56 个文件)
|
工具类别 |
代表工具 |
功能 |
|
文件操作 |
FileReadTool
, |
读写、编辑文件 |
|
执行环境 |
BashTool
, |
执行 Shell 命令 |
|
网络 |
WebSearchTool
, |
搜索、浏览网页 |
|
AI 协作 |
AgentTool
, |
调用其他 AI Agent |
|
任务管理 |
TaskCreateTool
, |
创建/查询任务 |
|
MCP |
MCPTool
, |
集成 MCP 服务器 |
3. 命令系统 (src/commands/ - 104 个目录)
/ask - 提问模式
/bug - 提交 Bug
/cleanup - 清理会话
/compact - 压缩上下文
continue - 继续上一次对话
/docs - 查看文档
/editor - 配置编辑器
/help - 帮助
/mcp - 管理 MCP 服务器
/new - 新会话
/privacy - 隐私设置
/resume - 恢复会话
/settings - 设置
/share - 分享会话
/skills - 技能系统
/teammate - 多 Agent 协作
theme - 主题切换
tools - 工具管理
vim-mode - Vim 模式
4. 服务层 (src/services/ - 40+ 服务)
-
•
api/- Anthropic API 客户端、重试、限流 -
•
mcp/- MCP 客户端/服务端、OAuth -
•
analytics/- GrowthBook 特性开关、Datadog 埋点 -
•
compact/- 会话自动压缩 -
•
claudeAiLimits/- 配额管理 -
•
remoteManagedSettings/- 远程配置管理
5. UI 层 (src/components/ - 148 个组件)
基于 Ink(React for Terminal)构建的终端 UI:
-
• 消息气泡、代码高亮
-
• 进度条、加载动画
-
• 对话框、确认提示
-
• 状态栏、工具栏
6. 自定义 Ink 渲染器 (src/ink/ - 52 个文件)
-
• 布局系统
-
• 焦点管理
-
• ANSI 颜色渲染
-
• 虚拟滚动列表
🔄 启动流程
┌──────────────────────┐
│ bun run dev │
└──────────┬───────────┘
↓
┌──────────────────────┐
│ dev-entry.ts │ ← 开发入口
└──────────┬───────────┘
↓
┌──────────────────────┐
│ main.tsx │ ← 主入口 (800KB)
│ - 初始化配置 │
│ - 加载 MCP 服务器 │
│ - 读取历史记录 │
│ - 权限检查 │
└──────────┬───────────┘
↓
┌──────────────────────┐
│ launchRepl() │ ← 启动 REPL
└──────────┬───────────┘
↓
┌──────────────────────┐
│ 交互式终端界面 │
│ 等待用户输入 │
└──────────────────────┘
🔧 技术栈
|
层级 |
技术 |
| 语言 |
TypeScript 5.x |
| 运行时 |
Bun 1.3.5+ / Node.js 24+ |
| UI 框架 |
React 19 + Ink 6.x |
| CLI 框架 |
Commander.js 14.x |
| API 客户端 |
@anthropic-ai/sdk 0.80.0 |
| MCP |
@modelcontextprotocol/sdk 1.29.0 |
| 终端 UI |
Ink (React for Terminal) |
| 包管理器 |
Bun |
| 状态管理 |
React Context + Hooks |
🌟 特色功能
1. 多 Agent 协作 (teammate/)
-
• 支持创建多个 AI Agent 协同工作
-
• Agent 之间可以传递消息
-
• 自动负载均衡
2. 技能系统 (skills/)
-
• 可插拔的技能模块
-
• 支持自定义技能
-
• 技能版本管理
3. MCP 集成
-
• Model Context Protocol 支持
-
• 可扩展的服务器插件
-
• OAuth 认证
4. 会话压缩
-
• 自动压缩历史上下文
-
• 保留关键信息
-
• 节省 Token 成本
5. Vim 模式
-
• 完整的 Vim 键位绑定
-
• 正常/插入/可视模式
-
• 自定义命令
⚠️ 项目限制
-
1. 非官方版本 - 基于 source map 逆向,可能不完整
-
2. 部分模块降级 - 原生模块用 shim 替代
-
3. 需要 API Key - 需要 Anthropic API 密钥
-
4. 仅支持 macOS/Linux - 部分功能依赖系统特性
🚀 使用场景
|
场景 |
用法 |
| 代码开发 |
"帮我写一个 React 组件" |
| 代码修改 |
"修改这个文件添加错误处理" |
| 问题排查 |
"为什么这个 API 调用失败?" |
| 文档查询 |
"查找 React hooks 的最佳实践" |
| 批量操作 |
"批量重命名所有 test 文件" |
来源本人的微信公众号【LLM&Agent技术分享】:https://mp.weixin.qq.com/s/6NAIU_HIPdhoTYWNwvtAxw

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)