mirror of
https://github.com/instructkr/claude-code.git
synced 2026-04-03 21:38:48 +03:00
Clarify the Rust 0.1.0 public release surface
The workspace already reports version 0.1.0 and exposes a broad CLI, but the top-level README was outdated on installation, capabilities, and current release status. This pass rewrites the README around verified source-build flows and adds a draft 0.1.0 release-notes file so the branch is ready for a public-release prep review. Constraint: Release-prep pass must stay docs-only and avoid runtime behavior changes Constraint: Public docs should describe only verified commands, paths, and current distribution status Rejected: Add packaging automation in this pass | outside the requested release-facing docs scope Confidence: high Scope-risk: narrow Reversibility: clean Directive: Keep README and release notes aligned with cargo metadata, CLI help output, and CI coverage before tagging future releases Tested: Verified version/package metadata with cargo metadata; verified CLI help and command paths with cargo run --quiet --bin claw -- --help; verified CI coverage from .github/workflows/ci.yml Not-tested: cargo check and cargo test (docs-only pass; no code changes)
This commit is contained in:
227
rust/README.md
227
rust/README.md
@@ -1,149 +1,120 @@
|
|||||||
# 🦞 Claw Code — Rust Implementation
|
# Claw Code for Rust
|
||||||
|
|
||||||
A high-performance Rust rewrite of the Claw Code CLI agent harness. Built for speed, safety, and native tool execution.
|
Claw Code is a local coding-agent CLI implemented in safe Rust. The `claw` binary supports interactive sessions, one-shot prompts, workspace-aware tools, and local agent workflows from a single workspace.
|
||||||
|
|
||||||
## Quick Start
|
## Current status
|
||||||
|
|
||||||
|
- **Version:** `0.1.0`
|
||||||
|
- **Release stage:** initial public release, source-build distribution
|
||||||
|
- **Platform focus:** macOS and Linux developer workstations
|
||||||
|
- **Rust port status:** core CLI, runtime, tools, plugins, LSP, and support services are all in the Rust workspace
|
||||||
|
|
||||||
|
## Install, build, and run
|
||||||
|
|
||||||
|
### Prerequisites
|
||||||
|
|
||||||
|
- Rust stable toolchain
|
||||||
|
- Cargo
|
||||||
|
- Provider credentials for the model you want to use
|
||||||
|
|
||||||
|
### Authentication
|
||||||
|
|
||||||
|
Anthropic-compatible models:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Build
|
export ANTHROPIC_API_KEY="..."
|
||||||
cd rust/
|
# Optional when using a compatible endpoint
|
||||||
cargo build --release
|
export ANTHROPIC_BASE_URL="https://api.anthropic.com"
|
||||||
|
```
|
||||||
|
|
||||||
# Run interactive REPL
|
Grok models:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
export XAI_API_KEY="..."
|
||||||
|
# Optional when using a compatible endpoint
|
||||||
|
export XAI_BASE_URL="https://api.x.ai"
|
||||||
|
```
|
||||||
|
|
||||||
|
OAuth login is also available:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cargo run --bin claw -- login
|
||||||
|
```
|
||||||
|
|
||||||
|
### Install locally
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cargo install --path crates/claw-cli --locked
|
||||||
|
```
|
||||||
|
|
||||||
|
### Build from source
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cargo build --release -p claw-cli
|
||||||
|
```
|
||||||
|
|
||||||
|
### Run
|
||||||
|
|
||||||
|
From the workspace:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
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:
|
||||||
|
|
||||||
|
```bash
|
||||||
./target/release/claw
|
./target/release/claw
|
||||||
|
./target/release/claw prompt "explain crates/runtime"
|
||||||
# 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
|
## Supported capabilities
|
||||||
|
|
||||||
Set your API credentials:
|
- 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 agents` and `claw 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)
|
||||||
|
|
||||||
```bash
|
## Current limitations
|
||||||
export ANTHROPIC_API_KEY="sk-ant-..."
|
|
||||||
# Or use a proxy
|
|
||||||
export ANTHROPIC_BASE_URL="https://your-proxy.com"
|
|
||||||
```
|
|
||||||
|
|
||||||
Or authenticate via OAuth:
|
- 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.x` series
|
||||||
|
|
||||||
```bash
|
## Rust port status
|
||||||
claw login
|
|
||||||
```
|
|
||||||
|
|
||||||
## Features
|
The Rust workspace is already the primary implementation surface for this CLI. It currently includes these workspace crates:
|
||||||
|
|
||||||
| Feature | Status |
|
- `claw-cli` — user-facing binary
|
||||||
|---------|--------|
|
- `api` — provider clients and streaming
|
||||||
| API + streaming | ✅ |
|
- `runtime` — sessions, config, permissions, prompts, and runtime loop
|
||||||
| OAuth login/logout | ✅ |
|
- `tools` — built-in tool implementations
|
||||||
| Interactive REPL (rustyline) | ✅ |
|
- `commands` — slash-command registry and handlers
|
||||||
| Tool system (bash, read, write, edit, grep, glob) | ✅ |
|
- `plugins` — plugin discovery, registry, and lifecycle support
|
||||||
| Web tools (search, fetch) | ✅ |
|
- `lsp` — language-server protocol support types and process helpers
|
||||||
| Sub-agent orchestration | ✅ |
|
- `server` and `compat-harness` — supporting services and compatibility tooling
|
||||||
| Todo tracking | ✅ |
|
|
||||||
| Notebook editing | ✅ |
|
|
||||||
| CLAW.md / project memory | ✅ |
|
|
||||||
| Config file hierarchy (.claw.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
|
## Roadmap
|
||||||
|
|
||||||
Short names resolve to the latest model versions:
|
- 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 port
|
||||||
|
|
||||||
| Alias | Resolves To |
|
## Release notes
|
||||||
|-------|------------|
|
|
||||||
| `opus` | `claude-opus-4-6` |
|
|
||||||
| `sonnet` | `claude-sonnet-4-6` |
|
|
||||||
| `haiku` | `claude-haiku-4-5-20251213` |
|
|
||||||
|
|
||||||
## CLI Flags
|
- Draft 0.1.0 release notes: [`docs/releases/0.1.0.md`](docs/releases/0.1.0.md)
|
||||||
|
|
||||||
```
|
|
||||||
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 CLAW.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/ # API client + SSE streaming
|
|
||||||
├── commands/ # Shared slash-command registry
|
|
||||||
├── compat-harness/ # TS manifest extraction harness
|
|
||||||
├── runtime/ # Session, config, permissions, MCP, prompts
|
|
||||||
├── claw-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
|
|
||||||
- **claw-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
|
## License
|
||||||
|
|
||||||
See repository root.
|
See the repository root for licensing details.
|
||||||
|
|||||||
50
rust/docs/releases/0.1.0.md
Normal file
50
rust/docs/releases/0.1.0.md
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
# Claw Code for Rust 0.1.0 release notes (draft)
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
Claw Code for Rust `0.1.0` is the first public release-prep milestone for the safe-Rust workspace. This release centers on a usable local CLI experience: interactive sessions, non-interactive prompts, workspace tools, configuration loading, sessions, plugins, and local agent/skill discovery.
|
||||||
|
|
||||||
|
## Highlights
|
||||||
|
|
||||||
|
- Safe-Rust workspace release at version `0.1.0`
|
||||||
|
- `claw` CLI for interactive and one-shot coding-agent workflows
|
||||||
|
- Built-in workspace tools for shell, file operations, search, web fetch/search, todo tracking, and notebook updates
|
||||||
|
- Slash-command surface for status, compaction, config inspection, sessions, diff/export, and version info
|
||||||
|
- Local plugin, agent, and skill discovery/management surfaces
|
||||||
|
- OAuth login/logout plus model/provider selection
|
||||||
|
|
||||||
|
## Install and run
|
||||||
|
|
||||||
|
This release is currently intended for source builds:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cargo install --path crates/claw-cli --locked
|
||||||
|
# or
|
||||||
|
cargo build --release -p claw-cli
|
||||||
|
```
|
||||||
|
|
||||||
|
Run:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
claw
|
||||||
|
claw prompt "summarize this repository"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Known limitations
|
||||||
|
|
||||||
|
- Source-build distribution only; packaged release artifacts are not yet published
|
||||||
|
- CI currently covers Ubuntu and macOS release builds, checks, and tests
|
||||||
|
- Windows release readiness is not yet established
|
||||||
|
- Some integration coverage is opt-in because live provider credentials and network access are required
|
||||||
|
- Public interfaces may continue to evolve during the `0.x` release line
|
||||||
|
|
||||||
|
## Recommended release framing
|
||||||
|
|
||||||
|
Position `0.1.0` as the first public Rust release for early adopters who are comfortable building from source. The feature surface is broad enough for real usage, but packaged installation and release automation should follow in a later release.
|
||||||
|
|
||||||
|
## Verification used for this draft
|
||||||
|
|
||||||
|
- Workspace version verified from `Cargo.toml`
|
||||||
|
- `claw` binary/package path verified from `cargo metadata`
|
||||||
|
- CLI command surface verified from `cargo run --quiet --bin claw -- --help`
|
||||||
|
- CI coverage verified from `.github/workflows/ci.yml`
|
||||||
Reference in New Issue
Block a user