Claude Code开源代码解读快速部署(本地模型)

张开发
2026/4/21 9:27:05 15 分钟阅读

分享文章

Claude Code开源代码解读快速部署(本地模型)
快速部署并使用本地模型claude code代码快速部署使用本地模型 1本地模型 2跳过claude code OAuth 认证#!/bin/bash # 本地模型启动脚本 # 加载环境变量 export ANTHROPIC_BASE_URLxxx export LOCAL_MODEL_NAMExxx export ANTHROPIC_API_KEYxxx export LOCAL_MODEL_NAME_DISPLAYxxx export LOCAL_MODEL_DESCRIPTIONxxx export ENABLE_LOCAL_MODELtrue 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,FileEditTool读写、编辑文件执行环境BashTool,REPLTool执行 Shell 命令网络WebSearchTool,WebBrowserTool搜索、浏览网页AI 协作AgentTool,SendMessageTool调用其他 AI Agent任务管理TaskCreateTool,TaskGetTool创建/查询任务MCPMCPTool,ListMcpResourcesTool集成 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 个组件)基于InkReact 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 24UI 框架React 19 Ink 6.xCLI 框架Commander.js 14.xAPI 客户端anthropic-ai/sdk 0.80.0MCPmodelcontextprotocol/sdk 1.29.0终端 UIInk (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 文件来源本人的微信公众号【LLMAgent技术分享】https://mp.weixin.qq.com/s/6NAIU_HIPdhoTYWNwvtAxw

更多文章