Introduction

stella is a fast, bring-your-own-key, model-agnostic terminal coding agent. Point it at any provider, give it a goal, and let a verifier decide when done.

stella is a coding agent that runs in your terminal and works with any model provider. It's bring-your-own-key: there's no account or sign-up for Community use, it runs on credentials you already have, it records everything locally, and it sends telemetry nowhere unless you turn that on yourself.

export ANTHROPIC_API_KEY=your_key_here
stella run "add a --json flag to the export command and update the tests"

What it does differently

BYOK, no lock-inFinds your provider automatically from whatever keys you have set: Anthropic, OpenAI, Gemini, Vertex, Bedrock, xAI, DeepSeek, Z.ai, OpenRouter, or any OpenAI-compatible local server.
Verified outcomesGoal mode doesn't stop on a guess. A separate verifier model checks the evidence against the definition of done before the loop ends.
Tools behind a permission modelA small built-in toolset — the shell, file editing, code search, sub-agents, the task board, scratch state, and an environment check — plus MCP servers and your own script tools, each one gated with optional lifecycle hooks.
Config that scales to a teamSet a different base URL, key, or model per provider in settings.json, merged across a user, org, and project hierarchy.
Local-first telemetryUsage, cost, and per-step metering land in .stella/private/store.db on your disk.

Bring your own provider

stella speaks each provider's own protocol instead of forcing every call through one OpenAI-shaped adapter. That means provider features like Anthropic's thinking blocks, Gemini's thinking levels, and Bedrock's Converse format work natively, not as an imitation.

Anthropic
The strongest coding and agentic models in the catalog, with first-class prompt caching.
id
anthropic
Env var
ANTHROPIC_API_KEY
Default
claude-fable-5
Dialect
Anthropic Messages
OpenAI
A strong worker and the usual second family for cross-family judging.
id
openai
Env var
OPENAI_API_KEY
Default
gpt-5.5
Dialect
OpenAI Responses
Google Gemini
Very large context windows at a low price — the long-document worker.
id
gemini
Env var
GEMINI_API_KEY (GOOGLE_API_KEY)
Default
gemini-3-pro
Dialect
Gemini generateContent
Google Vertex AI
The same Gemini models billed through your GCP project, for enterprises that require it.
id
vertex
Env var
VERTEX_ACCESS_TOKEN
Default
gemini-3-pro
Dialect
Gemini via Vertex
Amazon Bedrock
Claude and friends inside your AWS account, on your existing IAM and billing.
id
bedrock
Env var
AWS_ACCESS_KEY_ID
Default
us.anthropic.claude-sonnet-4-5-20250929-v1:0
Dialect
Bedrock Converse
xAI
Grok, over the OpenAI-compatible dialect.
id
xai
Env var
XAI_API_KEY
Default
grok-4.3
Dialect
OpenAI-compatible
DeepSeek
Very cheap per token — the reference budget worker.
id
deepseek
Env var
DEEPSEEK_API_KEY
Default
deepseek-chat
Dialect
OpenAI-compatible
Z.ai
GLM models, and a flat-rate coding plan that decouples cost from token count.
id
zai
Env var
ZAI_API_KEY
Default
glm-5.2
Dialect
OpenAI-compatible
OpenRouter
One key, hundreds of models — the gateway when you would rather not manage keys.
id
openrouter
Env var
OPENROUTER_API_KEY
Default
moonshotai/kimi-k3
Dialect
OpenAI-compatible
Local server
Ollama, llama.cpp, vLLM, LM Studio — anything that serves the OpenAI shape. No key, no egress.
id
local
Env var
none (optional LOCAL_API_KEY)
Default
you choose
Dialect
OpenAI-compatible

How it fits together

How Stella fits togetheryoua prompt, a goalstellatools · plugins · verifierprovideryour key, direct.stella/ — telemetry stays here

stella sends your prompt to the model you picked. The model calls tools to read and change your workspace, stella feeds the results back, and this repeats until the task is done. Behind the scenes: the tool registry, MCP servers from .stella/mcp.toml, and the memory and code-graph context engine. In goal mode, a second model checks the evidence, so the loop ends on a verified result instead of the worker's own claim that it's done.

Common tasks

Each of these walks through one real task to a finished, verified result. They link down to the full reference instead of repeating it, so you only read the complete flag list when you actually need it.

New to stella? Get started takes about thirty seconds: install, set one key, run stella init, and make your first verified change. Something not working? Troubleshooting is organized by symptom.

Where to go

SectionRead it for
StartInstalling stella, setting up a provider key, starting a project, and making your first verified change.
DoStep-by-step guides for real tasks: fixing red CI, working in an unfamiliar repo, tracking costs, setting budgets, fleets, headless scripting, and embedding the engine in your app.
UnderstandHow plugins prove work is done, how the engine's loop works, how the context engine keeps recall cheap, the modes you can run stella in, and where telemetry goes.
Configuresettings.json, providers, tools and permissions, and ready-made recipes.
ReferenceEvery command and flag, the event bus, and release notes.
ProjectThe showcase, and supporting stella.

stella never routes model traffic through a hosted service of its own. Your keys call your provider directly. Community telemetry stays on your machine. Only an Oxagen Enterprise seat you've explicitly enrolled can send a small, content-free operational summary to one approved address. See Telemetry.