# ClaudeCode (Open Source): the terminal agent you compile yourself

> An independent Rust terminal coding agent you build from source and point at any Anthropic-compatible or OpenAI-compatible endpoint. Its most advertised feature, the split-pane dashboard, still replays a scripted demo session rather than your own agent.

**soongenwong/claudecode** — Open Source ClaudeCode Leaked. Same functionalities as Claude Code by Anthropic. Written in Rust, Ready to use immediately for free. 

- Repository: https://github.com/soongenwong/claudecode
- Website: https://github.com/soongenwong/claudecode
- Stars: 1,219 · Forks: 418
- Language: Rust
- License: not declared
- Published: 2026-10-14 · Updated: 2026-10-14 · Language: en
- Canonical page: https://hysenlabs.com/projects/soongenwong-claudecode

## A second terminal agent for people who compile their own binary

ClaudeCode is a terminal-native coding agent written in Rust, and its README says plainly that it is an independent implementation inspired by Claude Code rather than the official Anthropic product. Three shapes of use ship: an interactive shell started with `claw`, a one-shot prompt that takes a string argument, and a split-pane dashboard. Around them sit workspace-aware tools that read the local codebase, resumeable sessions stored as JSON, and what the feature list calls a plugin-ready architecture for custom tools and skills.

The audience is narrow, and the repository admits it. You want to read every line of the thing that edits your code, you already keep a Rust toolchain around, and you are willing to supply your own provider credentials. A double-click installer was never part of the plan here.

## Provider choice lives in environment variables, not a config file

Authentication is three pairs of shell variables and nothing else. The Anthropic route exports `ANTHROPIC_API_KEY` and `ANTHROPIC_BASE_URL`; the OpenAI-compatible route exports `OPENAI_API_KEY` and `OPENAI_BASE_URL` against `https://api.openai.com/v1`; the Grok route exports `XAI_API_KEY` and `XAI_BASE_URL` against `https://api.x.ai`. So 6 environment variables cover 3 provider families, and none of them is optional if you want an answer from that provider.

A `claw login` command offers a second path, and the documentation does not say what it writes or where it puts credentials. There is no configuration file in the tree, no profile switch, and no stated precedence when two key pairs sit in the same shell. Local inference fits the same shape: the project's own FAQ answers yes, conditional on your server exposing an OpenAI-compatible API. Changing provider means editing your shell profile, not editing the tool.

## The install path is two Cargo commands and no packaged binary

Building is the only installation route on offer. Prerequisite one is Rust stable with Cargo; prerequisite two is credentials for whichever provider you picked. From the repository root:

```bash
cd rust
cargo build --release -p claw-cli
```

```bash
cargo install --path crates/claw-cli --locked
```

Run the second command from the same shell after `cd rust`; the relative `crates/claw-cli` path resolves from that directory. Watch the naming split too: repository `soongenwong/claudecode`, package `claw-cli`, installed binary `claw`. That is 3 names for one program, and any script you write has to carry all of them.

Upgrading means repeating the same two commands against a newer checkout, with `--locked` still in force. The repository is not archived and its last push was on 2026-06-21, so what you compile is a dated snapshot rather than a rolling branch. No licence identifier appears in the repository header either, which leaves redistribution of a compiled binary undefined until you read the licence text.

## The live dashboard runs a scripted session, not your code

Start it with:

```bash
claw dashboard   # alias: claw tui
```

Three panels render, all built on `ratatui`. Agent Pipeline sits on the left as a step log, Workspace and System State on the right as a file tree that recolours as files are scanned, read or modified next to a progress gauge, and a syntax-highlighted Live Diff runs along the bottom, typing in line by line. `Ctrl-C` or `Esc` leaves.

The gap sits in the closing line of that description: the interface is driven entirely by an `AgentEvent` stream, so it can be wired to the real agent loop without touching the rendering code. That sentence describes a wiring job still to do. The feature list calls this a live dashboard, the usage section calls it a scripted demo session, and both descriptions ship in the same file.

## Session resume takes a file path the README never defines

Persistence is JSON, and the resume flag takes a path rather than a session name.

```bash
claw --resume session.json /status
```

You hand over a filename and a command. Nothing states the schema of that JSON, how a session file is produced in the first place, what directory the binary searches by default, or whether a session survives a crash partway through a run. Anything scripted on top of resumable work would have to reverse the state file by hand.

The wider command set has the same shape of hole. `claw --help` is described as covering agents, skills and system-prompt flows, and not one of those 3 flows gets an example prompt, a flag, an output sample or a file name anywhere in the README.

## Seven feature claims, with three surfaces left undocumented

The feature list counts 7 items: a Rust build, the TUI dashboard, an agentic CLI, model flexibility, workspace awareness, session persistence and extensibility. Three of those labels cover surfaces the documentation never opens.

Workspace awareness expands to context-aware tools designed to understand your local codebase, with no command list, no file boundary and no permission model stated anywhere. Extensibility becomes a plugin-ready architecture for custom tools and skills, with no plugin directory, manifest format or discovery rule given. Session persistence is the third gap, where the only artifact named anywhere is a JSON path on a flag.

None of that settles whether the code is sound. For an agent trusted to rewrite files, an unstated permission boundary and an undefined extension format are the 2 places where reading the source beats reading the page.

## Mixed Rust and Python trees, and a file the README ignores

The layout does not match a single-language tool. `rust/` holds the core CLI and runtime, `src/` is described as Python support code and utilities, and `tests/` holds verification suites for agentic behaviours. The development loop given to contributors is Rust only:

```bash
cd rust
cargo fmt
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace
```

No linter, test runner or setup step for the Python tree appears anywhere, and nothing explains what that layer does or which side calls into it.

Then there is `PARITY.md` at the top level, beside CLAW.md, which the README does point contributors to for workspace-specific workflow guidance. A parity document parked next to an independent reimplementation asks the question the README steps around: which Claude Code behaviours are matched, which are missing, and who keeps that list current. Nothing in the documentation answers it.

## Where this sits against the official Anthropic agent

The comparison the README itself invites is with Claude Code, the official Anthropic product whose developer docs it links. This repository is source you compile, and its own notes state that it is not affiliated with or endorsed by Anthropic. Three differences in approach are concrete.

Provider choice is yours rather than fixed: `ANTHROPIC_API_KEY` can be swapped for the `OPENAI_API_KEY` pair or the `XAI_API_KEY` one, and any OpenAI-compatible endpoint will serve, including a local server. The interface is auditable: a Rust tree with clippy and a workspace test suite, not a shipped binary. And the dashboard is a component you would wire yourself, since rendering consumes only an `AgentEvent` stream.

The cost of that freedom shows up in the repository's own topic list, which pairs free with max-subscription. Running the agent still bills whatever your chosen provider charges per token, and a source-only layout means your update path is a pull and a rebuild.

## Conclusion

Adopt this if you want a terminal coding agent you compile yourself, point at any OpenAI-compatible endpoint, and read line by line before you trust it with a repository. It is the wrong choice if you need a packaged installer, a documented session format, or a dashboard wired to a real agent, since the TUI replays a scripted demo. Point a first run at a scratch directory rather than a client repository, because the tools that read and modify files carry no documented permission boundary. Verify the `crates/claw-cli` path, the provider key you already hold, and what `PARITY.md` records first.

## FAQ

### How do I build and install ClaudeCode (Open Source)?

From the repository root, run `cd rust` and `cargo build --release -p claw-cli`, then `cargo install --path crates/claw-cli --locked` to place the binary named `claw` on your PATH. The project offers no prebuilt binary or package manager route.

### Which API keys does ClaudeCode (Open Source) need?

It reads environment variables: `ANTHROPIC_API_KEY` with `ANTHROPIC_BASE_URL`, or `OPENAI_API_KEY` with `OPENAI_BASE_URL`, or `XAI_API_KEY` with `XAI_BASE_URL`. A `claw login` command also exists, though the documentation does not say where it stores anything.

### Can ClaudeCode (Open Source) run a local model?

Yes, on one condition: your local inference server has to expose an OpenAI-compatible API, and you point the relevant base URL and API key at it.

### Is ClaudeCode (Open Source) the official Anthropic Claude Code?

No. It describes itself as an independent, community-driven open-source implementation inspired by Claude Code, and its notes say it is not affiliated with or endorsed by Anthropic.

### What does `claw dashboard` show, and is it connected to a real agent?

It renders 3 panels: an agent pipeline step log, a workspace tree with a progress gauge that recolours as files are touched, and a syntax-highlighted live diff. The usage section states it currently runs a scripted demo session driven by an `AgentEvent` stream.

## Sources

- [Issues](https://github.com/soongenwong/claudecode/issues)
- [Project website](https://github.com/soongenwong/claudecode)
- [README](https://github.com/soongenwong/claudecode/blob/main/README.md)
- [soongenwong/claudecode on GitHub](https://github.com/soongenwong/claudecode)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/soongenwong-claudecode
