mirror of
https://github.com/instructkr/claude-code.git
synced 2026-04-03 23:18:49 +03:00
- Claude Code -> Claw Code branding - CLI command refs: claude -> claw - Feature highlights: 43 tools, JSONL sessions, prompt cache tracking, telemetry matching - Star history chart and badges - 11MB release binary positioning - Config docs aligned to .claw.json
179 lines
5.8 KiB
Markdown
179 lines
5.8 KiB
Markdown
# 🦞 Claw Code — Rust Implementation
|
|
|
|
<p align="center">
|
|
<a href="https://github.com/instructkr/claw-code"><img src="https://img.shields.io/github/stars/instructkr/claw-code?style=for-the-badge" alt="GitHub stars" /></a>
|
|
<a href="https://github.com/sponsors/instructkr"><img src="https://img.shields.io/badge/Sponsor-%E2%9D%A4-pink?logo=github&style=for-the-badge" alt="Sponsor on GitHub" /></a>
|
|
</p>
|
|
|
|
<p align="center">
|
|
<strong>Claw Code</strong> — a clean-room Rust rewrite of the original agent harness.
|
|
</p>
|
|
|
|
<p align="center">
|
|
Built for 90K+ stars. 43 tools. JSONL sessions. Prompt caching. Wire-protocol telemetry matching.<br>
|
|
Blazing fast. Memory-safe. Zero-compromise architecture.
|
|
</p>
|
|
|
|
## Star History
|
|
|
|
<p align="center">
|
|
<a href="https://star-history.com/#instructkr/claw-code&Date">
|
|
<picture>
|
|
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=instructkr/claw-code&type=Date&theme=dark" />
|
|
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=instructkr/claw-code&type=Date" />
|
|
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=instructkr/claw-code&type=Date" width="600" />
|
|
</picture>
|
|
</a>
|
|
</p>
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
# Build
|
|
cd rust/
|
|
cargo build --release
|
|
|
|
# Run interactive REPL
|
|
./target/release/claw
|
|
|
|
# One-shot prompt
|
|
./target/release/claw prompt "explain this codebase"
|
|
|
|
# With specific model
|
|
./target/release/claw --model sonnet prompt "fix the bug in main.rs"
|
|
```
|
|
|
|
## Configuration
|
|
|
|
Set your API credentials:
|
|
|
|
```bash
|
|
export ANTHROPIC_API_KEY="sk-ant-..."
|
|
# Or use a proxy
|
|
export ANTHROPIC_BASE_URL="https://your-proxy.com"
|
|
```
|
|
|
|
Or authenticate via OAuth:
|
|
|
|
```bash
|
|
claw login
|
|
```
|
|
|
|
## Features
|
|
|
|
| Feature | Status |
|
|
|---------|--------|
|
|
| 43 tools with full parity | ✅ |
|
|
| JSONL session persistence | ✅ |
|
|
| Prompt cache tracking | ✅ |
|
|
| Wire-protocol telemetry matching | ✅ |
|
|
| 11MB release binary | ✅ |
|
|
| Anthropic API + streaming | ✅ |
|
|
| OAuth login/logout | ✅ |
|
|
| Interactive REPL (rustyline) | ✅ |
|
|
| Tool system (bash, read, write, edit, grep, glob) | ✅ |
|
|
| Web tools (search, fetch) | ✅ |
|
|
| Sub-agent orchestration | ✅ |
|
|
| Todo tracking | ✅ |
|
|
| Notebook editing | ✅ |
|
|
| CLAUDE.md / project memory | ✅ |
|
|
| Config file hierarchy (.claude.json) | ✅ |
|
|
| Permission system | ✅ |
|
|
| MCP server lifecycle | ✅ |
|
|
| Session persistence + resume | ✅ |
|
|
| Extended thinking (thinking blocks) | ✅ |
|
|
| Cost tracking + usage display | ✅ |
|
|
| Git integration | ✅ |
|
|
| Markdown terminal rendering (ANSI) | ✅ |
|
|
| Model aliases (opus/sonnet/haiku) | ✅ |
|
|
| Slash commands (/status, /compact, /clear, etc.) | ✅ |
|
|
| Hooks (PreToolUse/PostToolUse) | 🔧 Config only |
|
|
| Plugin system | 📋 Planned |
|
|
| Skills registry | 📋 Planned |
|
|
|
|
## Model Aliases
|
|
|
|
Short names resolve to the latest model versions:
|
|
|
|
| Alias | Resolves To |
|
|
|-------|------------|
|
|
| `opus` | `claude-opus-4-6` |
|
|
| `sonnet` | `claude-sonnet-4-6` |
|
|
| `haiku` | `claude-haiku-4-5-20251213` |
|
|
|
|
## CLI Flags
|
|
|
|
```
|
|
claw [OPTIONS] [COMMAND]
|
|
|
|
Options:
|
|
--model MODEL Set the model (alias or full name)
|
|
--dangerously-skip-permissions Skip all permission checks
|
|
--permission-mode MODE Set read-only, workspace-write, or danger-full-access
|
|
--allowedTools TOOLS Restrict enabled tools
|
|
--output-format FORMAT Output format (text or json)
|
|
--version, -V Print version info
|
|
|
|
Commands:
|
|
prompt <text> One-shot prompt (non-interactive)
|
|
login Authenticate via OAuth
|
|
logout Clear stored credentials
|
|
init Initialize project config
|
|
doctor Check environment health
|
|
self-update Update to latest version
|
|
```
|
|
|
|
## Slash Commands (REPL)
|
|
|
|
| Command | Description |
|
|
|---------|-------------|
|
|
| `/help` | Show help |
|
|
| `/status` | Show session status (model, tokens, cost) |
|
|
| `/cost` | Show cost breakdown |
|
|
| `/compact` | Compact conversation history |
|
|
| `/clear` | Clear conversation |
|
|
| `/model [name]` | Show or switch model |
|
|
| `/permissions` | Show or switch permission mode |
|
|
| `/config [section]` | Show config (env, hooks, model) |
|
|
| `/memory` | Show CLAUDE.md contents |
|
|
| `/diff` | Show git diff |
|
|
| `/export [path]` | Export conversation |
|
|
| `/session [id]` | Resume a previous session |
|
|
| `/version` | Show version |
|
|
|
|
## Workspace Layout
|
|
|
|
```
|
|
rust/
|
|
├── Cargo.toml # Workspace root
|
|
├── Cargo.lock
|
|
└── crates/
|
|
├── api/ # Anthropic API client + SSE streaming
|
|
├── commands/ # Shared slash-command registry
|
|
├── compat-harness/ # TS manifest extraction harness
|
|
├── runtime/ # Session, config, permissions, MCP, prompts
|
|
├── rusty-claude-cli/ # Main CLI binary (`claw`)
|
|
└── tools/ # Built-in tool implementations
|
|
```
|
|
|
|
### Crate Responsibilities
|
|
|
|
- **api** — HTTP client, SSE stream parser, request/response types, auth (API key + OAuth bearer)
|
|
- **commands** — Slash command definitions and help text generation
|
|
- **compat-harness** — Extracts tool/prompt manifests from upstream TS source
|
|
- **runtime** — `ConversationRuntime` agentic loop, `ConfigLoader` hierarchy, `Session` persistence, permission policy, MCP client, system prompt assembly, usage tracking
|
|
- **rusty-claude-cli** — REPL, one-shot prompt, streaming display, tool call rendering, CLI argument parsing
|
|
- **tools** — Tool specs + execution: Bash, ReadFile, WriteFile, EditFile, GlobSearch, GrepSearch, WebSearch, WebFetch, Agent, TodoWrite, NotebookEdit, Skill, ToolSearch, REPL runtimes
|
|
|
|
## Stats
|
|
|
|
- **~20K lines** of Rust
|
|
- **6 crates** in workspace
|
|
- **Binary name:** `claw`
|
|
- **Default model:** `claude-opus-4-6`
|
|
- **Default permissions:** `danger-full-access`
|
|
|
|
## License
|
|
|
|
See repository root.
|