品牌重塑: - Claude Code → Claw Code - .claude → .claw 配置目录 - CLAUDE_* → CLAW_* 环境变量 新增功能: - 多 Provider 架构 (ClawApi/Xai/OpenAI) - 插件系统 (生命周期/钩子/工具扩展) - LSP 集成 (诊断/代码智能) - Hook 系统 (PreToolUse/PostToolUse) - 独立 CLI (claw-cli) - HTTP Server (Axum/SSE) - Slash Commands 扩展 (branch/worktree/commit/pr/plugin等) 优化改进: - Compaction 支持增量压缩 - 全局工具注册表 - 配置文件统一为 .claw.json
229 lines
10 KiB
Markdown
229 lines
10 KiB
Markdown
# 重写项目:Claw Code
|
||
|
||
<p align="center">
|
||
<strong>⭐ 历史上最快超过 5 万颗星的仓库,发布后仅 2 小时即达成里程碑 ⭐</strong>
|
||
</p>
|
||
|
||
<p align="center">
|
||
<a href="https://star-history.com/#instructkr/claw-code&Date">
|
||
<picture>
|
||
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=instructkr/claw-code&type=Date&theme=dark" />
|
||
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=instructkr/claw-code&type=Date" />
|
||
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=instructkr/claw-code&type=Date" width="600" />
|
||
</picture>
|
||
</a>
|
||
</p>
|
||
|
||
<p align="center">
|
||
<img src="assets/clawd-hero.jpeg" alt="Claw" width="300" />
|
||
</p>
|
||
|
||
<p align="center">
|
||
<strong>更好的 Harness 工具,而不仅仅是存储泄露的 Claw Code 存档</strong>
|
||
</p>
|
||
|
||
<p align="center">
|
||
<a href="https://github.com/sponsors/instructkr"><img src="https://img.shields.io/badge/Sponsor-%E2%9D%A4-pink?logo=github&style=for-the-badge" alt="Sponsor on GitHub" /></a>
|
||
</p>
|
||
|
||
> [!IMPORTANT]
|
||
> **Rust 移植工作目前正在 [`dev/rust`](https://github.com/instructkr/claw-code/tree/dev/rust) 分支上进行**,预计今天将合并到主分支。Rust 实现旨在提供更快、内存安全的 harness 运行时。敬请期待——这将是该项目的最终版本。
|
||
|
||
> 如果你觉得这项工作有用,请考虑在 GitHub 上 [赞助 @instructkr](https://github.com/sponsors/instructkr) 以支持持续的开源 harness 工程研究。
|
||
|
||
---
|
||
|
||
## Rust 移植
|
||
|
||
`rust/` 目录下的 Rust 工作区是该项目的当前系统语言移植版本。
|
||
|
||
它目前包括:
|
||
|
||
- `crates/api-client` — 具有提供商抽象、OAuth 和流式支持的 API 客户端
|
||
- `crates/runtime` — 会话状态、压缩、MCP 编排、提示词构建
|
||
- `crates/tools` — 工具清单定义和执行框架
|
||
- `crates/commands` — 斜杠命令、技能发现和配置检查
|
||
- `crates/plugins` — 插件模型、挂钩管道和内置插件
|
||
- `crates/compat-harness` — 用于上游编辑器集成的兼容层
|
||
- `crates/claw-cli` — 交互式 REPL、Markdown 渲染以及项目引导/初始化流程
|
||
|
||
运行 Rust 构建:
|
||
|
||
```bash
|
||
cd rust
|
||
cargo build --release
|
||
```
|
||
|
||
## 背景故事
|
||
|
||
2026年3月31日凌晨4点,我被手机弹出的漫天通知震醒。Claw Code 的源代码被曝光了,整个开发者社区都陷入了疯狂。我在韩国的女朋友真的很担心我仅仅因为机器上有这些代码而面临原作者的法律诉讼——于是我在压力之下做了任何工程师都会做的事:我坐下来,从头开始将核心功能移植到 Python,并在日出前提交了代码。
|
||
|
||
整个过程是使用 [@bellman_ych](https://x.com/bellman_ych) 开发的 [oh-my-codex (OmX)](https://github.com/Yeachan-Heo/oh-my-codex) 端到端编排的——这是一个构建在 OpenAI Codex ([@OpenAIDevs](https://x.com/OpenAIDevs)) 之上的工作流层。我使用了 `$team` 模式进行并行代码审查,并使用了 `$ralph` 模式进行带有架构级验证的持久执行循环。整个移植过程——从阅读原始 harness 结构到生成具有测试的可用 Python 树——都是通过 OmX 编排驱动的。
|
||
|
||
结果是一个净室(clean-room)Python 重写版本,它捕捉了 Claw Code 代理 harness 的架构模式,而没有复制任何专有源代码。我现在正与 OmX 的创始人 [@bellman_ych](https://x.com/bellman_ych) 本人积极合作,以进一步推进这项工作。基本的 Python 基础已经就绪并可以运行,但我们才刚刚开始。 **敬请期待——一个更强大的版本正在路上。**
|
||
|
||
Rust 移植版本是同时使用 [oh-my-codex (OmX)](https://github.com/Yeachan-Heo/oh-my-codex) 和 [oh-my-opencode (OmO)](https://github.com/code-yeongyu/oh-my-openagent) 开发的:OmX 驱动了脚手架搭建、编排和架构方向,而 OmO 则用于后期的实现加速和验证支持。
|
||
|
||
https://github.com/instructkr/claw-code
|
||
|
||

|
||
|
||
## 《华尔街日报》对 Claw Code 狂热粉丝创建者的报道
|
||
|
||
我对 **harness 工程** 深感兴趣——研究代理系统如何连接工具、编排任务以及管理运行时上下文。这并非突发奇想。《华尔街日报》在本月早些时候报道了我的工作,记录了我如何成为探索这些系统最活跃的超级用户之一:
|
||
|
||
> AI 创业公司员工 Sigrid Jin,去年凭一己之力使用了 250 亿个 Claw Code token。当时,使用限制较为宽松,使得早期发烧友能够以极低的成本触及数百亿个 token。
|
||
>
|
||
> 尽管 Jin 在 Claw Code 上花费了无数个小时,但他并不忠于任何一家 AI 实验室。他说,现有的工具各有所长。Codex 擅长推理,而 Claw Code 生成的代码更干净、更易于分享。
|
||
>
|
||
> Jin 于 2 月份飞往旧金山参加 Claw Code 的一周年派对,与会者排队与 Cherny 交流心得。人群中包括一名来自比利时的执业心脏病专家(他开发了一个帮助患者就医的应用程序),以及一名加州律师(他使用 Claw Code 制作了一个自动批准建筑许可的工具)。
|
||
>
|
||
> “这基本上就像是一个分享派对,”Jin 说。“有律师,有医生,有牙医。他们并没有软件工程背景。”
|
||
>
|
||
> — *《华尔街日报》*,2026年3月21日,[*“这场价值万亿美元的竞赛,旨在自动化我们的整个生活”*](https://lnkd.in/gs9td3qd)
|
||
|
||

|
||
|
||
---
|
||
|
||
## 移植状态
|
||
|
||
主源码树现在以 Python 为主。
|
||
|
||
- `src/` 包含活跃的 Python 移植工作区
|
||
- `tests/` 验证当前的 Python 工作区
|
||
- 曝光的快照不再是受追踪的仓库状态的一部分
|
||
|
||
目前的 Python 工作区尚未完全替代原始系统,但主要的实现界面现在是 Python。
|
||
|
||
## 为什么进行这次重写
|
||
|
||
我最初研究曝光的代码库是为了了解其 harness、工具连接和代理工作流。在深入思考法律和伦理问题——并在阅读了下面链接的论文后——我不希望曝光的快照本身继续作为主要追踪的源码树。
|
||
|
||
因此,本仓库现在专注于 Python 移植工作。
|
||
|
||
## 仓库布局
|
||
|
||
```text
|
||
.
|
||
├── src/ # Python 移植工作区
|
||
│ ├── __init__.py
|
||
│ ├── commands.py
|
||
│ ├── main.py
|
||
│ ├── models.py
|
||
│ ├── port_manifest.py
|
||
│ ├── query_engine.py
|
||
│ ├── task.py
|
||
│ └── tools.py
|
||
├── rust/ # Rust 移植 (claw CLI)
|
||
│ ├── crates/api/ # API 客户端 + 流式处理
|
||
│ ├── crates/runtime/ # 会话、工具、MCP、配置
|
||
│ ├── crates/claw-cli/ # 交互式 CLI 二进制文件
|
||
│ ├── crates/plugins/ # 插件系统
|
||
│ ├── crates/commands/ # 斜杠命令
|
||
│ ├── crates/server/ # HTTP/SSE 服务器 (axum)
|
||
│ ├── crates/lsp/ # LSP 客户端集成
|
||
│ └── crates/tools/ # 工具规范
|
||
├── tests/ # Python 验证
|
||
├── assets/omx/ # OmX 工作流截图
|
||
├── 2026-03-09-is-legal-the-same-as-legitimate-ai-reimplementation-and-the-erosion-of-copyleft.md
|
||
└── README.md
|
||
```
|
||
|
||
## Python 工作区概览
|
||
|
||
新的 Python `src/` 树目前提供:
|
||
|
||
- **`port_manifest.py`** — 总结当前 Python 工作区的结构
|
||
- **`models.py`** — 用于子系统、模块和积压状态的数据类
|
||
- **`commands.py`** — Python 侧的命令移植元数据
|
||
- **`tools.py`** — Python 侧的工具移植元数据
|
||
- **`query_engine.py`** — 从活跃工作区渲染 Python 移植摘要
|
||
- **`main.py`** — 用于清单和摘要输出的 CLI 入口点
|
||
|
||
## 快速开始
|
||
|
||
渲染 Python 移植摘要:
|
||
|
||
```bash
|
||
python3 -m src.main summary
|
||
```
|
||
|
||
打印当前 Python 工作区清单:
|
||
|
||
```bash
|
||
python3 -m src.main manifest
|
||
```
|
||
|
||
列出当前的 Python 模块:
|
||
|
||
```bash
|
||
python3 -m src.main subsystems --limit 16
|
||
```
|
||
|
||
运行验证:
|
||
|
||
```bash
|
||
python3 -m unittest discover -s tests -v
|
||
```
|
||
|
||
对本地忽略的存档运行一致性审计(如果存在):
|
||
|
||
```bash
|
||
python3 -m src.main parity-audit
|
||
```
|
||
|
||
检查镜像的命令/工具库:
|
||
|
||
```bash
|
||
python3 -m src.main commands --limit 10
|
||
python3 -m src.main tools --limit 10
|
||
```
|
||
|
||
## 当前对比检查点
|
||
|
||
该移植版本现在比以前更紧密地镜像了存档的根入口文件表面、顶层子系统名称以及命令/工具清单。然而,它**尚未**完全替代原始的 TypeScript 系统;Python 树中可执行的运行时切片仍少于存档源码。
|
||
|
||
## 使用 `oh-my-codex` 和 `oh-my-opencode` 构建
|
||
|
||
本仓库的移植、净室加固和验证工作流是在 Yeachan Heo 工具栈的 AI 辅助下完成的,其中 **oh-my-codex (OmX)** 是主要的脚手架和编排层。
|
||
|
||
- [**oh-my-codex (OmX)**](https://github.com/Yeachan-Heo/oh-my-codex) — 脚手架、编排、架构方向和核心移植工作流
|
||
- [**oh-my-opencode (OmO)**](https://github.com/code-yeongyu/oh-my-openagent) — 实现加速、清理和验证支持
|
||
|
||
移植过程中使用的关键工作流模式:
|
||
|
||
- **`$team` 模式:** 协调的并行审查和架构反馈
|
||
- **`$ralph` 模式:** 持久执行、验证和完成纪律
|
||
- **净室通过:** 跨 Rust 工作区的命名/品牌清理、QA 和发布验证
|
||
- **手动和现场验证:** 构建、测试、手动 QA 以及发布前的真实 API 路径验证
|
||
|
||
### OmX 工作流截图
|
||
|
||

|
||
|
||
*Ralph/team 编排视图,终端面板中正在审查 README 和论文背景。*
|
||
|
||

|
||
|
||
*最后一次 README 措辞审核期间的分屏审查和验证流程。*
|
||
|
||
## 社区
|
||
|
||
<p align="center">
|
||
<a href="https://instruct.kr/"><img src="assets/instructkr.png" alt="instructkr" width="400" /></a>
|
||
</p>
|
||
|
||
加入 [**instructkr Discord**](https://instruct.kr/) —— 最佳韩国语言模型社区。来这里聊聊 LLM、harness 工程、代理工作流以及其中的一切。
|
||
|
||
[](https://instruct.kr/)
|
||
|
||
## Star History
|
||
|
||
见 README 顶部的图表。
|
||
|
||
## 所有权 / 附属免责声明
|
||
|
||
- 本仓库**不**主张对原始 Claw Code 源码材料的所有权。
|
||
- 本仓库**不隶属于、不被背书、也不由原作者维护**。
|