Skip to content

Repository files navigation

crucible

The harness where agents are forged.

A terminal coding agent in Rust — fast to start, light on memory, and yours to run.


Status: early development. 0.0.x is a walking skeleton, and it runs: a session streams, six tools work, permission is asked for, and the transcript is kept. Flags, session files and config are unstable for the whole 0.0.x line. See Releases for what is tagged today.

What it is

A coding agent you drive from a terminal. It reads and edits files, runs commands, searches a tree, and streams a model's reasoning inline — in the scrollback you already have, not in a full-screen buffer that replaces it.

It is provider agnostic. A provider is a wire protocol; how you authenticate is a separate axis, so an API key today and a subscription login later are two independent choices rather than one coupled decision.

Why another one

Because the ones that exist are slower and heavier than a terminal tool should be. These are budgets, not aspirations — a change that breaks one is a defect, and the release procedure blocks on them:

Measure Budget
Time to first frame ≤ 20 ms p95
Time to first input ≤ 60 ms p95
Peak RSS after a 20-turn session ≤ 35 MB
grep tool vs the rg binary ≤ 1.25×
Render commits under token burst ≥ 30/s

Rendering costs nothing as a transcript grows, because it is inline: scrollback belongs to the terminal, not to this process. The transcript itself is held in memory for the life of the session, and is what the peak-RSS figure bounds.

Building

Rust is pinned in rust-toolchain.toml, so rustup fetches the right toolchain on first build.

git clone https://github.com/augments-labs/crucible-code
cd crucible-code
cargo build --release
./target/release/crucible --version

There are no published binaries yet; when there are, they will be attached to the GitHub Release for the tag. Anything past this point — getting started, providers, configuration, permission, sessions — lives in docs/ rather than here, so there is one copy of it to keep true.

Running it

Set a key, start it in the directory you want it to work in, and type.

export ANTHROPIC_API_KEY=...
cd ~/code/my-project
crucible

--model takes a model name, optionally qualified by the provider serving it. Unqualified names go to Anthropic.

crucible --model openai/gpt-5.2    # reads OPENAI_API_KEY
crucible --continue                # carry on this directory's last session

Reading never asks. Anything that changes a file or starts a process does:

? bash wants to run: cargo
  [y]es  [a]lways  [n]o › 

Full documentation is in docs/.

Contributing

Start with CONTRIBUTING.md for the workflow and CLAUDE.md for the rules the code is held to. One command covers every gate, and it is what CI runs:

scripts/check.sh

Participation is covered by the Code of Conduct. Security issues go through SECURITY.md, never a public issue.

License

MIT — see LICENSE.

About

The harness where agents are forged.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages