Models
How the agent gets a model, the credentials Sinatra supports, and the models you can pick.
The agent's intelligence comes from the LLM behind it. Sinatra is the orchestration layer; you choose which model runs and how it is paid for.
Two ways to provide a model
Bring your own key. Paste an Anthropic or OpenRouter API key, or connect a Codex / ChatGPT subscription for OpenAI models. You pay your provider directly, and your free task allowance is higher (see billing).
Use Sinatra's managed key. Let Sinatra route the model on its own keys. Managed usage is metered at the provider's exact cost with no markup, drawn from a prepaid balance. The free tier runs on Sinatra's Codex subscription.
You can connect more than one. The agent picks a default from whatever you have connected, and you can override it per repo in .sinatrarc.
Credentials
| Credential | How you connect it | Reaches |
|---|---|---|
| Anthropic | Paste an API key | Claude models, directly |
| OpenRouter | Paste an API key | Claude models routed through OpenRouter |
| Codex / ChatGPT | Connect via OAuth | OpenAI models |
| Managed | Nothing to connect | Sinatra routes on its own keys |
There is no pasted-key option for OpenAI. OpenAI models run through a connected Codex / ChatGPT subscription.
Pasted keys are encrypted per workspace with envelope encryption, and the encryption is bound to the workspace, so a key stored in one workspace cannot be decrypted in another.
Engines
An engine is the agent harness that runs inside the sandbox. The engine decides how model names are written.
claude-code(default) uses short Anthropic names likeopus.opencodeuses fullprovider/modelslugs likeanthropic/claude-opus-4-8and is how you reach OpenRouter, OpenAI, and other providers.
The engine is fixed for the life of a workstream, and a model must belong to the engine you picked. Set both in .sinatrarc.
Supported models
claude-code engine (Anthropic key)
agent.model | Effort levels |
|---|---|
sonnet | low, medium, high, max |
opus | low, medium, high, xhigh, max |
opus-4-8 | low, medium, high, xhigh, max |
haiku | none |
opencode engine (full slugs)
agent.model | Credential | Effort levels |
|---|---|---|
anthropic/claude-sonnet-4-6 | Anthropic | low, medium, high, max |
anthropic/claude-opus-4-7 | Anthropic | low, medium, high, xhigh, max |
anthropic/claude-opus-4-8 | Anthropic | low, medium, high, xhigh, max |
anthropic/claude-haiku-4-5 | Anthropic | none |
openrouter/anthropic/claude-opus-4.8 | OpenRouter | low, medium, high |
openai/gpt-5.4 | Codex | low, medium, high, xhigh |
openai/gpt-5.4-mini | Codex | low, medium, high, xhigh |
openai/gpt-5.5 | Codex | low, medium, high, xhigh |
Default model
If you do not set agent.model in .sinatrarc, Sinatra picks one from your connected credentials:
- A connected Codex subscription uses
openai/gpt-5.4on theopencodeengine. - A single Anthropic key uses
opusonclaude-code. - A single OpenRouter key uses
openrouter/anthropic/claude-opus-4.8onopencode. - With several keys connected, Sinatra picks the first provider that has a usable default.
The managed free tier runs on openai/gpt-5.4 through Sinatra's Codex subscription.
Effort
agent.effort controls how hard the model thinks, from low to max. Not every model supports every level, so Sinatra clamps your choice down to the closest level the model actually honors instead of erroring. Models with no effort levels (such as haiku) ignore the setting. The exact range per model is in the tables above.