Skip to content

Providers

Collie is model-agnostic. Pick a provider in the first-run onboarding, the Settings panel, per run with --provider, or by setting COLLIE_PROVIDER. An explicit environment variable always wins.

Connect an existing subscription

Provider Value How
Claude Agent SDK claude-agent-sdk Native Opus overnight route through Anthropic's official SDK and an eligible signed-in Claude Pro/Max plan; Collie supplies the system prompt and owns the loop. The live route was tested on Max.
ChatGPT / Codex subscription codex-oauth One-click OAuth — uses your ChatGPT plan.
Claude CLI claude-cli Compatibility route through claude -p; Collie's prompt replaces the default prompt and built-in tools are disabled, but this subprocess surface is not native overnight.
Claude raw OAuth (legacy experimental) anthropic-oauth Collie-owned raw Messages request using the local login credential. This is not the native overnight route and is not treated as a documented Claude-plan interface.

On the claude-agent-sdk route, ordinary tool turns use Collie's host-validated {tool|answer} text envelope. The existing single format-repair request uses the SDK's strict schema mode; this does not add requests or retries beyond that repair. A schema refusal still surfaces as HTTP 422. The tool-less Mission planner keeps its separate action contract. Programmatic callers can set structured_repair=False to retain the text-envelope repair behavior.

A subscription login is not itself proof of zero marginal charge. Provider policy and account settings can change; unattended --no-paid-overage runs use a fail-closed preflight and never silently switch to an API key, paid credits, or another provider.

API-key providers

Set the matching environment variable (or paste the key in onboarding):

Provider Value Key
Anthropic API anthropic ANTHROPIC_API_KEY
OpenAI openai OPENAI_API_KEY
Google Gemini gemini GEMINI_API_KEY
DeepSeek deepseek DEEPSEEK_API_KEY
Qwen / DashScope qwen DASHSCOPE_API_KEY
OpenRouter (many models) openrouter OPENROUTER_API_KEY
Moonshot / Kimi moonshot MOONSHOT_API_KEY
Zhipu GLM zhipu ZHIPU_API_KEY
Groq groq GROQ_API_KEY
Any OpenAI-compatible endpoint openai-compat endpoint + key in Settings

Local & offline

Provider Value Notes
Ollama ollama Local models — nothing leaves the machine. No key.
Mock mock Offline, canned responses. Testing only — never real work.
# per-run
collie run "summarize app.py" --provider ollama --model qwen2.5-coder:7b
DEEPSEEK_API_KEY=... collie -p "fix the bug"            # provider inferred from the key

# persist a choice
collie config PROVIDER claude-agent-sdk
COLLIE_PROVIDER=deepseek collie                          # env override wins for this session

Native Opus overnight isolation

claude-agent-sdk invokes the official Claude Agent SDK directly; it does not shell out to claude -p and does not copy a bearer token into a raw Messages request. Collie passes its own replacement system prompt and sets setting_sources=[]. SDK built-in tools, skills, plugins, agents, slash commands, and fallback model are disabled; the SDK init event must attest that those foreign surfaces are empty before its answer is accepted. The SDK is a one-message reasoner inside Collie's own tool loop.

In --no-paid-overage mode, API keys and provider/routing overrides are removed from the worker environment, and there is no API-key, paid-credit, provider, or model fallback. The route uses an eligible signed-in Pro/Max plan (tested on Max) and therefore remains subject to plan limits. A short end-to-end test proves the configured route can complete a bounded call; it is not a 12-hour soak, an unlimited-usage promise, or a guarantee that future provider policy will not change. See Anthropic's current Claude Agent SDK plan guidance.

Legacy routes

anthropic-oauth remains an explicit experimental provider for a Collie-owned raw Messages request, but it is not eligible for native overnight. claude-cli is a compatibility and benchmark route through the official claude -p subprocess; its replacement prompt and empty tool set do not make it the SDK-native route requested for overnight. Neither is a fallback for claude-agent-sdk.

Picking a model

Each provider has a sensible default model; override with --model or in Settings. The web GUI's model picker lists what each connected provider exposes.

Provider is the brain, not the worker

Everything on this page selects the brain: which model does the thinking. It does not select the worker: whose agent loop, tools, sandbox, and approval model actually carry the task out. Those are two different axes, and Collie keeps them separate on purpose.

Setting Chosen by Question it answers
Brain PROVIDER / MODEL --provider, --model Which model reasons about the task, and who is billed for those tokens.
Worker RUNNER / RUNNER_POOL --runner Which harness runs the loop — Collie's own, or an external coding CLI such as codex exec or claude -p.

The default worker is collie, Collie's own harness, and with that default the brain settings above are the whole story: Collie drives its own tool loop with the provider you picked. Choose an external worker and the relationship inverts — that CLI brings its own model, its own login, and its own tools, so PROVIDER/MODEL no longer decide who thinks, while Collie keeps the budget, the approval policy, the verification gate, the receipt, and cancellation.

Two routes on this page shell out to a vendor CLI and are still brains, not workers: claude-cli is a single-inference compatibility route through claude -p inside Collie's own loop, and it is unrelated to the claude-code worker, which hands Claude Code the whole task and lets it run its own loop. See Workers.