Files
claw-code/rust/README.md
Yeachan-Heo 8f737b13d2 Reduce REPL overhead for orchestration-heavy workflows
Claw already exposes useful orchestration primitives such as session forking,
resume, ultraplan, agents, and skills, but compared with OmO/OMX
they were still high-friction to discover and re-type during live
operator loops.

This change makes the REPL act more like an orchestration console by
refreshing context-aware tab completions before each prompt, allowing
completion after slash-command arguments, and surfacing common workflow
paths such as model aliases, permission modes, and recent session IDs.
The startup banner and REPL help now advertise that guidance so the
capability is visible instead of hidden.

Constraint: Keep the improvement low-risk and REPL-local without adding dependencies or new command semantics
Rejected: Add a brand new orchestration slash command | higher UX surface area and more docs burden than a discoverability fix
Rejected: Implement a persistent HUD/status bar first | higher implementation risk than improving existing command ergonomics
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Keep dynamic completion candidates aligned with slash-command behavior and session management semantics
Tested: cargo test -p rusty-claude-cli
Not-tested: Interactive TTY tab-completion behavior in a live terminal session; full clippy remains blocked by pre-existing runtime crate lints
2026-04-02 07:19:14 +00:00

4.7 KiB

🦞 Claw Code — Rust Implementation

A high-performance Rust rewrite of the Claw Code CLI agent harness. Built for speed, safety, and native tool execution.

Quick Start

# 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:

export ANTHROPIC_API_KEY="sk-ant-..."
# Or use a proxy
export ANTHROPIC_BASE_URL="https://your-proxy.com"

Or authenticate via OAuth:

claw login

Features

Feature Status
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)

Tab completion now expands not just slash command names, but also common workflow arguments like model aliases, permission modes, and recent session IDs.

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
  • runtimeConversationRuntime 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.