一个面向学习研究、架构分析与二次开发的 Claude Code 恢复版源码分享仓库。
这套源码覆盖了一个完整的终端 Agent 系统应有的关键部件:CLI 入口、命令系统、模型工具调用、React/Ink TUI、会话与状态管理、MCP 扩展、插件机制、LSP 协作、后台任务、多代理、远程桥接,以及一系列围绕工程开发与自动化工作流的运行时能力。
如果你希望研究 Claude Code 类系统是如何组织的,或者希望基于一套现成的终端 Agent Runtime 继续做自己的工具、平台或产品,这个仓库可以作为一个直接可读、可改、可扩展的基础起点。
这是一个偏工程实践视角的源码仓库,适合以下几类用途:
- 研究终端型 AI Coding Agent 的核心架构
- 阅读命令系统、工具协议、任务系统和交互层的实现方式
- 基于现有运行时继续做 CLI 助手、内部研发工具或实验性 Agent 平台
- 作为 MCP、插件、技能、多代理协作和远程会话的二次开发底座
| 维度 | 说明 | 关键位置 |
|---|---|---|
| CLI 与运行时入口 | 负责参数解析、启动链路、模式分发和初始化 | src/runtime/ src/entrypoints/ src/main.tsx |
| 命令系统 | 管理 slash commands、本地命令和 prompt 型命令 | src/commands.ts src/commands/ src/registry/commands.ts |
| 工具系统 | 管理模型可调用工具、schema、权限和结果渲染 | src/tools.ts src/tools/ src/contracts/Tool.ts |
| TUI 交互层 | 终端 UI、消息渲染、权限请求、输入与状态反馈 | src/screens/REPL.tsx src/components/ |
| 会话与状态 | 管理上下文、历史、恢复、状态树与运行过程数据 | src/session/ src/state/ |
| 服务层 | 承载 API、MCP、LSP、插件、分析、后台服务等 | src/services/ |
| Agent 与任务 | 承载 assistant、coordinator、task、后台执行与协作 | src/assistant/ src/coordinator/ src/tasks/ |
| 外部集成 | 浏览器、桌面、桥接、本地适配和外部运行环境连接 | src/integrations/ src/native/ src/bridge/ |
- 一个终端 Agent Runtime 如何从 CLI 参数一路流转到会话执行与工具调用
- 一个命令系统如何兼容本地命令、prompt 命令、技能与插件扩展
- 一个工具运行时如何处理 schema、权限、执行结果、流式进度和 UI 渲染
- 一个终端交互界面如何承接消息流、用户输入、权限确认和后台任务反馈
- 一个多能力系统如何将 MCP、LSP、插件、远程桥接、多代理和任务编排组合到一起
flowchart LR
A["CLI / Runtime Entrypoints<br/>src/runtime/dev-entry.ts<br/>src/entrypoints/cli.tsx"] --> B["Main Runtime<br/>src/main.tsx"]
B --> C["REPL / TUI Layer<br/>src/screens/REPL.tsx<br/>src/components/"]
B --> D["Session / State<br/>src/session/<br/>src/state/"]
B --> E["Command & Tool Registry<br/>src/registry/<br/>src/commands.ts<br/>src/tools.ts"]
E --> F["Slash Commands<br/>src/commands/"]
E --> G["Model Tools<br/>src/tools/"]
B --> H["Service Layer<br/>src/services/"]
H --> I["API / MCP / Plugin / LSP"]
H --> J["Tasks / Agents / Bridge<br/>src/tasks/<br/>src/assistant/<br/>src/coordinator/<br/>src/bridge/"]
G --> K["Native / Integrations<br/>src/native/<br/>src/integrations/"]
F --> H
G --> H
sequenceDiagram
participant U as User
participant CLI as CLI Entrypoint
participant Main as Main Runtime
participant REPL as REPL / UI
participant Reg as Command & Tool Registry
participant Tool as Tool / Command
participant Svc as Services
U->>CLI: 输入 prompt / 命令 / 参数
CLI->>Main: 初始化运行时与配置
Main->>REPL: 建立会话与界面
REPL->>Reg: 解析命令、工具、权限与上下文
Reg->>Tool: 调用命令或工具
Tool->>Svc: 访问 API / MCP / 插件 / 任务 / 集成
Svc-->>Tool: 返回执行结果或流式进度
Tool-->>REPL: 渲染反馈、消息、状态和输出
REPL-->>U: 展示最终结果
| 模块 | 作用 | 阅读重点 |
|---|---|---|
src/runtime/ |
运行时入口与兼容启动层 | 如何把 CLI 启动链路导入主运行时 |
src/main.tsx |
运行总线 | 参数解析、初始化、模式切换、REPL 组装 |
src/screens/REPL.tsx |
主交互界面 | 会话、消息、输入框、权限、后台任务联动 |
src/commands.ts |
命令注册面 | 命令发现、过滤、分类和对外暴露 |
src/tools.ts |
工具注册面 | 模型工具清单、能力筛选与工具面板 |
src/tools/ |
工具实现层 | Read、Edit、Bash、PowerShell、MCP 等能力如何落地 |
src/services/ |
服务层 | API、MCP、LSP、配置、分析与后台服务 |
src/assistant/ |
Assistant 子系统 | assistant 模式、选择器、子能力入口 |
src/coordinator/ |
协调者模式 | 多代理协作与任务协调逻辑 |
src/tasks/ |
任务与后台执行 | 本地任务、远程任务、通知和异步流程 |
src/bridge/ |
远程桥接 | 会话桥接、连接与远端运行辅助 |
src/native/ |
本地适配 | 原生能力加载与本地 fallback |
src/integrations/ |
外部集成 | 浏览器、桌面、远端或其他外部能力接口 |
| 分类 | 使用方向 | 说明 | 主要位置 |
|---|---|---|---|
| 开发工作台 | 1. 本地终端编码助手 | 作为终端里的 AI 编码助手与日常开发入口 | src/main.tsx src/screens/REPL.tsx src/tools/ |
| 开发工作台 | 2. 仓库级读码与重构工作台 | 用于大仓库阅读、改造、重构和补丁生成 | src/tools/ src/utils/ src/commands/ |
| 开发工作台 | 3. Slash Command 开发工具 | 把常用开发动作沉淀为命令系统 | src/commands.ts src/commands/ src/registry/commands.ts |
| 开发工作台 | 4. Shell 驱动工程操作台 | 围绕命令执行、构建、检查和部署构建统一入口 | src/tools/BashTool/ src/tools/PowerShellTool/ src/utils/Shell.ts |
| 开发工作台 | 5. 会话恢复与长任务连续工作 | 支持长周期任务续跑、恢复和上下文承接 | src/session/ src/state/ src/main.tsx |
| 开发工作台 | 6. Review / 审计辅助工具 | 面向代码审查、风险排查和问题定位 | src/commands/review/ src/tools/ src/components/ |
| 工具与扩展 | 7. MCP 工具中枢 | 将本地或远程能力以 MCP 方式接入运行时 | src/services/mcp/ src/tools/MCPTool/ src/registry/tools.ts |
| 工具与扩展 | 8. 技能系统 | 为不同角色和场景组织可复用能力包 | src/skills/ src/commands/skill/ src/utils/skills* |
| 工具与扩展 | 9. 插件命令扩展平台 | 通过插件向主系统追加命令和能力 | src/plugins/ src/commands/ src/services/ |
| 工具与扩展 | 10. IDE / LSP 协作层 | 连接 IDE 与语言服务,形成编辑器闭环 | src/services/lsp/ src/utils/ide.ts src/tools/ |
| 工具与扩展 | 11. 文件与图像理解流水线 | 支持文件读取、图像处理与富输入上下文 | src/tools/FileReadTool/ src/utils/image* src/native/ |
| 工具与扩展 | 12. 浏览器自动化与 Web 工作流底座 | 扩展浏览器、网页交互和采集能力 | src/integrations/claudeInChrome/ src/utils/claudeInChrome/ src/services/mcp/ |
| Agent 与自动化 | 13. 计划驱动 Agent 执行器 | 先规划后执行的 Agent 流程基础 | src/state/ src/services/ src/commands/ |
| Agent 与自动化 | 14. 多代理协作框架 | 支持主 Agent、子 Agent 与协调者协作 | src/assistant/ src/coordinator/ src/tasks/ |
| Agent 与自动化 | 15. 后台任务与异步工作队列 | 支持耗时任务后台运行与结果回传 | src/tasks/ src/services/ src/hooks/ |
| Agent 与自动化 | 16. Worktree 并行开发助手 | 适合并行修改、多分支与多任务流 | src/utils/worktree* src/commands/ src/services/ |
| Agent 与自动化 | 17. Remote / Bridge 远程会话底座 | 用于远程连接、桥接和会话恢复 | src/bridge/ src/services/ src/main.tsx |
| Agent 与自动化 | 18. Computer Use / 桌面 Agent 实验底座 | 作为桌面自动化与 GUI Agent 的实验基础 | src/integrations/computerUse/ src/utils/computerUse/ src/native/ |
| 产品化 | 19. 企业内部研发助手 | 面向企业仓库、知识库和流程系统接入 | src/services/api/ src/services/mcp/ src/plugins/ |
| 产品化 | 20. 私有化 AI CLI 产品 | 用于封装团队内部或私有部署 CLI 产品 | src/runtime/ src/main.tsx src/components/ |
| 产品化 | 21. AI 运维与脚本执行平台 | 用于脚本执行、巡检、环境检查和修复 | src/tools/ src/commands/ src/utils/ |
| 产品化 | 22. Agent Benchmark / 研究底座 | 用于工具调用、多代理与任务调度研究 | src/services/ src/tasks/ src/assistant/ |
| 产品化 | 23. 教学演示与训练平台 | 用于讲解终端 Agent 系统的结构与工作流 | src/main.tsx src/screens/REPL.tsx src/commands/ |
| 产品化 | 24. 二次开发 Runtime / SDK 基础 | 抽取协议、运行时与集成层做进一步封装 | src/contracts/ src/registry/ src/runtime/ src/integrations/ |
如果你希望更细地看这些使用方向,可以直接阅读:
- FEATURE_TIPS/README.md
- FEATURE_TIPS/01-dev-workbench.md
- FEATURE_TIPS/02-tooling-and-extension.md
- FEATURE_TIPS/03-agents-and-automation.md
- FEATURE_TIPS/04-productization-and-platform.md
如果你第一次接触这套源码,建议按下面顺序阅读:
src/runtime/dev-entry.tssrc/entrypoints/cli.tsxsrc/main.tsxsrc/screens/REPL.tsxsrc/commands.ts和src/tools.tssrc/services/、src/tasks/、src/assistant/、src/bridge/
这个顺序可以帮助你先理解启动链路,再理解交互主循环,最后进入工具、服务和任务系统。
环境要求:
- Bun
>= 1.3.5 - Node.js
>= 24.0.0
安装依赖:
bun install启动交互模式:
bun run dev验证入口:
bun run version- 想研究终端型 AI Agent Runtime 的开发者
- 想基于现有架构继续做 CLI 助手、工具平台或多代理系统的团队
- 想分析命令系统、工具协议、MCP 扩展和 TUI 交互的工程实现者
- 想把一套终端工作流扩展成工程平台、自动化系统或私有产品的人
本项目仅供学习研究用途。Claude Code 的所有权利归 Anthropic 所有。