OxagenDocs
Stella

Models and providers

The BYOK provider matrix — nine providers plus any local OpenAI-compatible server, with auto-detection and per-invocation pinning.

Stella is bring-your-own-key and model-agnostic: it ships adapters for nine providers plus any OpenAI-compatible endpoint, and it picks one automatically from the keys you have set.

The provider matrix

ProviderEnv varDefault model
Anthropic (Claude)ANTHROPIC_API_KEYclaude-fable-5
OpenAI (GPT)OPENAI_API_KEYgpt-5.5
Google GeminiGEMINI_API_KEY (alias GOOGLE_API_KEY)gemini-3-pro
Google Vertex AIVERTEX_ACCESS_TOKEN + VERTEX_PROJECT_IDgemini-3-pro
Amazon BedrockAWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEYClaude via the Converse API
xAI (Grok)XAI_API_KEYgrok-4
DeepSeekDEEPSEEK_API_KEYdeepseek-chat
Z.ai (GLM)ZAI_API_KEYglm-5.2
OpenRouterOPENROUTER_API_KEYauto
Localnone — use --base-urlwhatever your server hosts

Check what Stella has detected at any time:

stella models    # every provider, its models, and key status
stella config    # the fully resolved configuration

Auto-detection and pinning

With one key set, Stella uses that provider. With several, pin one per invocation:

stella --model zai/glm-5.2 run "fix the failing test"
stella --model anthropic/claude-fable-5 chat
export STELLA_MODEL=openai/gpt-5.5   # or pin via env for the whole shell

Bedrock is deliberately last in auto-detection order, so having generic AWS credentials exported never hijacks provider selection.

Cloud-credential providers

Vertex AI takes a ready OAuth token plus a project id:

export VERTEX_ACCESS_TOKEN=$(gcloud auth print-access-token)
export VERTEX_PROJECT_ID=my-project      # or GOOGLE_CLOUD_PROJECT
export VERTEX_LOCATION=global            # optional, default global

Amazon Bedrock uses the standard AWS env credentials, with optional AWS_SESSION_TOKEN and AWS_REGION (default us-east-1). Requests are SigV4-signed against the Converse API.

Local models and gateways

Any OpenAI-compatible server works with no key at all — Ollama, vLLM, LM Studio, llama.cpp server:

stella --model local/llama3.3 --base-url http://localhost:11434/v1

Hosted OpenAI-compatible gateways (Vercel AI Gateway, Azure OpenAI, Together, and the like) work the same way: pass their URL as --base-url.

The credential chain

For each provider, Stella resolves credentials in a fixed order — first hit wins:

  1. --api-key flag (visible in shell history and ps; avoid for anything long-lived)
  2. The provider's environment variable
  3. ~/.config/stella/credentials.toml
  4. An interactive prompt

Cost metering

Every model call is metered against the model card's pricing — tokens in and out, cache read hits and misses, and computed cost — and recorded in .stella/stella.duckdb. The per-turn summary in the REPL and the --budget hard limit both read from this same metering, so what you see is what gets enforced.

On this page