How-To · 20 min
Add models — every type
Kaptain runs four kinds of model side by side and lets you mix them freely. The + Add a model button behind the chat model picker has three tabs — Cloud API, Ollama, Local GGUF — and CLI harnesses are enabled in setup or Settings. This page covers all four, then the per-model knobs.
Which route, when
| You want | Route |
|---|---|
| Zero setup, you already use Claude/Codex in a terminal | CLI harness — their sign-in, no downloads, no GPU |
| Everything local, easy management | Ollama |
| Everything local, a specific GGUF build | Built-in llama.cpp runtime |
| Low-powered machine | Cloud API key — nothing heavy runs locally |
RAM rule of thumb for local models: 4B ≈ 8 GB, 12B ≈ 16 GB.
Route 1 · Ollama
- Install Ollama once (Kaptain shows the one-line per-OS command in setup; it deliberately won't install it for you). From then on Kaptain auto-starts an installed Ollama when it serves.
- Chat model picker ▸ + Add a model ▸ Ollama tab.
- Type the model name — anything from ollama.com/library (e.g.
qwen3:8b) — and pull. Progress streams live; long pulls keep running if you navigate away.
The setup wizard also offers a small curated starter set — qwen3:4b (2.6 GB), qwen3:8b (5.2 GB), gemma3:12b (8.1 GB), and nomic-embed-text (0.3 GB, embeddings for KodeGraph search).
Route 2 · GGUF / built-in llama.cpp
- + Add a model ▸ Local GGUF tab.
- Paste a direct
.ggufdownload link (on Hugging Face that's the…/resolve/main/model.ggufform — a page URL is rejected with the reason). Kaptain downloads to a.partfile and verifies the file really is GGUF before accepting it, so a broken link can never leave a corrupt model behind. - Files land in the
modelsfolder inside Kaptain's data folder —~/.local/share/kaptain/modelson Linux,%LOCALAPPDATA%\Kaptain\modelson Windows,~/Library/Application Support/Kaptain/modelson macOS (override withKAPTAIN_MODELS_DIR) — and appear in the picker automatically. Already have GGUF files elsewhere? Scan system for GGUF files finds them.
Vision GGUFs: a vision model needs its projector file (mmproj-*.gguf) beside it. From Hugging Face that is one download — Kaptain reads the repo and fetches the matching projector into the same folder. A GGUF without its projector is not offered as a vision model, and the tool names the missing file.
Kaptain runs GGUF models with its own managed llama-server. Setup can build one for your GPU (Metal, CUDA, or Vulkan — needs git + cmake); if you keep your own binary, point Kaptain at it in Settings and clear the field to return to auto-discovery.
Route 3 · Claude & Codex CLIs
If the claude or codex CLI is installed and signed in, Kaptain can drive it as a model — their subscription, Kaptain's tools and scheduling.
- Enable in setup (it detects install + sign-in state per CLI) — or later in Settings.
- The model appears as
claude-cli/codex-cliin the picker. - Pick the underlying model (e.g. which Claude) in the ⚙ popover next to the composer — options are discovered from your installed binary, defaulting to "CLI default".
Kaptain's own toolbelt reaches these CLIs over MCP automatically inside Kaptain — nothing to install. (To use Kaptain's tools from a standalone terminal session of those CLIs, see MCP servers.)
Not offered: Gemini CLI as a harness model (deliberately, for now). And Claude is not an API-key provider in Kaptain — it's reached via its CLI.
Route 4 · Cloud API keys
- + Add a model ▸ Cloud API tab.
- Pick a provider preset — OpenAI, Google Gemini, DeepSeek, Groq, Mistral, Together AI, OpenRouter, or Custom (any OpenAI-compatible base URL).
- Type the model id your account actually has (Kaptain deliberately doesn't guess provider catalogues for you) and paste the API key.
Keys are stored on the machine and never echoed back to the browser. Rotate them any time in Settings ▸ Providers & keys ▸ Update keys — key-only, atomic, can't clobber the rest of the model's config.
Per-model settings (⚙)
Every model has a ⚙ Model settings popover next to the composer. What you can set per model:
| Setting | Meaning |
|---|---|
| Thinking | show the model's live reasoning stream |
| Stream tokens live | token-by-token output |
| Context window (num_ctx) | with the runtime's real default and maximum shown |
| Max output (tokens) | response cap |
| Tool approval | Ask / Ask before risky / Read-only / Auto-approve in workspace / Full access |
| Tool calls | Auto / Native / Text protocol |
| Reasoning effort | minimal / low / medium / high — shown only for models that support it; discovered from your installed CLI where applicable |
Settings are per model, saved field-by-field, and Revert to default really reverts.
One setting is not per model: Settings ▸ Model Handling ▸ Vision tool picks which model processes images when a turn needs to look at one — a local model that declares vision, a GGUF with its projector, a cloud model, a Claude or Codex CLI (which then looks with its own tools), or a paired machine's model — plus the thinking policy (auto / off / on) and two answer budgets.
Agent-readable version: index.md · Every claim on this page was exercised on a real install before being written. Something missing that cost you time? That is a documentation bug — tell us.