Concepts

Bring your own model

Every Run names an agent connection — and the connection decides three things you should always be able to see: which model runs, who pays, and how honest the cost cap can be. So a cost-aware builder brings their own model: their own API key, a cheaper compatible provider, or their existing subscription where the vendor sanctions it.

Fixback runs no model on your behalf and marks up nothing. A connection is your key (or your plan), your model, on your bill. The Ship dialog shows the connection it will use, its billing line (“Your Anthropic key”), and its cost-cap word before you Ship — and you can switch connection for a single Run.

How a connection works

An agent connection is an org-level object you add in Settings → Agent connections. It carries a provider, an auth kind, an optional endpoint URL, and a pinned model from the curated list — never a bare secret in the UI. A Verify makes one cheap model call to prove the key or endpoint works and pin the model. Each Project points a default at one connection; the Ship dialog shows it and lets you switch for a Run.

The connection kinds

These are every connection kind Fixback models, what each costs, who pays, and the cost-cap word each gets. The availability column is enforced in code, not just described here: a kind marked flag-gated or closed is not offered until it is turned on.

ConnectionWhere it runsModelWho paysCap wordAvailability
Anthropic key
your API key
Hosted · Claude harnessClaude Opus 5 / Sonnet 5Your Anthropic keyestimatedOffered by default
OpenAI key
your API key
Hosted · Codex harnessGPT-5.5Your OpenAI keycomputedOffered by default
Anthropic-compatible endpoint
base URL + key
Hosted · Claude harnessYour endpoint's model (e.g. Z.ai GLM 4.6)Your Z.ai key (named by the model's vendor)estimated*Offered by default
OpenAI-compatible endpoint
base URL + key
Hosted · Codex harnessYour endpoint's model (e.g. Z.ai GLM 4.6)Your Z.ai key (named by the model's vendor)computedOffered by default
Claude Code (cloud)
pre-fill URL, no credential
Dispatch · your own Claude sessionYour subscription's modelYour Claude subscriptionn/aOffered by default — a Handoff, not a Run (no Run row, no Runs-page card)
Claude Routine
routine-scoped token
Dispatch · your own Claude sessionYour subscription's modelYour Claude subscriptionn/aFlag-gated — RUNS_DISPATCH_ROUTINES (off in production)
Codex plan
subscription credential
Hosted (Docker) · Codex harnessYour Codex/ChatGPT plan's modelYour Codex plann/aFlag-gated — RUNS_SUBSCRIPTION_CONNECTIONS (off in production); advanced, warns
Fixback metered
Fixback's key
HostedFixback's modelFixback (metered)hardClosed — modelled, refused on create; no reselling in v1

* A compatible endpoint's cap word follows its harness, but its realized Run cost is always priced from Fixback's shared price table (computed) rather than the harness's native-vendor estimate — the vendor's rates differ from the harness's own.

The four cap words

A Run's wall-clock, turn, and no-activity caps are always hard — the runner enforces them itself, on every connection. The word below is only about the dollar cap, and it is deliberately honest about what actually enforces it: we never call an estimate a “hard cap”.

  • estimated — a Claude-harness Run on your own key. The dollar cap is a client-side budget the harness aims at (maxBudgetUsd); it can overshoot slightly.
  • computed — a Codex-harness Run (and any compatible-endpoint Run's realized cost). The harness reports tokens; Fixback prices them from its own price table, and the runner ends the Run at the computed cap.
  • n/a — a subscription or a dispatch Run. It runs on your plan, so there is no per-Run dollar figure and no meter to show.
  • hard — reserved for the Fixback metered connection, where a per-Run gateway key with a real dollar budget enforces the cap server-side. That connection is modelled but disabled in v1 (Fixback does not resell model usage yet), so no v1 connection shows hard.

Subscription connections are different — read this first

A subscription credential (a Codex/ChatGPT plan) cannot be brokered at the sandbox edge the way an API key can, so it has to live inside the sandbox, next to the code your install and test scripts run. The warning you accept when you connect one, and again on every Ship, is exact — “Your repository's install and test scripts run next to this credential and could read it.”

See Built-in protections for exactly what the sandbox still guarantees on a subscription connection (isolation and a scrubber that redacts the credential from everything that leaves) — and why an api_key connection has nothing to steal in the first place. Because of that residual risk, subscription connections are an advanced, opt-in mode, they ship only behind a flag, and a Public-tier Issue can never Ship on one.