Claw-Code 深度解析:当 Rust 把 Claude Code 变成「史上最快破 10 万 Star」的开源奇迹
前言:一个让整个开发者社区疯狂的四天
2026 年 3 月 31 日凌晨 4 点,韩国开发者 Jin 被手机通知轰醒——Claude Code 的源码泄露了,整个开发者社区陷入疯狂。他在韩国的女朋友甚至担心他会因为本地缓存了这些代码而被 Anthropic 起诉。
但接下来的事情,比源码泄露本身更疯狂。
不到 24 小时,一个名为 Claw-Code 的项目成为 GitHub 历史上最快突破 3 万 Star 的开源项目,还在持续暴涨。最终,它以 史上最快破 10 万 Star 的记录,将 OpenAI 的 GPT-4(9 天破 10 万)和 Google 的 Gemini(12 天)远远甩在身后。
这不是一个简单的「备份泄露代码」的故事。这是一个关于 Rust 重写、AI 驱动开发、多智能体协作 的技术革命样本。
本文将深入解析 Claw-Code 的技术架构、设计哲学、以及它代表的 AI 时代软件开发新范式。
一、Claw-Code 是什么?从「泄露」到「重生」
1.1 事件回顾:从危机到机遇
Claude Code 是 Anthropic 推出的 AI 编程助手,类似于 GitHub Copilot 的竞争对手。2026 年 3 月底,其源码意外泄露。
面对这一危机,Claw-Code 的作者做出了一个令人意外的决定:不是删除缓存,而是从零开始重写。
项目定位:智能体 Harness(把模型、工具、会话与编排层接在一起的运行时骨架)
实现策略:Python 优先实现 → Rust 并行移植
目标:成为最快速、最开放的 Claude Code 替代方案
1.2 为什么选择 Rust?
Rust 重写不是技术炫技,而是深思熟虑后的选择:
| 特性 | Rust 优势 | 对 Coding Agent 的意义 |
|---|---|---|
| 内存安全 | 无需 GC,零成本抽象 | 长时间运行的 Agent 不会因内存泄漏崩溃 |
| 并发友好 | 所有权系统保证线程安全 | 多 Agent 并行任务时性能更强 |
| 可嵌入 | 可作为库集成到其他工具 | 能成为更大系统的一部分 |
| 跨平台 | 编译为单一二进制 | 一键部署,无运行时依赖 |
| 性能 | 接近 C/C++ 的执行速度 | 大规模代码分析时优势明显 |
// Rust 重写的命令执行模块示意
pub async fn execute_command(&self, cmd: Command) -> Result<Output> {
// 异步执行,支持超时和重试
let output = tokio::time::timeout(
self.timeout,
tokio::process::Command::new(&cmd.program)
.args(&cmd.args)
.output()
).await??;
Ok(Output {
stdout: String::from_utf8_lossy(&output.stdout).into_owned(),
stderr: String::from_utf8_lossy(&output.stderr).into_owned(),
status: output.status,
})
}
1.3 项目核心价值
Claw-Code 的价值不在于「复制了 Claude Code 的功能」,而在于:
- 开源自由:MIT 协议,可自由修改、商用
- 架构透明:每一个设计决策都是公开可审查的
- 社区驱动:由 UltraWorkers 社区协作开发
- 技术示范:展示了 AI 驱动开发的真实能力
二、技术架构:从 2 万行 Rust 代码看 AI Agent 设计
2.1 整体架构
Claw-Code 采用模块化的 Crate 架构,共 9 个核心 Crate:
rust/
├── Cargo.toml # Workspace 根配置
├── crates/
│ ├── api/ # Provider 客户端 + 流式响应 + 请求预检
│ ├── commands/ # Slash 命令注册 + 帮助渲染
│ ├── compat-harness/ # TypeScript 清单提取兼容层
│ ├── mock-anthropic-service/ # 确定性本地 Mock 服务
│ ├── plugins/ # 插件元数据、安装/启用/禁用流程
│ ├── runtime/ # 会话、配置、权限、MCP、提示词、认证
│ ├── rusty-claude-cli/ # 主 CLI 二进制(claw)
│ ├── telemetry/ # 会话追踪和使用遥测
│ └── tools/ # 内置工具、技能解析、Agent 运行时
代码统计:
- ~20,000 行 Rust 代码
- 9 个 Workspace Crate
- 2,568 行测试代码
- 48,599 行追踪代码
2.2 核心 Crate 解析
2.2.1 api - LLM 提供商抽象层
负责与各种 LLM 提供商通信,支持流式响应:
// 简化的 API 客户端设计
pub struct AnthropicClient {
base_url: String,
api_key: String,
http_client: reqwest::Client,
}
impl AnthropicClient {
pub async fn stream_messages(
&self,
request: MessagesRequest,
) -> Result<impl Stream<Item = Result<StreamEvent>>> {
// SSE 流式响应处理
let response = self.http_client
.post(format!("{}/v1/messages", self.base_url))
.bearer_auth(&self.api_key)
.json(&request)
.send()
.await?;
Ok(response.bytes_stream().map(parse_sse_event))
}
}
支持的功能:
- Anthropic API(Claude 系列)
- OpenAI 兼容接口
- OAuth 认证流程
- 请求大小预检
- 上下文窗口管理
2.2.2 runtime - 核心运行时
这是整个系统的心脏,包含:
| 模块 | 功能 | 代码行数 |
|---|---|---|
ConversationRuntime | 会话状态机 | ~500 |
ConfigLoader | 配置加载与合并 | ~300 |
PermissionPolicy | 权限策略执行 | ~340 |
McpClient | MCP 协议客户端 | ~400 |
SessionPersistence | 会话持久化 | ~200 |
// 会话运行时的核心状态机
pub struct ConversationRuntime {
provider: Arc<dyn LlmProvider>,
tools: Arc<ToolRegistry>,
permissions: Arc<PermissionPolicy>,
session: Option<Session>,
config: RuntimeConfig,
}
impl ConversationRuntime {
pub async fn run_turn(&mut self, user_input: String) -> Result<TurnResult> {
// 1. 构建请求(包含系统提示词 + 工具定义)
let request = self.build_request(&user_input).await?;
// 2. 调用 LLM(流式)
let mut stream = self.provider.stream_messages(request).await?;
// 3. 处理流式响应
while let Some(event) = stream.next().await {
match event? {
StreamEvent::ContentBlockDelta(delta) => {
print!("{}", delta.text); // 实时输出
}
StreamEvent::ContentBlockStart(block) => {
if let ContentBlock::ToolUse(tool) = block {
self.prepare_tool_execution(tool).await?;
}
}
_ => {}
}
}
// 4. 执行工具调用
self.execute_pending_tools().await
}
}
2.2.3 tools - 工具系统
这是 Coding Agent 的「双手」,包含 40+ 内置工具:
// 工具定义示意
pub enum Tool {
// 文件操作
ReadFile(ReadFileTool),
WriteFile(WriteFileTool),
EditFile(EditFileTool),
// 搜索
GlobSearch(GlobTool),
GrepSearch(GrepTool),
// 执行
Bash(BashTool),
// Web
WebSearch(WebSearchTool),
WebFetch(WebFetchTool),
// Agent 编排
Agent(AgentTool),
Task(TaskTool),
// 其他
TodoWrite(TodoTool),
NotebookEdit(NotebookTool),
Skill(SkillTool),
}
工具执行的核心挑战:
- 安全性:文件写入需要检查工作区边界
- 权限控制:危险操作需要用户确认
- 超时处理:长时间运行的任务需要中断机制
- 输出截断:大文件/长输出需要智能截断
// 文件写入的安全检查
impl WriteFileTool {
pub async fn execute(&self, path: &Path, content: &str) -> Result<()> {
// 1. 检查工作区边界
let canonical_path = path.canonicalize()
.map_err(|_| ToolError::PathNotFound)?;
if !canonical_path.starts_with(&self.workspace_root) {
return Err(ToolError::PathTraversalDenied);
}
// 2. 检查文件大小限制
if content.len() > MAX_WRITE_SIZE {
return Err(ToolError::FileSizeExceeded);
}
// 3. 检查是否为二进制文件
if content.contains('\0') {
return Err(ToolError::BinaryFileDetected);
}
// 4. 执行写入
tokio::fs::write(&canonical_path, content).await?;
Ok(())
}
}
2.2.4 commands - Slash 命令系统
提供丰富的交互式命令:
会话管理:/help, /status, /cost, /resume, /session, /usage
工作区:/compact, /clear, /config, /memory, /init, /diff, /commit
发现:/mcp, /agents, /skills, /doctor, /tasks
自动化:/review, /advisor, /insights, /security-review, /subagent
插件:/plugin (list|install|enable|disable|uninstall)
// 命令解析与分发
pub fn parse_slash_command(input: &str) -> Option<Command> {
let trimmed = input.trim_start_matches('/');
let parts: Vec<&str> = trimmed.split_whitespace().collect();
match parts.first()? {
"doctor" => Some(Command::Doctor),
"skills" => Some(Command::Skills(parts.get(1).copied())),
"agents" => Some(Command::Agents(parts.get(1).copied())),
"mcp" => Some(Command::Mcp(parts.get(1).copied())),
"plugin" => Some(Command::Plugin(parts[1..].to_vec())),
_ => None,
}
}
2.3 Parity(对等)实现进度
Claw-Code 采用「9 Lane」并行开发策略,每个 Lane 负责一个核心功能模块:
| Lane | 功能 | 状态 | 代码量 |
|---|---|---|---|
| 1 | Bash 验证 | ✅ 已合并 | +1004 行 |
| 2 | CI 修复 | ✅ 已合并 | +22 行 |
| 3 | 文件工具边界检查 | ✅ 已合并 | +195 行 |
| 4 | TaskRegistry | ✅ 已合并 | +336 行 |
| 5 | Task 工具连线 | ✅ 已合并 | +79 行 |
| 6 | Team+Cron 注册表 | ✅ 已合并 | +441 行 |
| 7 | MCP 生命周期 | ✅ 已合并 | +491 行 |
| 8 | LSP 客户端 | ✅ 已合并 | +461 行 |
| 9 | 权限执行器 | ✅ 已合并 | +357 行 |
这种并行开发模式展示了 AI 驱动开发的效率:292 次提交,3 位作者,仅用 4 天时间。
三、设计哲学:人类设定方向,AI 执行劳动
3.1 核心理念
Claw-Code 的 PHILOSOPHY.md 中有一段令人深思的话:
If you only look at the generated files in this repository, you are looking at the wrong layer.
The Python rewrite was a byproduct. The Rust rewrite was also a byproduct. The real thing worth studying is the system that produced them.
翻译过来就是:如果你只看这个仓库生成的文件,你看错层次了。Python 重写是副产品,Rust 重写也是副产品。真正值得研究的是生产它们的系统。
3.2 三层协作架构
┌─────────────────────────────────────────────────────────────┐
│ Discord 频道(人类接口) │
│ 人类用一句话描述任务,然后睡觉、走路、做别的事 │
└─────────────────────────────────────────────────────────────┘
↓ 指令
┌─────────────────────────────────────────────────────────────┐
│ oh-my-codex(工作流层) │
│ 把短指令转换为结构化执行: │
│ - 规划关键词 │
│ - 执行模式 │
│ - 持久验证循环 │
│ - 并行多 Agent 工作流 │
└─────────────────────────────────────────────────────────────┘
↓ 任务分发
┌─────────────────────────────────────────────────────────────┐
│ clawhip(事件与通知路由器) │
│ 监控:git 提交、tmux 会话、GitHub Issues/PRs、 │
│ Agent 生命周期事件、频道推送 │
│ │
│ 目标:让 Agent 专注于实现,而不是状态格式化和通知路由 │
└─────────────────────────────────────────────────────────────┘
↓ 执行协调
┌─────────────────────────────────────────────────────────────┐
│ oh-my-openagent(多 Agent 协调器) │
│ 架构师、执行者、审查者之间的分歧解决 │
│ 规划、移交、验证循环 │
└─────────────────────────────────────────────────────────────┘
↓ 代码生成
┌─────────────────────────────────────────────────────────────┐
│ Claw Agents(执行层) │
│ 实际编写代码、运行测试、修复错误、推送变更 │
└─────────────────────────────────────────────────────────────┘
3.3 关键洞察:瓶颈不再是打字速度
The bottleneck is no longer typing speed.
When agent systems can rebuild a codebase in hours, the scarce resource becomes:
- architectural clarity(架构清晰度)
- task decomposition(任务分解)
- judgment(判断力)
- taste(品味)
- conviction about what is worth building(对值得构建之物的信念)
这是一个深刻的观点:当 AI 编程变得足够快时,真正稀缺的是人类的判断力。
3.4 开源的意义
Claw-Code 的作者明确声明:
- This repository does not claim ownership of the original Claude Code source material.
- This repository is not affiliated with, endorsed by, or maintained by Anthropic.
这不是一个「盗版」项目,而是一个 「净室重写」(Clean Room Implementation):
- 作者看过泄露的代码(无法否认)
- 但新代码是从零开始写的(法律上的隔离)
- 使用不同的编程语言(TypeScript → Python → Rust)
- 独立的架构设计(不是逐行翻译)
这种模式在软件行业有先例:IBM PC BIOS 的逆向工程、Wine 对 Windows API 的实现、React 之前的许多「灵感」项目。
四、技术实战:从零开始使用 Claw-Code
4.1 安装与构建
# 1. 克隆仓库
git clone https://github.com/ultraworkers/claw-code
cd claw-code/rust
# 2. 构建(需要 Rust 1.70+)
cargo build --workspace
# 3. 设置 API 密钥
export ANTHROPIC_API_KEY="sk-ant-..."
# 4. 健康检查
./target/debug/claw doctor
# 5. 运行测试
cargo test --workspace
Windows 用户注意:
# PowerShell 环境变量设置
$env:ANTHROPIC_API_KEY = "sk-ant-..."
# 运行(注意 .exe 后缀)
.\target\debug\claw.exe prompt "say hello"
4.2 基本使用
# 交互式 REPL
./target/debug/claw --model claude-opus-4-6
# 单次提示
./target/debug/claw prompt "解释这个代码库"
# JSON 输出(用于自动化)
./target/debug/claw --output-format json prompt "总结 src/main.rs"
# 恢复会话
./target/debug/claw --resume latest
4.3 模型别名
Claw-Code 支持短名称,自动解析到最新模型版本:
| 别名 | 解析为 |
|---|---|
opus | claude-opus-4-6 |
sonnet | claude-sonnet-4-6 |
haiku | claude-haiku-4-5-20251213 |
# 使用别名
./target/debug/claw --model opus prompt "重构这个模块"
4.4 权限模式
# 默认:danger-full-access(允许所有操作)
./target/debug/claw prompt "删除所有测试文件"
# 只读模式
./target/debug/claw --permission-mode read-only prompt "分析代码"
# 跳过确认(危险!)
./target/debug/claw --dangerously-skip-permissions prompt "执行清理"
4.5 高级功能
# 列出可用技能
./target/debug/claw skills list
# 安装技能
./target/debug/claw skills install rust-analyzer
# MCP 服务器管理
./target/debug/claw mcp list
./target/debug/claw mcp show filesystem
# Agent 管理
./target/debug/claw agents list
./target/debug/claw --subagent "run tests in parallel"
五、性能优化:Rust 带来的速度革命
5.1 为什么 Rust 比 TypeScript 快?
| 指标 | TypeScript/Node.js | Rust |
|---|---|---|
| 启动时间 | ~100-500ms | ~1-10ms |
| 内存占用 | ~50-200MB(V8 堆) | ~5-20MB |
| CPU 利用率 | 单线程(事件循环) | 多线程原生 |
| 大文件处理 | 受限于 V8 堆 | 流式处理,无限制 |
| 长时间运行 | GC 暂停可能卡顿 | 无 GC,稳定 |
5.2 并发模型对比
TypeScript(Node.js):
// 单线程事件循环
async function processFiles(files) {
const results = [];
for (const file of files) {
// 每个文件顺序处理
results.push(await processFile(file));
}
return results;
}
Rust:
// 真正的并行处理
async fn process_files(files: Vec<PathBuf>) -> Vec<Result<String>> {
futures::future::join_all(
files.into_iter()
.map(|f| tokio::spawn(process_file(f)))
).await
.into_iter()
.map(|r| r.unwrap())
.collect()
}
5.3 内存安全的意义
对于一个需要长时间运行的 Coding Agent,内存泄漏是致命的:
// Rust 的所有权系统保证无泄漏
pub struct Session {
id: SessionId,
messages: Vec<Message>, // 自动释放
tools: Arc<ToolRegistry>, // 引用计数,最后使用者释放
}
impl Drop for Session {
fn drop(&mut self) {
// 自动清理资源
println!("Session {} cleaned up", self.id);
}
}
5.4 实测性能
根据社区的基准测试(2026 年 4 月):
| 场景 | Claude Code (TS) | Claw-Code (Rust) | 提升 |
|---|---|---|---|
| 启动时间 | 320ms | 8ms | 40x |
| 大型代码库索引 | 45s | 12s | 3.75x |
| 并行文件分析 | 单线程 | 8 核心并行 | ~6x |
| 内存占用(空闲) | 180MB | 15MB | 12x |
六、生态系统:不只是代码,是工具链
6.1 UltraWorkers 工具家族
Claw-Code 不是孤立的项目,它是 UltraWorkers 生态系统 的一部分:
| 项目 | 功能 | GitHub |
|---|---|---|
| clawhip | 事件与通知路由器 | Yeachan-Heo/clawhip |
| oh-my-codex | 工作流引擎 | Yeachan-Heo/oh-my-codex |
| oh-my-openagent | 多 Agent 协调器 | code-yeongyu/oh-my-openagent |
| oh-my-claudecode | Claude Code 扩展 | Yeachan-Heo/oh-my-claudecode |
6.2 插件系统
Claw-Code 支持插件扩展:
# 查看可用插件
./target/debug/claw plugin list
# 安装插件
./target/debug/claw plugin install rust-analyzer
# 启用/禁用
./target/debug/claw plugin enable rust-analyzer
./target/debug/claw plugin disable rust-analyzer
插件开发:
// 定义一个插件
#[derive(Debug, Clone)]
pub struct MyPlugin {
name: String,
version: String,
}
impl Plugin for MyPlugin {
fn name(&self) -> &str { &self.name }
fn version(&self) -> &str { &self.version }
fn tools(&self) -> Vec<ToolSpec> {
vec![
ToolSpec {
name: "my_custom_tool".into(),
description: "A custom tool".into(),
input_schema: json!({
"type": "object",
"properties": {
"input": {"type": "string"}
}
}),
}
]
}
async fn execute(&self, tool: &str, input: Value) -> Result<Value> {
// 工具实现
Ok(json!({"result": "success"}))
}
}
6.3 MCP(Model Context Protocol)集成
Claw-Code 原生支持 MCP 协议:
# 列出 MCP 服务器
./target/debug/claw mcp list
# 查看 MCP 资源
./target/debug/claw mcp show filesystem
# MCP 工具调用
./target/debug/claw mcp call filesystem read_file --path ./src/main.rs
七、争议与反思:开源的边界在哪里?
7.1 「净室重写」的真实性
Claw-Code 的重写速度(4 天、20,000 行 Rust 代码)引发了一些质疑:
时间线悖论:「净室」的速度太可疑了。正常人无法在 4 天内从零开始写出 2 万行高质量 Rust 代码。
可能的解释:
- AI 辅助开发:使用 Claude、GPT-4 等工具加速编码
- 架构理解优先:先理解原系统的设计模式,再重新实现
- 并行开发:9 个 Lane 同时推进,多人协作
- 代码生成:部分代码可能由 AI 生成
7.2 法律与伦理
从法律角度看:
| 方面 | 分析 |
|---|---|
| 版权 | 代码重新编写,不构成直接复制 |
| 商标 | 使用「Claude」名称可能有风险 |
| 专利 | 软件专利在某些司法管辖区存在 |
| 商业秘密 | 泄露的代码已公开,重写不涉及盗窃 |
从伦理角度看:
| 观点 | 理由 |
|---|---|
| 支持 | 促进竞争,推动开源生态 |
| 反对 | 利用泄露事件「搭便车」 |
| 中立 | 技术本身无罪,使用方式决定价值 |
7.3 对 Anthropic 的影响
Claw-Code 的出现对 Anthropic 意味着:
- 竞争加剧:免费替代方案分流用户
- 品牌风险:消费者可能混淆项目来源
- 技术透明:闭源产品的「黑盒」被破解
- 生态压力:被迫更快创新或开源
八、未来展望:AI 编程的下一站
8.1 Claw-Code 的路线图
根据 ROADMAP.md,未来的开发重点:
- 性能优化:更快的启动、更低的内存占用
- 工具扩展:支持更多 LLM 提供商
- 插件生态:社区驱动的插件市场
- 企业功能:团队协作、权限管理
- 集成能力:与 IDE、CI/CD 深度整合
8.2 对开发者的启示
Claw-Code 给我们带来的启示:
- 语言选择很重要:Rust 在系统级 AI 工具中有巨大优势
- 架构决定上限:模块化设计让并行开发成为可能
- 开源是加速器:社区贡献可以快速填补空白
- AI 是新范式:用 AI 开发 AI 工具成为常态
8.3 行业趋势
从 Claw-Code 的成功可以看出:
| 趋势 | 现象 |
|---|---|
| AI 辅助开发 | 代码生成、测试、重构自动化 |
| 多 Agent 协作 | 架构师、执行者、审查者分工 |
| 开源替代 | 商业产品的开源竞争者增多 |
| 跨平台优先 | 单一二进制,一次构建到处运行 |
九、总结:从「代码泄露」到「开源奇迹」
Claw-Code 是一个独特的案例:它起源于一次「事故」(源码泄露),却演变成了一场「革命」。
技术层面:
- 20,000 行 Rust 代码实现了一个完整的 Coding Agent
- 9 个并行 Lane 展示了 AI 驱动开发的效率
- 模块化架构支持插件扩展和生态建设
哲学层面:
- 人类设定方向,AI 执行劳动
- 开源不是目的,是加速创新的手段
- 真正的价值在于「系统」,而不只是「代码」
行业层面:
- 打破了闭源产品的垄断
- 推动了 AI 编程工具的普及
- 引发了对开源边界的讨论
无论你对 Claw-Code 的看法如何,它都已经证明了:在 AI 时代,任何有价值的软件都可以被快速重写、改进、开源。
这是一个让商业公司警惕、让开发者兴奋、让开源社区振奋的时代。
附录:快速参考
A. 常用命令
# 启动交互式会话
claw --model opus
# 单次提示
claw prompt "分析这个项目的架构"
# 健康检查
claw doctor
# 会话管理
claw --resume latest
claw status
# 工具与技能
claw skills list
claw mcp list
claw agents list
# 插件管理
claw plugin list
claw plugin install <name>
B. 配置文件结构
~/.config/claw/
├── config.json # 全局配置
├── sessions/ # 会话存储
│ ├── session-001.jsonl
│ └── session-002.jsonl
├── plugins/ # 插件目录
│ └── rust-analyzer/
└── skills/ # 技能目录
└── code-review/
C. 环境变量
| 变量 | 用途 |
|---|---|
ANTHROPIC_API_KEY | Anthropic API 密钥 |
ANTHROPIC_BASE_URL | 自定义 API 端点 |
OPENAI_API_KEY | OpenAI API 密钥 |
CLAW_CONFIG_DIR | 配置目录路径 |
CLAW_LOG_LEVEL | 日志级别(debug/info/warn/error) |
D. 相关链接
- GitHub 仓库:https://github.com/ultraworkers/claw-code
- Discord 社区:https://discord.gg/5TUQKqFWd
- 使用文档:USAGE.md
- 架构文档:rust/README.md
- 对等状态:PARITY.md
- 设计哲学:PHILOSOPHY.md
本文写于 2026 年 4 月,基于 Claw-Code 项目的公开信息。技术细节以官方仓库为准。