将 claw-code/rust/crates 的完整实现合并到主 workspace,涵盖
9 个 crate 的更新与 2 个新 crate 的引入。
API 层:
- 用原生 Anthropic 客户端(anthropic.rs)替换 claw_provider,
新增 prompt cache 减少重复请求开销
- 新增 HTTP 客户端构建器统一代理配置,OpenAI 兼容端增加
DashScope/Qwen 支持与抖动重试
- MessageRequest 扩展 temperature/top_p 等模型调参字段
- SSE 解析器增加 provider 上下文感知的错误信息
运行时(~11,000 行新增):
- 新增 bash 命令安全校验、分支锁碰撞检测、配置文件校验
- 新增会话存储与控制面、MCP 生命周期状态机与服务端实现
- 新增权限执行引擎、策略引擎、插件生命周期管理
- 新增 worker 启动编排、任务/定时任务注册表、信任解析器
- 保留 Windows cmd /C fallback
命令/插件/工具:
- commands 大幅重写,扩展 sandbox、doctor、plan 等 slash 命令
- plugins 新增 PostToolUseFailure hook 与宽容加载机制
- tools 新增 PDF 提取与 lane 补全工具
新增 crate:mock-anthropic-service(测试)、telemetry(遥测)
适配 claw-cli/server:ClawApiClient→AnthropicClient 重命名,
SlashCommand::parse 返回 Result,移除 session 级 Thinking 变体,
TokenUsage/ConversationMessage 补充序列化支持
|
||
|---|---|---|
| .github/workflows | ||
| crates | ||
| docs/releases | ||
| frontend | ||
| .claw.json | ||
| .env | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CLAUDE.md | ||
| CLAW.md | ||
| CONTRIBUTING.md | ||
| README.md | ||
Claw Code
Claw Code 是一个使用安全 Rust 实现的本地编程代理(coding-agent)命令行工具。它的设计灵感来自 Claude Code,并作为一个净室实现(clean-room implementation)开发:旨在提供强大的本地代理体验,但它不是 Claude Code 的直接移植或复制。
Rust 工作区是当前主要的产品界面。claw 二进制文件在单个工作区内提供交互式会话、单次提示、工作区感知工具、本地代理工作流以及支持插件的操作。
当前状态
- 版本:
0.1.0 - 发布阶段: 初始公开发布,源码编译分发
- 主要实现: 本仓库中的 Rust 工作区
- 平台焦点: macOS 和 Linux 开发工作站
安装、构建与运行
准备工作
- Rust 稳定版工具链
- Cargo
- 你想使用的模型的提供商凭据
你可以通过环境变量或在项目根目录创建 .env 文件来配置 API 密钥:
配置 Claude (推荐):
ANTHROPIC_API_KEY="..."
# 使用兼容的端点时可选
export ANTHROPIC_BASE_URL="https://api.anthropic.com"
Grok 模型:
export XAI_API_KEY="..."
# 使用兼容的端点时可选
export XAI_BASE_URL="https://api.x.ai"
也可以使用 OAuth 登录:
cargo run --bin claw -- login
本地安装
cargo install --path crates/claw-cli --locked
从源码构建
cargo build --release -p claw-cli
运行
在工作区内运行:
cargo run --bin claw -- --help
cargo run --bin claw --
cargo run --bin claw -- prompt "总结此工作区"
cargo run --bin claw -- --model sonnet "审查最新更改"
运行发布版本:
./target/release/claw
./target/release/claw prompt "解释 crates/runtime"
支持的功能
- 交互式 REPL 和单次提示执行
- 已保存会话的检查和恢复流程
- 内置工作区工具:shell、文件读/写/编辑、搜索、网页获取/搜索、待办事项和笔记本更新
- 斜杠命令:状态、压缩、配置检查、差异(diff)、导出、会话管理和版本报告
- 本地代理和技能发现:通过
claw agents和claw skills - 通过命令行和斜杠命令界面发现并管理插件
- OAuth 登录/注销,以及从命令行选择模型/提供商
- 工作区感知的指令/配置加载(
CLAW.md、配置文件、权限、插件设置)
当前限制
- 目前公开发布仅限源码构建;此工作区尚未设置 crates.io 发布
- GitHub CI 验证
cargo check、cargo test和发布构建,但尚未提供自动化的发布打包 - 当前 CI 目标为 Ubuntu 和 macOS;Windows 的发布就绪性仍待建立
- 一些实时提供商集成覆盖是可选的,因为它们需要外部凭据 and 网络访问
- 命令界面可能会在
0.x系列期间继续演进
实现现状
Rust 工作区是当前的产品实现。目前包含以下 crate:
claw-cli— 面向用户的二进制文件api— 提供商客户端和流式处理runtime— 会话、配置、权限、提示词和运行时循环tools— 内置工具实现commands— 斜杠命令注册和处理程序plugins— 插件发现、注册和生命周期支持lsp— 语言服务器协议支持类型和进程助手server和compat-harness— 支持服务和兼容性工具
路线图
- 发布打包好的构件,用于公共安装
- 添加可重复的发布工作流和长期维护的变更日志(changelog)规范
- 将平台验证扩展到当前 CI 矩阵之外
- 添加更多以任务为中心的示例和操作员文档
- 继续加强 Rust 实现的功能覆盖并磨炼用户体验(UX)
发行版本说明
- 0.1.0 发行说明草案:
docs/releases/0.1.0.md
许可
有关许可详情,请参阅仓库根目录。