Stelladocs
Commands

Commands

Overview of every Stella subcommand, the default chat behavior, global flags, and exit codes.

The stella binary is a fast, BYOK (bring-your-own-key), model-agnostic terminal coding agent. Every piece of functionality is exposed through a subcommand.

Running stella with no subcommand opens the Command Deck — a tabbed terminal UI — exactly as if you had run stella chat. Pass --plain (or set STELLA_PLAIN=1) for a plain line-based REPL instead; the deck also steps aside automatically when stdin or stdout is not a terminal.

# These two invocations are identical
stella
stella chat

Subcommands

CommandPurpose
stella run <prompt>Send a one-shot prompt, non-interactive (staged pipeline by default).
stella chatInteractive session — the Command Deck TUI (the default when no subcommand is given).
stella resume [id]Reopen a previous Command Deck session exactly where it stood; --list shows every session on this machine.
stella goal <goal>Work in judged rounds until a judge model confirms the goal is met.
stella monitor [target]Watch CI for a branch/PR and fix failures until fully green.
stella initAnalyze the workspace, infer its domain taxonomy, and build the code-graph index.
stella fleet <tasks...>Fan tasks out to a fleet of worker agents in one shared tree, coordinated by cooperative file claims.
stella graph <op> <target>Query the code graph built by stella init (offline, no API key).
stella modelsList configured providers and available models.
stella statsSummarize cost, tokens, and resolve rate per provider/model from local telemetry.
stella observeServe the Observatory dashboard — your local telemetry in the browser, loopback-only.
stella memoryInspect memories through the citation loop, and promote one to a project rule.
stella mcpManage MCP servers — search a registry, install, list, OAuth login, and show usage telemetry.
stella connectConnect GitHub or Linear via OAuth so the agent gains the issue toolset.
stella toolsList every tool available to the agent this session.
stella configShow the fully resolved configuration.
stella versionPrint the version and exit.

Each command page in this section documents its usage synopsis, behavior, relevant flags, and realistic examples.

Global flags

The following flags apply to every command. Most have a corresponding environment variable so you can set it once for a shell session or in your CI configuration — the exception is --api-key, which is intentionally env-less (use credentials.toml or a provider key env var such as ANTHROPIC_API_KEY instead).

Because these are top-level flags, place them before the subcommand — e.g. stella --output-format json run "…", not stella run "…" --output-format json.

FlagEnv varDefaultMeaning
--model <provider/model_id>STELLA_MODELauto-detectedPin the worker model, e.g. zai/glm-5.2, anthropic/claude-fable-5, openai/gpt-5.5, local/llama3.3.
--api-key <key>noneHighest-precedence step of the credential chain. Requires an explicit --model provider/... (a bare key is ambiguous).
--base-url <url>STELLA_BASE_URLprovider defaultRequired with --model local/<model> to point at a local OpenAI-compatible server; an optional proxy override for any other provider.
--output-format <text|json|stream-json>STELLA_OUTPUT_FORMATtextResponse rendering mode, honored by stella run (the interactive chat/goal/monitor modes always render text). See the table below.
--budget <usd>STELLA_BUDGETnone (observed)Hard USD spend cap for the whole run/session. Must be positive and finite.
--plainSTELLA_PLAIN=1offUse the plain line-based REPL for chat instead of the Command Deck (also auto-selected on a non-TTY).
--no-animSTELLA_NO_ANIM / NO_COLORoffFreeze all deck animation to a static frame (for CI and asciinema-style recordings).

Prefer an environment variable or credentials.toml for anything long-lived. A key passed with --api-key is visible in your shell history and in ps output.

--output-format values

ValueBehavior
textInteractive, human-readable render (the default).
jsonOne final JSON object emitted at the end of the run (headless).
stream-jsonOne JSON line per AgentEvent as it happens (headless streaming).

--budget modes

ModeHow to triggerBehavior
ObservedOmit --budgetSpend is metered for the cost summary but never blocks.
EnforcedPass --budget <usd>A hard cap. Work aborts cleanly (never mid-tool) once spend exceeds the cap.

Token usage, cost, and per-step metering are recorded in a local SQLite store on your disk (<workspace>/.stella/store.db) — nothing is sent anywhere. See stella stats.

Model selection

If you do not pass --model, Stella auto-detects a provider by picking the first one with a resolvable credential, in this preference order:

zai, anthropic, openai, xai, deepseek, gemini, openrouter, then vertex, and bedrock LAST

vertex and bedrock are checked last so that generic AWS or Google credentials present for other reasons never hijack selection. To be explicit, pin a model with --model provider/model_id.

Exit codes

Every command follows standard shell conventions:

Exit codeMeaning
0Success.
non-zeroAn error occurred (for example, a missing credential, an aborted budget-capped run, or a failed goal).

This makes Stella safe to compose in scripts and CI pipelines — check $? (or rely on set -e) to react to failures.

Stella is totally free and open source, dual-licensed MIT or Apache 2.0— your choice: MIT's three-paragraph simplicity, or Apache 2.0's explicit patent grant that enterprises prefer. Use it, fork it, embed it, ship it — no account, no phone-home, no strings. What that means →

On this page