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

项目地址:https://github.com/ultraworkers/claw-code

claw-code 从代码、运行环境到实践流程的项目封面
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 acpclaw --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 定义了 qdrantrag-serverag-ingest 三个服务。rag-ingest 将挂载到 /workspaces/main 的示例工作区作为只读输入,并使用 /data/index.sqlite 作为索引数据库路径;rag-serve 使用同一数据卷中的数据库启动服务。

Qdrant 通过 63336334 暴露端口,其中环境变量将 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 acpclaw --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 代替本项目。

安装与构建

Bash
git clone https://github.com/ultraworkers/claw-code
cd claw-code/rust
cargo build --workspace

上面的命令直接来自 README 的 Quick start。构建产物路径为 README 示例中的 ./target/debug/claw;资料没有给出 release 构建命令、安装目录或预编译二进制下载方式。

认证、验证与运行

Bash
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",以跳过手动查找二进制路径。

Text
$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 的 63336334 端口,以及 RAG 服务的 8787 端口。资料没有给出 HTTP 与 gRPC 端口分别对应的完整接口列表,也没有说明如何在生产环境替换 mock providers,因此不应将这些端口直接视为完整公开 API。

进阶用法

进阶路径主要包括 RAG 容器编排、ACP 状态探测、Parity 文档核对,以及按平台选择二进制调用方式。它们适合在最小 CLI 闭环成功后使用,因为每条路径都有独立的目录、容器或协议边界。

启动 RAG 服务栈

YAML
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-ingestingest 命令处理挂载到 /workspaces/main 的只读示例工作区,rag-serveserve 命令读取 /data/index.sqlite。两个服务都依赖 Qdrant,并共享 rag-data 卷;这说明 compose 示例把索引数据和向量存储拆分为两个持久化位置。

ACP 状态查询

Bash
./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 中设置,且不写入版本库。
  • 容器层:核对 qdrantrag-serverag-ingest 的依赖关系和端口映射。
  • 数据层:保留 qdrant-storagerag-data 卷,避免删除本地索引与向量数据。

仓库资料未提供 Prometheus 指标、结构化日志字段、健康检查 endpoint、备份策略、恢复目标、SLA 或容量规划数据。若这些内容是上线前置条件,官方仓库未提供该信息,建议以最新 README、具体 crate 文档和实际运行结果为准。

安全与合规边界

claw-code 会运行代理 CLI,并且 RAG ingest 会读取挂载的工作区,因此安全重点是凭据保护、输入目录授权和容器数据隔离。本文只讨论使用者拥有或明确获准访问的本地工作区,不提供面向未授权目标的操作教程,也不提供绕过检测、权限控制或审计的技巧。

凭据与数据边界

  • 将 Anthropic API key 通过本地环境变量注入,避免把真实密钥写入 README、compose 文件或提交记录。
  • 仅把获得授权的目录挂载到 /workspaces/main;compose 示例对该挂载使用 :ro,应保持只读边界。
  • rag-dataqdrant-storage 视为包含索引或向量数据的持久化位置,按组织的数据分类规则管理。
  • 在开放 633363348787 前,先确认监听范围、网络访问控制和数据内容符合授权要求。

资料没有提供加密、身份认证、细粒度授权、审计日志、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:63336334:6334rag-serve 映射 8787:8787。这些端口的完整 API 语义、认证方式和外部暴露建议,官方仓库未提供该信息,建议以最新文档和实际服务配置为准。

RAG compose 是否默认连接真实模型

不是这样描述更准确:compose 文件将 CLAW_RAG_MOCK_PROVIDERS 设置为 "1",注释说明默认使用 mock embeddings 进行本地开发,并允许在 shell 中覆盖为真实提供程序。资料没有给出覆盖时所需的具体提供程序名称或变量集合。

项目地址与资源

以下链接均来自项目 README 或仓库自身导航。涉及具体命令和当前实现状态时,应优先查看仓库的 USAGE.mdrust/README.mdPARITY.mdROADMAP.md 和相关文档。

结论与选型提示

claw-code 的可核查价值在于它公开了 Rust 版 claw CLI、对应文档入口、RAG 容器编排示例和当前 ACP 状态,而不是提供一套已由资料证明的生产承诺。选择它的前提,是团队接受源码构建、主动核对当前 parity 状态,并能自行承担认证、数据和运行环境管理。

若需求是实际执行工作,README 已将 LazyCodex 和 Gajae-Code列为优先入口;若需求是审查这一阶段的 Rust 实现和代理维护模式,则应从仓库的 USAGE.mdPARITY.mdROADMAP.md 与 LICENSE 开始。

“Claw Code is not the serious production project here.”
来源:README