Docs/Core Concepts/Models & Providers

Models & Providers

Dynamo is provider-agnostic. Use any LLM from any provider.

Model capabilities (context window, tool support, reasoning, vision) are auto-detected at runtime via live probes against each provider — no hardcoded model→capability tables. Newly-released models work immediately, and context windows are re-checked on every model switch since providers expand them over time.

Switching Models

Type /model to open the model picker, or switch directly:

bash
/model              # opens a picker with all available models
/model <alias>      # switch to a model you've named

The picker lists what your configured providers actually offer, so it never goes stale. Today that includes Claude Opus 5, Claude Sonnet 5, Claude Fable 5 from Anthropic and GPT-5.6 Luna Pro from OpenAI.

Your choice is saved and persists across sessions.

You can also use the full provider/model format: /model anthropic/<model>, /model google/<model>, /model openrouter/<vendor>/<model>, or /model ollama/<model>.

Aliases

Dynamo ships no built-in aliases — a fixed table of model ids goes stale the day a provider ships a new generation. Every alias is yours: open /model, highlight a row and press r to name it, pin an OpenRouter model (which gets a generated alias), or declare one in dynamo.yaml. Your names persist across sessions.

bash
/model                # browse; `r` renames the highlighted row
/model my-fast        # then use your alias anywhere

Anthropic (Claude)

Set ANTHROPIC_API_KEY to use Claude models directly. Anthropic is the recommended provider for Dynamo — best tool use, streaming, and extended thinking support.

bash
/model                        # pick from the live Anthropic list
/model anthropic/<model-id>   # or switch directly

Models like: Claude Opus 5, Claude Sonnet 5, Claude Fable 5. All Claude models support streaming, tool calling, and extended thinking.

OpenAI (GPT)

Set OPENAI_API_KEY to use GPT models directly. Supports the Chat Completions and Responses APIs, web search, and reasoning models.

bash
/model                     # pick from the live OpenAI list
/model openai/<model-id>   # or switch directly

Models like: GPT-5.6 Luna Pro, GPT-5.6 Luna, GPT-5.6 Terra Pro.

GPT-5.x models support streaming, tool calling, web search (via Responses API), and extended thinking.

OpenRouter (200+ Models)

OpenRouter gives you access to 200+ models through a single API key. Set OPENROUTER_API_KEY and use the tabbed model picker to browse and pin models:

bash
/model                                       # Tab 1: direct providers + pinned models
                                             # Tab 2: searchable OpenRouter catalog
/model openrouter/<vendor>/<model>           # switch directly
/model my-alias                              # use an alias you named

In the OpenRouter tab, type to search and press Space to pin models you use often. Pinned models appear in the Direct tab for quick access.

Google Gemini

Set GOOGLE_API_KEY to use Gemini models directly:

bash
/model                     # pick from the live Gemini list
/model google/<model-id>   # or switch directly

Models like: Gemini 3.6 Flash, Gemini 3.5 Flash Lite, Gemini 3.5 Flash. Gemini supports streaming, function calling, and extended thinking.

Local Models with Ollama

Dynamo works with Ollama for fully local, offline AI:

bash
# Install Ollama and pull a model
ollama pull qwen3:4b-thinking

# Dynamo auto-detects Ollama
dynamo
/model ollama/qwen3:4b-thinking

Local models support tool calling, extended thinking (Qwen3, DeepSeek-R1), and streaming. No API key needed — everything runs on your machine.

Using a CLI subscription

If you already pay for a Claude or Grok subscription, Dynamo can run through that subscription's CLI instead of an API key — no per-token billing on your side. Pick the subscription entry from /model; Dynamo uses the CLI's own sign-in, so make sure you're logged in there first.

Both are experimental, and for different reasons — see Getting Started for the full detail on each.

⚠ Claude — at Anthropic's discretion. Using a Claude Pro/Max subscription from a third-party app is governed by Anthropic and may be limited, re-priced, or stop working at any time, outside Dynamo Engine's control. For guaranteed access, add an Anthropic API key instead. Anthropic announced a billing change on Jun 15, 2026, then paused it; the policy remains in flux — Anthropic's note. How to log in.
⚠ Grok (xAI) — beta. Driving Grok on a SuperGrok / X-Premium plan is beta and xAI's consumer terms don't yet address it, so it may be limited or change at any time. For guaranteed access, set XAI_API_KEY. Needs the Grok CLI installed and signed in (grok login).

An API key is the path that can't be withdrawn. If you need Dynamo to keep working predictably, add one — the subscription option is a convenience on top, not the foundation.

Custom Providers

Add any OpenAI-compatible endpoint in dynamo.yaml:

yaml
ai:
  providers:
    deepseek:
      type: "openai-compatible"
      base_url: "https://api.deepseek.com/v1"
      api_key_env: "DEEPSEEK_API_KEY"

Then use /model deepseek/deepseek-chat to switch.

Reasoning Levels

Use /effort to control how much the model thinks before responding:

LevelWhat it does
lowQuick responses, minimal reasoning
mediumBalanced (default)
highExtended thinking — model shows its reasoning
maxMaximum reasoning budget

Extended thinking is supported by Claude, GPT (via Responses API), Gemini (2.5+), OpenRouter models with reasoning support, and Ollama models like Qwen3 and DeepSeek-R1. The thinking output appears in a dimmed block above the response.

Token Display

After each response, Dynamo shows token usage:

<model> · 348 󰄝 · 187 󰄠 · 412 󰧑 · 12,247 
GlyphMeaning
󰄝Input tokens — fresh tokens not served from cache
󰄠Output tokens
󰧑Reasoning tokens (reasoning models only — subtracted from output count)
Cached input tokens — prompt content served from cache instead of reprocessed

In terminals without Nerd Font support, Dynamo falls back to plain Unicode: .

Total prompt size is input + cached. With aggressive prompt caching, most of your conversation history is served from cache on every turn — only the new message and tool results count as fresh input tokens. In the example above, 12,247 of 12,595 total tokens (97%) were cache hits.