项目快照:ultraworkers/claw-code,约 195,073 个 Star,109,177 个 Fork;最新推送时间 2026-08-06T11:18:35Z。本文基于仓库公开资料撰写。
项目地址:https://github.com/ultraworkers/claw-code

项目速览(TL;DR)
claw-code 是一个使用 Rust 编写的公共命令行代理工具运行框架(CLI agent harness)实现,核心工作区位于仓库的 rust/ 目录。仓库 README 将其定位为由代理管理的“博物馆展品”,并明确说明它不是此处主推的生产项目。
项目默认分支为 main,许可证为 MIT,GitHub 元信息显示 Star 数为 195073、Fork 数为 109177。资料未提供版本号、发布包安装方式或性能基准;因此本文只依据给定仓库资料说明其目录、命令、配置和当前边界。
- 实现语言:Rust。
- 主要入口:
rust/工作区中的claw二进制。 - 构建方式:从仓库源码执行
cargo build --workspace。 - 健康检查:构建后运行
claw doctor。 - 模型认证示例:使用
ANTHROPIC_API_KEY环境变量;该变量需要 Anthropic API key,而不是 Claude 订阅。 - 当前 ACP 状态:尚未提供 ACP/Zed 守护进程或 JSON-RPC 入口;
claw acp或claw --acp用于查看当前状态。
定位与目标用户
这一章节的结论是:claw-code 更适合源码研究、运行框架审计和本地实验,而不是被直接当作成熟生产产品部署。README 要求真正执行工作时优先查看 LazyCodex 或 Gajae-Code,claw-code 则保留了一个由代理维护的 Rust 实现和相关工程资料。
项目描述为“An agent-managed museum exhibit, built in Rust with Gajae-Code / LazyCodex — developed and maintained with no human intervention”。这句话描述的是仓库维护方式与项目哲学,不等同于任何安全性、稳定性、服务等级或无人值守生产能力承诺。
目标使用方式
- 检查 Rust 工作区、命令行入口和相关 crate 的组织方式。
- 在本地授权环境中构建
claw,执行健康检查、提示词任务和交互会话。 - 阅读 Rust 移植状态、路线图、使用说明以及容器化工作流。
- 评估 RAG 服务示例中 SQLite、Qdrant 和本地模拟提供程序的组合方式。
不应作出的推断
仓库资料没有给出并发上限、任务成功率、延迟、模型覆盖范围、生产 SLA 或长期兼容性承诺。根据本文作者的经验判断,面对需要明确版本支持、审计证明和稳定运维责任的业务系统,应先完成独立验证,而不能仅凭 Star 和 Fork 数量作出选型结论。
核心功能
claw-code 的核心能力集中在命令行代理运行入口、诊断命令、提示词执行、交互会话和 RAG 服务工作流。每项能力的详细协议、参数边界和错误码并未全部出现在给定资料中,实际使用应以仓库中的 USAGE.md 和当前命令输出为准。
命令行提示词执行
claw prompt "say hello" 接受一段命令行提示词并启动一次提示词任务。README 给出的输入是字符串提示词,运行前需要设置 ANTHROPIC_API_KEY;资料没有进一步说明输出格式、会话持久化规则或模型选择参数。
该命令适合验证构建结果和基础认证链路。若命令执行失败,应先执行 claw doctor,再根据终端输出检查环境变量、工作目录和构建产物,而不是把失败归因于某个未在资料中声明的依赖。
交互式会话
直接运行 claw 会启动 README 所称的交互式会话。触发条件是二进制已经成功构建,并且运行环境能够满足代理调用所需的认证与配置;资料没有提供交互协议、退出快捷键或会话文件格式。
交互式入口适合本地人工观察一次任务的输入与结果。若需要将会话纳入自动化流水线,必须先阅读仓库的使用指南和测试资料,不能根据“交互式”这一名称推断存在稳定的机器可读输出协议。
健康检查
claw doctor 是 README 明确建议在构建后首先运行的健康检查命令。它的输入是当前本地运行环境,输出内容和检查项目未在给定材料中展开,因此本文不虚构其具体诊断项。
在排查阶段,健康检查应位于“构建完成”与“执行提示词”之间。这样可以先确认本地 wiring 状态,再执行需要外部模型认证的操作。
RAG 服务与索引工作流
仓库提供的 docker-compose.yml 定义了 qdrant、rag-serve 和 rag-ingest 三个服务。rag-ingest 将挂载到 /workspaces/main 的示例工作区作为只读输入,并使用 /data/index.sqlite 作为索引数据库路径;rag-serve 使用同一数据卷中的数据库启动服务。
Qdrant 通过 6333 和 6334 暴露端口,其中环境变量将 gRPC 端口设为 6334。两个 RAG 服务依赖 Qdrant,默认设置 CLAW_RAG_MOCK_PROVIDERS=1,这表明 compose 示例默认面向本地开发测试;资料没有给出真实嵌入提供程序的名称、认证方式或索引质量指标。
系统架构与关键模块
从仓库形态看,架构分为 Rust 主工作区、Python/reference companion 工作区,以及容器化的 RAG 服务路径。主运行面是 rust/,而仓库根目录的 src/ 与 tests/ 被 README 明确标记为伴随的 Python/reference 工作区和审计辅助内容。
目录与职责
| 路径 | 资料中声明的职责 | 使用提示 |
|---|---|---|
rust/ |
规范 Rust 工作区与 claw CLI 二进制 |
构建命令需要进入该目录 |
rust/crates/claw-rag-service/ |
RAG 服务的 Dockerfile 所在路径 | compose 以 ./rust 为构建上下文 |
src/ |
Python/reference companion workspace | 不是主要运行面 |
tests/ |
伴随的测试与审计辅助内容 | 具体测试命令未提供 |
USAGE.md |
构建、认证、CLI、会话和 parity harness 使用指南 | 当前使用入口文档 |
PARITY.md |
Rust 移植的 parity 状态和迁移说明 | 用于判断移植完成度 |
ROADMAP.md |
活动路线图和清理待办 | ACP 支持单独跟踪 |
根据 README,当前仓库的 source of truth 是 ultraworkers/claw-code,而 Rust 规范实现位于 rust/。资料没有列出 workspace 中所有 crate 的名称和依赖图,因此不对模块之间的内部调用关系作进一步推断。
ACP 与 Zed 边界
ACP(Agent Client Protocol,代理客户端协议)和 Zed 相关入口目前不应按目录名称推测。README 明确指出,项目尚未提供 ACP/Zed daemon 或 JSON-RPC entrypoint;claw acp serve 当前只是可发现性别名,会返回状态并以退出码 0 结束,真正 ACP 支持仍由 ROADMAP.md 单独跟踪。
因此,集成方应先调用 claw acp 或 claw --acp 获取当前状态。仓库提供了 ACP JSON 合约状态文档,但给定资料没有展开完整 JSON 字段,本文不补写接口签名。
依赖与运行环境
本项目的明确运行前提是 Rust 工具链、Git、可用的源码目录以及模型认证环境。资料没有给出 Rust、Cargo、Docker 或 Qdrant 的版本号,安装时应以当前仓库 README 和对应工具官方文档为准。
- 源码构建:使用 Cargo 在
rust/目录运行cargo build --workspace。 - 操作系统路径:README 同时提供 Unix shell 和 Windows PowerShell 说明。
- 模型认证:
ANTHROPIC_API_KEY,值应为 Anthropic API key。 - RAG 容器:compose 使用 Docker 服务编排,并拉取
qdrant/qdrant:latest镜像。 - RAG 存储:Qdrant 使用
qdrant-storage卷,RAG 服务使用rag-data卷。
Windows 用户需要先安装 Rust,并在安装结束后重新打开终端,再使用 cargo --version 验证 PATH。README 特别说明 Windows 二进制名称是 claw.exe,而不是 Unix 环境中的 claw。
快速开始(含最小可运行示例)
最小闭环是“源码获取—Rust 工作区构建—设置 API key—运行诊断—执行提示词”。仓库明确采用 build-from-source 方式,不能使用 crates.io 上名为 claw-code 的弃用 stub 代替本项目。
安装与构建
git clone https://github.com/ultraworkers/claw-code
cd claw-code/rust
cargo build --workspace上面的命令直接来自 README 的 Quick start。构建产物路径为 README 示例中的 ./target/debug/claw;资料没有给出 release 构建命令、安装目录或预编译二进制下载方式。
认证、验证与运行
export ANTHROPIC_API_KEY="<你的-API-KEY>"
./target/debug/claw doctor
./target/debug/claw prompt "say hello"
./target/debug/claw<你的-API-KEY> 是占位符,使用者需要在本地安全地替换为自己的 Anthropic API key,不能把真实密钥提交到仓库、日志或脚本。README 明确区分 Anthropic API key 与 Claude 订阅,二者不能按同一认证凭据处理。
PowerShell 下可以使用以下等价路径;也可以运行 README 提供的 cargo run -- prompt "say hello",以跳过手动查找二进制路径。
$env:ANTHROPIC_API_KEY = "<你的-API-KEY>"
.\target\debug\claw.exe doctor
.\target\debug\claw.exe prompt "say hello"如果 cargo install claw-code 安装出的程序打印“claw-code has been renamed to agent-code”,这是 README 所述的弃用 stub 行为,不是本仓库 Rust CLI 的成功启动结果。
配置说明
配置重点分为 CLI 的模型认证变量和 RAG compose 的服务变量。下面的字段、类型和默认值均来自给定的 README 或 docker-compose.yml;未在资料中声明的内容标记为“未提供”。
| 字段名 | 类型 | 默认值 | 作用 |
|---|---|---|---|
ANTHROPIC_API_KEY |
字符串 | 未提供 | 向 CLI 提供 Anthropic API key;README 说明不是 Claude 订阅 |
CLAW_RAG_MOCK_PROVIDERS |
字符串环境变量 | "1" |
compose 中启用本地 mock providers |
CLAW_RAG_DB |
路径字符串 | /data/index.sqlite |
指定 RAG 索引 SQLite 数据库路径 |
CLAW_RAG_HOST |
主机地址字符串 | 0.0.0.0 |
指定 rag-serve 的监听地址 |
CLAW_RAG_QDRANT_URL |
URL 字符串 | http://qdrant:6334 |
指定 RAG 服务访问 Qdrant 的地址 |
CLAW_RAG_QDRANT_COLLECTION |
字符串 | claw_rag_chunks |
指定 Qdrant collection 名称 |
QDRANT__SERVICE__GRPC_PORT |
字符串形式的端口号 | "6334" |
在 Qdrant 容器中设置 gRPC 端口 |
compose 还发布了 Qdrant 的 6333、6334 端口,以及 RAG 服务的 8787 端口。资料没有给出 HTTP 与 gRPC 端口分别对应的完整接口列表,也没有说明如何在生产环境替换 mock providers,因此不应将这些端口直接视为完整公开 API。
进阶用法
进阶路径主要包括 RAG 容器编排、ACP 状态探测、Parity 文档核对,以及按平台选择二进制调用方式。它们适合在最小 CLI 闭环成功后使用,因为每条路径都有独立的目录、容器或协议边界。
启动 RAG 服务栈
services:
qdrant:
image: qdrant/qdrant:latest
ports:
- "6333:6333"
- "6334:6334"
rag-serve:
command: ["serve", "--db", "/data/index.sqlite"]
ports:
- "8787:8787"
rag-ingest:
command: ["ingest", "--db", "/data/index.sqlite"]上面的片段仅展示资料中已经存在的 compose 配置,不构成新增配置文件。完整文件还包含 Qdrant、RAG 服务依赖关系、卷和环境变量;执行前应使用仓库原始的 docker-compose.yml,不要依据片段自行补充未提供的镜像版本或接口参数。
rag-ingest 以 ingest 命令处理挂载到 /workspaces/main 的只读示例工作区,rag-serve 以 serve 命令读取 /data/index.sqlite。两个服务都依赖 Qdrant,并共享 rag-data 卷;这说明 compose 示例把索引数据和向量存储拆分为两个持久化位置。
ACP 状态查询
./target/debug/claw acp
./target/debug/claw --acp
./target/debug/claw acp serve这组命令用于查看 README 描述的当前 ACP 状态。特别是 claw acp serve 当前仅为 discoverability alias,返回状态并以退出码 0 结束;它不是已经可用的 ACP daemon,也不是可以据此推导出的 JSON-RPC 服务。
可观测性与运维
资料明确提供的运维抓手是 claw doctor、容器服务状态和持久化卷,而不是指标、日志格式或告警系统。部署评估应围绕“能否构建、能否诊断、服务是否启动、数据卷是否保留”建立本地检查清单。
- 构建层:在
claw-code/rust中运行cargo build --workspace,确认工作区构建完成。 - CLI 层:运行
./target/debug/claw doctor,记录诊断输出。 - 认证层:确认
ANTHROPIC_API_KEY已在当前 shell 中设置,且不写入版本库。 - 容器层:核对
qdrant、rag-serve、rag-ingest的依赖关系和端口映射。 - 数据层:保留
qdrant-storage与rag-data卷,避免删除本地索引与向量数据。
仓库资料未提供 Prometheus 指标、结构化日志字段、健康检查 endpoint、备份策略、恢复目标、SLA 或容量规划数据。若这些内容是上线前置条件,官方仓库未提供该信息,建议以最新 README、具体 crate 文档和实际运行结果为准。
安全与合规边界
claw-code 会运行代理 CLI,并且 RAG ingest 会读取挂载的工作区,因此安全重点是凭据保护、输入目录授权和容器数据隔离。本文只讨论使用者拥有或明确获准访问的本地工作区,不提供面向未授权目标的操作教程,也不提供绕过检测、权限控制或审计的技巧。
凭据与数据边界
- 将 Anthropic API key 通过本地环境变量注入,避免把真实密钥写入 README、compose 文件或提交记录。
- 仅把获得授权的目录挂载到
/workspaces/main;compose 示例对该挂载使用:ro,应保持只读边界。 - 将
rag-data和qdrant-storage视为包含索引或向量数据的持久化位置,按组织的数据分类规则管理。 - 在开放
6333、6334或8787前,先确认监听范围、网络访问控制和数据内容符合授权要求。
资料没有提供加密、身份认证、细粒度授权、审计日志、CVE 状态、数据保留周期或隐私合规认证信息。不能据此声称项目具备某项合规资质;涉及个人数据、机密代码或受监管数据时,应由使用组织完成独立评估。
许可证与商用条款
仓库使用 MIT License。根据 LICENSE,版权声明为“Copyright (c) 2026 UltraWorkers and Claw Code contributors”,并授予获得软件者处理、复制、修改、合并、发布、分发、再许可和销售软件副本的许可,但必须遵守许可证列出的条件。
分发时的明确义务
- 软件及其文档副本必须包含版权声明和许可证声明。
- 软件的重要部分在分发时也必须保留上述声明。
- 软件按“AS IS”提供,许可证不提供适销性、特定用途适用性和不侵权保证。
- 许可证文本包含责任限制条款,具体适用范围以仓库 LICENSE 原文和适用法律为准。
MIT License 的许可文本没有禁止商业使用,因此在遵守版权与许可证保留要求的前提下,可以将软件用于商业场景。第三方依赖、模型服务条款、输入数据权利和组织内部合规要求不由这份 MIT 文本自动覆盖,分发前仍应分别核查;不确定部分以仓库 LICENSE 为准。
局限性与已知限制
项目当前最重要的限制是定位边界清晰:README 不把 Claw Code 当作严肃生产项目,并要求需要实际工作的用户优先查看 LazyCodex 或 Gajae-Code。这个声明应直接影响部署决策,不能把仓库热度指标当作产品成熟度证明。
- 安装限制:
cargo install claw-code指向 crates.io 上的弃用 stub,不会安装本仓库所需的claw。 - 发布限制:给定资料只描述源码构建,没有提供本项目预编译发行包或稳定安装器。
- 协议限制:ACP/Zed daemon 和 JSON-RPC entrypoint 尚未随项目提供。
- 文档限制:资料没有完整列出 CLI 参数、错误码、会话存储格式和所有 crate 依赖。
- 性能限制:没有提供 benchmark、并发能力、资源消耗或规模上限。
- 服务限制:RAG compose 默认启用 mock providers,不能据此证明真实模型或嵌入服务已经配置完成。
如果目标是稳定的生产交付、可审计的远程协议或有明确服务等级的托管能力,官方仓库未提供该信息,建议以最新 README、路线图和实际验收结果为准。
适合谁
以下信号表明 claw-code 与使用目标较匹配:使用者接受源码构建,能够阅读 Rust 工作区和项目文档,并且把本地实验或框架研究置于商业 SLA 之上。
- 团队需要检查 Rust CLI agent harness 的当前公开实现,而不是寻找预编译安装包。
- 开发环境能够安装 Rust,并愿意在
rust/目录执行 Cargo 工作区构建。 - 任务运行在本人或组织明确授权的本地工作区中,能够管理 API key 与索引数据。
- 团队希望研究 RAG 服务中 SQLite、Qdrant、Docker Compose 和只读工作区挂载的组合。
- 使用者能够接受 ACP/Zed 入口尚未实现,以及部分命令和接口细节需要以仓库当前内容核对。
不适合谁
以下信号说明该项目与需求存在直接冲突:需要正式产品承诺、稳定发行渠道或已验证的远程协议时,不应仅依赖当前仓库资料作出上线结论。
- 团队要求通过
cargo install claw-code直接获得本项目的claw二进制。 - 系统必须提供现成的 ACP/Zed daemon 或 JSON-RPC entrypoint,而项目当前状态尚未满足这一要求。
- 业务需要明确的并发、延迟、容量、SLA、恢复目标或合规认证,但资料没有这些数据。
- 数据环境包含未经授权的个人信息、机密代码或受监管内容,且组织尚未完成独立安全评估。
- 团队无法维护 Rust 构建环境,或者不能接受从源码构建与根据最新文档调整的工作方式。
常见问题与排查(FAQ / Troubleshooting)
排查顺序应先区分“安装了错误的 crate”“工作区没有构建成功”“认证未配置”和“协议能力尚未实现”。下面的问答只覆盖资料中明确出现的故障线索。
为什么安装后运行的是弃用提示程序
因为 cargo install claw-code 安装的是 crates.io 上的弃用 stub。README 说明该程序会放置 claw-code-deprecated.exe,并打印“claw-code has been renamed to agent-code”;本仓库要求从源码构建。
构建后找不到命令怎么办
先确认当前目录是 claw-code/rust,再执行 cargo build --workspace。Unix 环境使用 ./target/debug/claw,Windows PowerShell 使用 .\target\debug\claw.exe;资料没有提供全局安装后的 PATH 配置方案。
为什么提示认证问题
检查当前 shell 是否设置了 ANTHROPIC_API_KEY,并确认填入的是 Anthropic API key,而不是 Claude 订阅信息。随后运行 claw doctor;具体诊断输出和错误码以本地命令结果为准。
ACP 命令返回成功是否代表服务已经存在
不代表。README 特别说明 claw acp serve 目前只是可发现性别名,会返回状态并以退出码 0 结束,真正 ACP 支持仍在路线图中跟踪。
RAG 服务使用哪些端口
根据 docker-compose.yml,Qdrant 映射 6333:6333 和 6334:6334,rag-serve 映射 8787:8787。这些端口的完整 API 语义、认证方式和外部暴露建议,官方仓库未提供该信息,建议以最新文档和实际服务配置为准。
RAG compose 是否默认连接真实模型
不是这样描述更准确:compose 文件将 CLAW_RAG_MOCK_PROVIDERS 设置为 "1",注释说明默认使用 mock embeddings 进行本地开发,并允许在 shell 中覆盖为真实提供程序。资料没有给出覆盖时所需的具体提供程序名称或变量集合。
项目地址与资源
以下链接均来自项目 README 或仓库自身导航。涉及具体命令和当前实现状态时,应优先查看仓库的 USAGE.md、rust/README.md、PARITY.md、ROADMAP.md 和相关文档。
- claw-code GitHub 仓库
- Usage 使用指南
- Rust workspace 工作区
- Parity 移植状态
- Roadmap 路线图
- Philosophy 项目哲学
- Navigation and file context 文件导航与上下文
- Local OpenAI-compatible providers and skills setup 本地兼容提供程序配置
- Windows install and release quickstart Windows 安装与发布快速开始
- Container workflow 容器工作流
- ACP JSON-RPC status contract ACP JSON-RPC 状态合约
- LazyCodex 项目
- Gajae-Code 项目
- ultraworkers Discord 社区
- gajae-code Discord 社区
- UltraWorkers Discord 社区
结论与选型提示
claw-code 的可核查价值在于它公开了 Rust 版 claw CLI、对应文档入口、RAG 容器编排示例和当前 ACP 状态,而不是提供一套已由资料证明的生产承诺。选择它的前提,是团队接受源码构建、主动核对当前 parity 状态,并能自行承担认证、数据和运行环境管理。
若需求是实际执行工作,README 已将 LazyCodex 和 Gajae-Code列为优先入口;若需求是审查这一阶段的 Rust 实现和代理维护模式,则应从仓库的 USAGE.md、PARITY.md、ROADMAP.md 与 LICENSE 开始。
“Claw Code is not the serious production project here.”
来源:README



