YeonGyu-Kim 84a89f7e07 roadmap: #225 filed — Audio API typed taxonomy is structurally absent: zero /v1/audio/transcriptions + zero /v1/audio/translations + zero /v1/audio/speech endpoint surface across both Anthropic-native and OpenAI-compat lanes, zero TranscriptionRequest / SpeechRequest / AudioVoice / AudioFormat / AudioMediaType / AudioSource / Modality / AudioRequestConfig / SpeechResponse / TranscriptionResponse typed model in rust/crates/api/src/types.rs, zero Audio variant on InputContentBlock (3-arm exhaustive: Text/ToolUse/ToolResult), zero Audio variant on OutputContentBlock (4-arm exhaustive: Text/ToolUse/Thinking/RedactedThinking), zero modalities/audio fields on MessageRequest for gpt-4o-audio request-side opt-in, zero transcribe/translate/synthesize_speech methods on Provider trait at rust/crates/api/src/providers/mod.rs:17-30 (only send_message + stream_message exist), zero audio dispatch on ProviderClient enum at rust/crates/api/src/client.rs:8-14 (three variants Anthropic/Xai/OpenAi, zero Whisper/ElevenLabs/Cartesia/Deepgram/AssemblyAI/Speechmatics partner-routing variants), zero multipart/form-data upload affordance with reqwest::multipart feature flag absent from rust/crates/api/Cargo.toml (rg returns zero hits for multipart across rust/), zero claw audio/transcribe/speak/tts/whisper CLI subcommand at rust/crates/rusty-claude-cli/src/main.rs, zero /transcribe/whisper/tts slash command, AND the existing /voice + /listen + /speak slash commands at rust/crates/commands/src/lib.rs:295-301+603-609+610-616 advertise audio-capability summaries but are all gated under STUB_COMMANDS at rust/crates/rusty-claude-cli/src/main.rs:8333+8388+8389 (advertised-but-unbuilt shape ×3, the largest single-pinpoint advertised-but-unbuilt slash-command count catalogued, strict-superset of #220's /image+/screenshot ×2 and #223's /files ×1), zero whisper-1/tts-1/tts-1-hd/gpt-4o-audio-preview/gpt-4o-realtime-preview/gpt-4o-mini-tts/gpt-4o-mini-transcribe entries in MODEL_REGISTRY, zero audio_input_per_minute/audio_output_per_minute/tts_per_million_chars/whisper_per_minute fields in ModelPricing struct (rust/crates/runtime/src/usage.rs:9-15 has only four text-token-only fields), zero audio-model recognition in pricing_for_model substring-matcher (#209+#224 cluster overlap) — uniquely manifesting a fusion shape combining #223's transport-plumbing-absence (multipart/form-data) + #224's provider-asymmetric-delegation (Anthropic does not offer audio at all per docs.anthropic.com/audio explicitly recommending AssemblyAI/Deepgram/OpenAI-Whisper, OpenAI offers GA whisper-1+tts-1+tts-1-hd+gpt-4o-audio-preview+gpt-4o-realtime-preview+gpt-4o-mini-tts+gpt-4o-mini-transcribe, Google Gemini Live API offers bidirectional audio modality, six-plus recommended partners ElevenLabs/Cartesia/PlayHT/Deepgram/AssemblyAI/Speechmatics) + #220's advertised-but-unbuilt-slash-commands (×3, the largest count catalogued) + #218's modalities-request-side-absence (gpt-4o-audio-preview's modalities:[text,audio] opt-in) + symmetric-input-output content-block-taxonomy axis (#225's first-of-its-kind contribution to the cluster doctrine since prior members have either input-only [#220] or output-only [#214,#224] or stateless [#221/#222/#223] modality coverage) — making #225 the first cluster member where four independent prior shape-axes converge in a single pinpoint and the largest fusion-shape gap catalogued so far (Jobdori cycle #377 / extends #168c emission-routing audit / explicit follow-on candidate from #224's provider-asymmetric-delegation shape — the first-named of two named candidates: Audio API typed taxonomy (this pinpoint #225) / Image-generation API typed taxonomy (open candidate for #226), Audio chosen because it inherits #223's multipart-transport-plumbing dimension that Image-generation does not — the multipart sibling of #223 that the cycle hint explicitly identifies / sibling-shape cluster grows to twenty-four / wire-format-parity cluster grows to fifteen / capability-parity cluster grows to seven / multimodal-IO cluster grows to three: #220 input-only + #224 output-only + #225 full-duplex-bidirectional / advertised-but-unbuilt cluster grows to four / multipart-transport cluster grows to two / provider-asymmetric-delegation cluster grows to two / nine-layer-fusion-shape (endpoint-URL-set-of-three + multipart-form-data-transport-plumbing + data-model-taxonomy-with-input-AND-output-content-blocks + modalities-request-side-opt-in + Provider-trait-method-set-of-three-with-Unsupported-fallback + ProviderClient-enum-dispatch-with-six-partner-third-lanes + advertised-but-unbuilt-slash-commands-×3 + CLI-subcommand-surface + pricing-tier-with-per-minute-and-per-million-chars-and-per-million-audio-tokens-compound-cost-model) is the largest single-pinpoint fusion catalogued / external validation: forty-seven ecosystem references covering three first-class audio-endpoint specs on OpenAI side, one Anthropic non-coverage statement, one Google Gemini Live API spec, six first-class STT providers, six first-class TTS providers, one full-duplex bidirectional-audio endpoint OpenAI /v1/realtime, three first-class CLI/SDK typed-surface implementations, six first-class local-audio-providers, one community-maintained Common Voice benchmark, seven coding-agent peers with audio capability, one canonical Anthropic-recommended three-partner-set / claw-code is the sole client/agent/CLI with zero /v1/audio/{transcriptions,translations,speech} integration AND zero ElevenLabs/Cartesia/Deepgram/AssemblyAI/Speechmatics/Whisper partner-routing AND three advertised-but-unbuilt slash commands AND zero modalities request-side opt-in AND zero Audio content-block taxonomy variant on either input or output side AND zero multipart-form-data transport plumbing for audio uploads — all six gaps unique to claw-code in the surveyed ecosystem)
2026-04-26 03:47:33 +09:00
2026-04-07 15:52:30 +09:00
roadmap: #225 filed — Audio API typed taxonomy is structurally absent: zero /v1/audio/transcriptions + zero /v1/audio/translations + zero /v1/audio/speech endpoint surface across both Anthropic-native and OpenAI-compat lanes, zero TranscriptionRequest / SpeechRequest / AudioVoice / AudioFormat / AudioMediaType / AudioSource / Modality / AudioRequestConfig / SpeechResponse / TranscriptionResponse typed model in rust/crates/api/src/types.rs, zero Audio variant on InputContentBlock (3-arm exhaustive: Text/ToolUse/ToolResult), zero Audio variant on OutputContentBlock (4-arm exhaustive: Text/ToolUse/Thinking/RedactedThinking), zero modalities/audio fields on MessageRequest for gpt-4o-audio request-side opt-in, zero transcribe/translate/synthesize_speech methods on Provider trait at rust/crates/api/src/providers/mod.rs:17-30 (only send_message + stream_message exist), zero audio dispatch on ProviderClient enum at rust/crates/api/src/client.rs:8-14 (three variants Anthropic/Xai/OpenAi, zero Whisper/ElevenLabs/Cartesia/Deepgram/AssemblyAI/Speechmatics partner-routing variants), zero multipart/form-data upload affordance with reqwest::multipart feature flag absent from rust/crates/api/Cargo.toml (rg returns zero hits for multipart across rust/), zero claw audio/transcribe/speak/tts/whisper CLI subcommand at rust/crates/rusty-claude-cli/src/main.rs, zero /transcribe/whisper/tts slash command, AND the existing /voice + /listen + /speak slash commands at rust/crates/commands/src/lib.rs:295-301+603-609+610-616 advertise audio-capability summaries but are all gated under STUB_COMMANDS at rust/crates/rusty-claude-cli/src/main.rs:8333+8388+8389 (advertised-but-unbuilt shape ×3, the largest single-pinpoint advertised-but-unbuilt slash-command count catalogued, strict-superset of #220's /image+/screenshot ×2 and #223's /files ×1), zero whisper-1/tts-1/tts-1-hd/gpt-4o-audio-preview/gpt-4o-realtime-preview/gpt-4o-mini-tts/gpt-4o-mini-transcribe entries in MODEL_REGISTRY, zero audio_input_per_minute/audio_output_per_minute/tts_per_million_chars/whisper_per_minute fields in ModelPricing struct (rust/crates/runtime/src/usage.rs:9-15 has only four text-token-only fields), zero audio-model recognition in pricing_for_model substring-matcher (#209+#224 cluster overlap) — uniquely manifesting a fusion shape combining #223's transport-plumbing-absence (multipart/form-data) + #224's provider-asymmetric-delegation (Anthropic does not offer audio at all per docs.anthropic.com/audio explicitly recommending AssemblyAI/Deepgram/OpenAI-Whisper, OpenAI offers GA whisper-1+tts-1+tts-1-hd+gpt-4o-audio-preview+gpt-4o-realtime-preview+gpt-4o-mini-tts+gpt-4o-mini-transcribe, Google Gemini Live API offers bidirectional audio modality, six-plus recommended partners ElevenLabs/Cartesia/PlayHT/Deepgram/AssemblyAI/Speechmatics) + #220's advertised-but-unbuilt-slash-commands (×3, the largest count catalogued) + #218's modalities-request-side-absence (gpt-4o-audio-preview's modalities:[text,audio] opt-in) + symmetric-input-output content-block-taxonomy axis (#225's first-of-its-kind contribution to the cluster doctrine since prior members have either input-only [#220] or output-only [#214,#224] or stateless [#221/#222/#223] modality coverage) — making #225 the first cluster member where four independent prior shape-axes converge in a single pinpoint and the largest fusion-shape gap catalogued so far (Jobdori cycle #377 / extends #168c emission-routing audit / explicit follow-on candidate from #224's provider-asymmetric-delegation shape — the first-named of two named candidates: Audio API typed taxonomy (this pinpoint #225) / Image-generation API typed taxonomy (open candidate for #226), Audio chosen because it inherits #223's multipart-transport-plumbing dimension that Image-generation does not — the multipart sibling of #223 that the cycle hint explicitly identifies / sibling-shape cluster grows to twenty-four / wire-format-parity cluster grows to fifteen / capability-parity cluster grows to seven / multimodal-IO cluster grows to three: #220 input-only + #224 output-only + #225 full-duplex-bidirectional / advertised-but-unbuilt cluster grows to four / multipart-transport cluster grows to two / provider-asymmetric-delegation cluster grows to two / nine-layer-fusion-shape (endpoint-URL-set-of-three + multipart-form-data-transport-plumbing + data-model-taxonomy-with-input-AND-output-content-blocks + modalities-request-side-opt-in + Provider-trait-method-set-of-three-with-Unsupported-fallback + ProviderClient-enum-dispatch-with-six-partner-third-lanes + advertised-but-unbuilt-slash-commands-×3 + CLI-subcommand-surface + pricing-tier-with-per-minute-and-per-million-chars-and-per-million-audio-tokens-compound-cost-model) is the largest single-pinpoint fusion catalogued / external validation: forty-seven ecosystem references covering three first-class audio-endpoint specs on OpenAI side, one Anthropic non-coverage statement, one Google Gemini Live API spec, six first-class STT providers, six first-class TTS providers, one full-duplex bidirectional-audio endpoint OpenAI /v1/realtime, three first-class CLI/SDK typed-surface implementations, six first-class local-audio-providers, one community-maintained Common Voice benchmark, seven coding-agent peers with audio capability, one canonical Anthropic-recommended three-partner-set / claw-code is the sole client/agent/CLI with zero /v1/audio/{transcriptions,translations,speech} integration AND zero ElevenLabs/Cartesia/Deepgram/AssemblyAI/Speechmatics/Whisper partner-routing AND three advertised-but-unbuilt slash commands AND zero modalities request-side opt-in AND zero Audio content-block taxonomy variant on either input or output side AND zero multipart-form-data transport plumbing for audio uploads — all six gaps unique to claw-code in the surveyed ecosystem)
2026-04-26 03:47:33 +09:00

Claw Code

ultraworkers/claw-code · Usage · Error Handling · Rust workspace · Parity · Roadmap · UltraWorkers Discord

Star history for ultraworkers/claw-code

Claw Code

Claw Code is the public Rust implementation of the claw CLI agent harness. The canonical implementation lives in rust/, and the current source of truth for this repository is ultraworkers/claw-code.

Important

Start with USAGE.md for build, auth, CLI, session, and parity-harness workflows. Make claw doctor your first health check after building, use rust/README.md for crate-level details, read PARITY.md for the current Rust-port checkpoint, and see docs/container.md for the container-first workflow.

ACP / Zed status: claw-code does not ship an ACP/Zed daemon entrypoint yet. Run claw acp (or claw --acp) for the current status instead of guessing from source layout; claw acp serve is currently a discoverability alias only, and real ACP support remains tracked separately in ROADMAP.md.

Current repository shape

  • rust/ — canonical Rust workspace and the claw CLI binary
  • USAGE.md — task-oriented usage guide for the current product surface
  • ERROR_HANDLING.md — unified error-handling pattern for orchestration code
  • PARITY.md — Rust-port parity status and migration notes
  • ROADMAP.md — active roadmap and cleanup backlog
  • PHILOSOPHY.md — project intent and system-design framing
  • SCHEMAS.md — JSON protocol contract (Python harness reference)
  • src/ + tests/ — companion Python/reference workspace and audit helpers; not the primary runtime surface

Quick start

Note

[!WARNING] cargo install claw-code installs the wrong thing. The claw-code crate on crates.io is a deprecated stub that places claw-code-deprecated.exe — not claw. Running it only prints "claw-code has been renamed to agent-code". Do not use cargo install claw-code. Either build from source (this repo) or install the upstream binary:

cargo install agent-code   # upstream binary — installs 'agent.exe' (Windows) / 'agent' (Unix), NOT 'agent-code'

This repo (ultraworkers/claw-code) is build-from-source only — follow the steps below.

# 1. Clone and build
git clone https://github.com/ultraworkers/claw-code
cd claw-code/rust
cargo build --workspace

# 2. Set your API key (Anthropic API key — not a Claude subscription)
export ANTHROPIC_API_KEY="sk-ant-..."

# 3. Verify everything is wired correctly
./target/debug/claw doctor

# 4. Run a prompt
./target/debug/claw prompt "say hello"

Note

Windows (PowerShell): the binary is claw.exe, not claw. Use .\target\debug\claw.exe or run cargo run -- prompt "say hello" to skip the path lookup.

Windows setup

PowerShell is a supported Windows path. Use whichever shell works for you. The common onboarding issues on Windows are:

  1. Install Rust first — download from https://rustup.rs/ and run the installer. Close and reopen your terminal when it finishes.
  2. Verify Rust is on PATH:
    cargo --version
    
    If this fails, reopen your terminal or run the PATH setup from the Rust installer output, then retry.
  3. Clone and build (works in PowerShell, Git Bash, or WSL):
    git clone https://github.com/ultraworkers/claw-code
    cd claw-code/rust
    cargo build --workspace
    
  4. Run (PowerShell — note .exe and backslash):
    $env:ANTHROPIC_API_KEY = "sk-ant-..."
    .\target\debug\claw.exe prompt "say hello"
    

Git Bash / WSL are optional alternatives, not requirements. If you prefer bash-style paths (/c/Users/you/... instead of C:\Users\you\...), Git Bash (ships with Git for Windows) works well. In Git Bash, the MINGW64 prompt is expected and normal — not a broken install.

Post-build: locate the binary and verify

After running cargo build --workspace, the claw binary is built but not automatically installed to your system. Here's where to find it and how to verify the build succeeded.

Binary location

After cargo build --workspace in claw-code/rust/:

Debug build (default, faster compile):

  • macOS/Linux: rust/target/debug/claw
  • Windows: rust/target/debug/claw.exe

Release build (optimized, slower compile):

  • macOS/Linux: rust/target/release/claw
  • Windows: rust/target/release/claw.exe

If you ran cargo build without --release, the binary is in the debug/ folder.

Verify the build succeeded

Test the binary directly using its path:

# macOS/Linux (debug build)
./rust/target/debug/claw --help
./rust/target/debug/claw doctor

# Windows PowerShell (debug build)
.\rust\target\debug\claw.exe --help
.\rust\target\debug\claw.exe doctor

If these commands succeed, the build is working. claw doctor is your first health check — it validates your API key, model access, and tool configuration.

Optional: Add to PATH

If you want to run claw from any directory without the full path, choose one of these approaches:

Option 1: Symlink (macOS/Linux)

ln -s $(pwd)/rust/target/debug/claw /usr/local/bin/claw

Then reload your shell and test:

claw --help

Option 2: Use cargo install (all platforms)

Build and install to Cargo's default location (~/.cargo/bin/, which is usually on PATH):

# From the claw-code/rust/ directory
cargo install --path . --force

# Then from anywhere
claw --help

Option 3: Update shell profile (bash/zsh)

Add this line to ~/.bashrc or ~/.zshrc:

export PATH="$(pwd)/rust/target/debug:$PATH"

Reload your shell:

source ~/.bashrc  # or source ~/.zshrc
claw --help

Troubleshooting

  • "command not found: claw" — The binary is in rust/target/debug/claw, but it's not on your PATH. Use the full path ./rust/target/debug/claw or symlink/install as above.
  • "permission denied" — On macOS/Linux, you may need chmod +x rust/target/debug/claw if the executable bit isn't set (rare).
  • Debug vs. release — If the build is slow, you're in debug mode (default). Add --release to cargo build for faster runtime, but the build itself will take 510 minutes.

Note

Auth: claw requires an API key (ANTHROPIC_API_KEY, OPENAI_API_KEY, etc.) — Claude subscription login is not a supported auth path.

Run the workspace test suite after verifying the binary works:

cd rust
cargo test --workspace

Documentation map

Ecosystem

Claw Code is built in the open alongside the broader UltraWorkers toolchain:

Ownership / affiliation disclaimer

  • 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.
Description
The repo is finally unlocked. enjoy the party! The fastest repo in history to surpass 100K stars . Join Discord: https://discord.gg/5TUQKqFWd Built in Rust using oh-my-codex.
Readme 60 MiB
Languages
Rust 96.4%
Python 3.2%
Shell 0.4%