基于 TypeScript 的 AI 辅助开发命令行工具,提供智能代码编辑、任务管理、多 Agent 协作等功能。
Claude Code 是一个功能完整的 CLI 工具,集成了 AI 能力、终端 UI、工具系统和插件架构,支持本地和远程开发场景。
技术栈
- TypeScript + React (Ink 终端渲染)
- Bun 运行时
- MCP (Model Context Protocol) 集成
- 1,987+ 源文件,模块化架构
- Bun ≥ 1.3.5
- Node.js ≥ 24
# 1. 安装依赖
bun install
# 2. 启动 CLI
bun run dev
# 3. 验证安装
bun run version├── src/ # 核心源码
│ ├── main.tsx # CLI 主入口
│ ├── dev-entry.ts # 开发入口
│ ├── commands/ # 命令实现 (100+)
│ ├── tools/ # 工具系统 (50+)
│ ├── components/ # 终端 UI 组件 (React + Ink)
│ ├── services/ # 核心服务 (API/MCP/分析)
│ ├── hooks/ # React Hooks
│ ├── utils/ # 工具函数
│ ├── coordinator/ # 多 Agent 协调
│ ├── plugins/ # 插件系统
│ └── bridge/ # 远程桥接
├── shims/ # 兼容性模块
└── vendor/ # 原生绑定
CLI 入口 (entrypoints/cli.tsx)
↓
主程序 (main.tsx)
↓
初始化 (auth/MCP/settings)
↓
REPL 渲染 (终端交互界面)
文件操作
- 文件读写、编辑、搜索 (FileReadTool, FileWriteTool, GrepTool)
- 全局文件匹配 (GlobTool)
代码执行
- 多 Shell 支持 (BashTool, PowerShellTool)
- REPL 交互 (REPLTool)
- Notebook 编辑 (NotebookEditTool)
网络功能
- Web 抓取与搜索 (WebFetchTool, WebSearchTool)
- 浏览器自动化 (WebBrowserTool)
AI 协作
- 多 Agent 协调 (AgentTool, TeamCreateTool)
- 消息传递 (SendMessageTool)
任务管理
- 任务 CRUD (TaskCreateTool, TaskListTool, TaskUpdateTool)
- 任务控制 (TaskStopTool)
MCP 集成
- MCP 工具调用 (MCPTool)
- 资源管理 (ListMcpResourcesTool, ReadMcpResourceTool)
- 认证 (McpAuthTool)
工作流
- 计划模式 (EnterPlanModeTool, ExitPlanModeTool)
- Worktree 管理 (EnterWorktreeTool, ExitWorktreeTool)
- 定时任务 (ScheduleCronTool)
API 服务 (src/services/api/)
- Anthropic API 客户端
- 请求重试与速率限制
- 用量追踪
MCP 服务 (src/services/mcp/)
- MCP 客户端/服务端
- OAuth 认证
- 通道管理
分析服务 (src/services/analytics/)
- 特性开关 (GrowthBook)
- 事件日志 (Datadog)
会话管理 (src/services/compact/)
- 自动压缩策略
- 上下文优化
终端渲染 (src/ink/)
- 自定义 Ink 渲染引擎
- 布局与焦点管理
- ANSI 渲染
- 虚拟滚动
组件库 (src/components/, 148 文件)
- 消息显示
- 输入框
- Diff 视图
- 权限对话框
- 状态栏
交互模式
- Vim 键绑定 (
src/vim/) - 快捷键系统 (
src/keybindings/)
- 插件系统 (
src/plugins/) - 可扩展功能模块 - 技能系统 (
src/skills/) - 预定义能力集 - 语音交互 (
src/voice/) - 语音输入输出 - 远程会话 (
src/remote/) - 远程开发支持 - IDE 集成 (
src/server/) - 编辑器直连
项目支持多种 API 认证方式(按优先级排序):
-
环境变量
ANTHROPIC_API_KEYexport ANTHROPIC_API_KEY=your_api_key_here bun run dev -
配置文件
~/.claude/settings.json{ "apiKeyHelper": "/path/to/your/api_key_script.sh" } -
OAuth 认证 - 通过
CLAUDE_CODE_OAUTH_TOKEN环境变量 -
macOS Keychain - 自动从系统钥匙串读取
配置目录默认为 ~/.claude/,可通过 CLAUDE_CONFIG_DIR 环境变量自定义。
# 安装依赖
bun install
# 启动开发模式
bun run dev
# 验证版本
bun run version- TypeScript + ESM 模块
- 命名约定:
- camelCase: 变量和函数
- PascalCase: React 组件和类
- kebab-case: 命令文件夹
- 单引号,部分文件省略分号
- 小而专注的模块设计
项目暂无统一测试套件,建议:
- 运行
bun run dev验证 CLI 启动 - 运行
bun run version验证版本输出 - 针对修改的功能进行手动测试
本项目为重构版本,部分原生模块使用 shims/ 目录中的兼容实现替代。开发时请注意兼容性处理。
本仓库不声称拥有 Claude Code 原始源代码的所有权。 本仓库与 Anthropic 公司没有任何关联,也未获得其认可或维护。