mirror of
https://github.com/instructkr/claw-code.git
synced 2026-04-05 16:39:04 +08:00
PARITY.md still claimed tool-capable JSON prompt runs leaked human-readable tool result lines, but a local mock SSE reproduction showed stdout already stays transport-clean. Add a real CLI regression test around the binary prompt path and update the parity note so future work does not chase a stale bug report. Constraint: Keep scope limited to JSON prompt parity and leave the existing README Philosophy edits untouched Rejected: Modify claw-cli transport code | current behavior already verified clean via a mock SSE prompt run Confidence: high Scope-risk: narrow Reversibility: clean Directive: Keep prompt JSON stdout parseable as a single transport object even when tool loops fire Tested: cargo test -p claw-cli prompt_json_with_tool_use_writes_clean_transport_output --test prompt_json_transport -- --nocapture Tested: cargo test -p claw-cli parses_bare_prompt_and_json_output_flag -- --nocapture Tested: cargo test -p claw-cli response_to_events_preserves_empty_object_json_input_outside_streaming -- --nocapture Not-tested: Live provider behavior outside the local mock SSE harness
Claw Code
Claw Code is a local coding-agent CLI implemented in safe Rust. It is Claude Code inspired and developed as a clean-room implementation: it aims for a strong local agent experience, but it is not a direct port or copy of Claude Code.
The Rust workspace is the current main product surface. The claw binary provides interactive sessions, one-shot prompts, workspace-aware tools, local agent workflows, and plugin-capable operation from a single workspace.
Current status
- Version:
0.1.0 - Release stage: initial public release, source-build distribution
- Primary implementation: Rust workspace in this repository
- Platform focus: macOS and Linux developer workstations
Install, build, and run
Prerequisites
- Rust stable toolchain
- Cargo
- Provider credentials for the model you want to use
Authentication
Anthropic-compatible models:
export ANTHROPIC_API_KEY="..."
# Optional when using a compatible endpoint
export ANTHROPIC_BASE_URL="https://api.anthropic.com"
Grok models:
export XAI_API_KEY="..."
# Optional when using a compatible endpoint
export XAI_BASE_URL="https://api.x.ai"
OAuth login is also available:
cargo run --bin claw -- login
Install locally
cargo install --path crates/claw-cli --locked
Build from source
cargo build --release -p claw-cli
Run
From the workspace:
cargo run --bin claw -- --help
cargo run --bin claw --
cargo run --bin claw -- prompt "summarize this workspace"
cargo run --bin claw -- --model sonnet "review the latest changes"
From the release build:
./target/release/claw
./target/release/claw prompt "explain crates/runtime"
Supported capabilities
- Interactive REPL and one-shot prompt execution
- Saved-session inspection and resume flows
- Built-in workspace tools for shell, file read/write/edit, search, web fetch/search, todos, and notebook updates
- Slash commands for status, compaction, config inspection, diff, export, session management, and version reporting
- Local agent and skill discovery with
claw agentsandclaw skills - Plugin discovery and management through the CLI and slash-command surfaces
- OAuth login/logout plus model/provider selection from the command line
- Workspace-aware instruction/config loading (
CLAW.md, config files, permissions, plugin settings)
Current limitations
- Public distribution is source-build only today; this workspace is not set up for crates.io publishing
- GitHub CI verifies
cargo check,cargo test, and release builds, but automated release packaging is not yet present - Current CI targets Ubuntu and macOS; Windows release readiness is still to be established
- Some live-provider integration coverage is opt-in because it requires external credentials and network access
- The command surface may continue to evolve during the
0.xseries
Implementation
The Rust workspace is the active product implementation. It currently includes these crates:
claw-cli— user-facing binaryapi— provider clients and streamingruntime— sessions, config, permissions, prompts, and runtime looptools— built-in tool implementationscommands— slash-command registry and handlersplugins— plugin discovery, registry, and lifecycle supportlsp— language-server protocol support types and process helpersserverandcompat-harness— supporting services and compatibility tooling
Roadmap
- Publish packaged release artifacts for public installs
- Add a repeatable release workflow and longer-lived changelog discipline
- Expand platform verification beyond the current CI matrix
- Add more task-focused examples and operator documentation
- Continue tightening feature coverage and UX polish across the Rust implementation
Release notes
- Draft 0.1.0 release notes:
docs/releases/0.1.0.md
License
See the repository root for licensing details.