Stella · open source · from the makers of Oxagen

The coding agent that proves it's done.

Coding agents love to declare victory. Stella has to earn it: a witness test that fails on your old code and passes on the new, checked by a judge with its own tools. It runs in your terminal, it is written in Rust, and it works with your key, any of nine providers, or a local model. No account. No phone-home.

stella — goal mode
The definition of done

A green suite is not proof.

A test suite can pass because the feature works, or because the tests never touched it. Stella works test-first and holds itself to a harder gate: the verify_done tool replays the witness test against your previous code in a shadow worktree.

  • Fails on the old code. The witness test runs against git HEAD with only the new test files layered in. If it passes there, it never witnessed the change.
  • Passes on the new code. The same test then runs against the working tree. Red-to-green across the boundary is the only accepted evidence.
  • Judged, not self-graded. In goal mode an LLM judge re-checks the claim with its own read-only tools before Stella is allowed to stop.

verify_done

shadow worktree at git HEAD + new test files
running tests/crlf_test.rs … FAILED (expected: the old code cannot pass)
working tree with your change
running tests/crlf_test.rs … ok
WITNESS CONFIRMED
a merely green suite is not accepted as done

Green suites can hide unwired features and vacuous tests. The witness cannot.

Bring your own key

Any model. Your key. No account.

Export a key and Stella detects the provider. Pin one with --model provider/model, or point --base-url at any OpenAI-compatible server and skip the key entirely. The only network traffic is to the provider you chose.

Anthropic

ANTHROPIC_API_KEY

claude-fable-5

OpenAI

OPENAI_API_KEY

gpt-5.5

Google Gemini

GEMINI_API_KEY

gemini-3-pro

Google Vertex AI

VERTEX_ACCESS_TOKEN

gemini-3-pro

Amazon Bedrock

AWS_ACCESS_KEY_ID

claude on Converse

xAI

XAI_API_KEY

grok-4

DeepSeek

DEEPSEEK_API_KEY

deepseek-chat

Z.ai

ZAI_API_KEY

glm-5.2

OpenRouter

OPENROUTER_API_KEY

auto

Local

--base-url, no key

Ollama, vLLM, LM Studio

Vertex AI and Bedrock use your existing cloud credentials. Gateways like Vercel AI Gateway, Azure OpenAI, and Together work through --base-url the same way local servers do.

What ships in the box

Built for long runs you don't babysit.

Judged goal mode

stella goal works in rounds. After each round an LLM judge checks the goal with its own read-only tools (read_file, grep, ci_status), and its feedback drives the next round. It stops when the evidence says done, bounded by a round cap and your budget.

A hard dollar budget

--budget 5 is a promise, not a suggestion. Stella meters every call against the model card's pricing and aborts cleanly (never mid-tool) once total spend crosses the line. Omit it and spend is still metered for the cost summary.

Parallel tools

Independent tool calls run concurrently. Reads, searches, and builds overlap instead of queuing, so a step that fans out across the codebase finishes in one round trip.

Local-first telemetry

Every execution is recorded in .stella/stella.duckdb on your disk: the full event stream, per-call tokens and cost, and the files-touched ledger. Query it with any DuckDB client. It is your data.

Self-improving memories

Lessons saved with save_memory, or written by you as markdown in .stella/memories/, load once at session start into a byte-stable system prompt. Every call reads them at prompt-cache-hit prices.

CI to green

stella monitor main watches CI for a branch or PR through gh, reads the failure logs, and fixes until the run is fully green, judged like any other goal. Issue tools for Linear and GitHub load only when configured.

Open source

MIT or Apache-2.0. Built in the open.

Stella is developed in public at oxageninc/stella-cli by the team behind Oxagen, the governed control plane for AI agents. Stella stands alone: no Oxagen account, no platform dependency, one Rust workspace of seven crates driven through traits, not concretions.

The workspace

  • stella-clithe stella binary: agent loop, REPL, TUI
  • stella-corestep-driver engine: parallel tools, goal loop, budget, retry, compaction
  • stella-toolsthe built-in tools: file CRUD, exec, verify_done, issues, CI
  • stella-modelprovider adapters: SSE streaming, tool-call dialects, pricing
  • stella-storeDuckDB persistence: executions, events, telemetry, locks
  • stella-protocolversioned serde types shared across every boundary
  • ocp-typesOpen Context Protocol wire types

Point it at a bug tonight.

One cargo command, one exported key, and Stella is working in your repo. The getting-started guide covers install, providers, and your first judged goal.