Models
Pick the model per question. The evidence does not change.
Every vendor reads the same read-only checks through one interface. Ask a second model about a finding you doubt, let an administrator decide who may reach which tier, and cap what a turn can spend before it starts.
Anthropic
3 models offered: Claude Opus 5, Claude Sonnet 5 and Claude Haiku 4.5.
- OpenAI
- OpenAI-compatible
Also supported, with no key on this instance yet. Their models are listed the moment one is added.
Read from this instance’s catalogue each time the page loads.
The picker and the catalogue
Bring the model to the evidence.
The same investigation can run on Claude, GPT or Gemini, or on any OpenAI-compatible endpoint. Pick per conversation, ask a second vendor about a finding you do not believe, and let an administrator decide which tiers each account may reach.
One interface, three vendors, plus the long tail
Adapters for Anthropic, OpenAI and Google, and for any OpenAI-compatible API. Together, Groq, vLLM or a self-hosted model is a base URL and a row.
Prices are data, not constants
The catalogue lives in Postgres: input, cached-input and output prices, context window, capabilities, tier, minimum plan, credit multiplier, fallback and badge. A model without tools cannot drive an investigation, and that is checked before the call.
Fallback that admits it happened
Each model has a fallback chain. It is walked on a 429, a 5xx or a refusal, and only if nothing has streamed yet. When it happens, you are told.
Reasoning stays with its author
Thinking blocks are replayed only to the exact model that produced them. One system prompt drives every vendor, byte-identical on every turn so it stays behind the prompt cache.
An illustration of the picker. What it lists is read from the catalogue each time the page loads.
The fallback notice, as the console shows it.
| Model | Tier | Minimum plan | Multiplier | Falls back to |
|---|---|---|---|---|
| Claude Opus 5 | frontier | Team | 3× | Claude Sonnet 5 |
| Claude Sonnet 5 | balanced | Starter | 3× | Claude Haiku 4.5 |
| Claude Haiku 4.5 | fast | Free | 3× | none |
Three catalogue rows as an administrator edits them. Each carries a 3× credit multiplier, and prices sit in the same rows.
Spend control
Usage you can actually govern.
Billing platforms meter usage; they do not gate it. By the time a meter event is posted the tokens are already bought. So the balance, the check and the circuit breaker live here, in front of the model call.
- 1
Reserve before the first call
Every turn is reserved against a pessimistic estimate before any provider is called. No balance, no call.
- 2
Settle each call at its exact cost
Each provider call is settled at what it really cost. One credit is US$0.01 of retail model value.
- 3
Keep a ledger you can defend
The ledger is append-only, and the balance can be recomputed from its entries at any time to catch drift.
A runaway guard stops a turn once its charge passes four times the estimate made before it started.
Steps per turn at most. Then it stops and says: “Reached the 24-step limit for one turn. Ask a follow-up to continue from here.”
A refused turn says exactly why:
org_suspendedsubscription_unpaidno_creditsdaily_capuser_daily_captoo_many_runsmodel_not_allowedturn_ceilingFind out what is actually running on your machines.
One binary, one question, one honest answer, including the parts it could not see.
curl -fsSL https://guardyn.dev/install.sh | shKeep it running with launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/dev.guardyn.agent.plist
irm https://guardyn.dev/install.ps1 | iexNeeds no administrator rights. It installs under your own AppData.
curl -fsSL https://guardyn.dev/install.sh | shKeep it running with sudo systemctl enable --now guardyn-agent
guardyn-agent enroll --server https://guardyn.dev --token gdn_enrol_…