MachineMachine
Your project

Models

How Machine picks a model, the models Machine manages, and how billing works for managed models, your own keys, and your own plans.

Machine runs each session on a model. This page explains the kinds of model ids, how Machine picks a model automatically, how each route is billed, and which models Machine manages today.

This page applies to projects with the LLM gateway on. LLM gateway is an experimental feature flag, and it is on by default for cloud projects. Check or toggle it in Settings → Experimental.

Model id shapes

A model id has one of five shapes:

ShapeExampleWho supplies accessWho pays
Managed — a bare idgrok-4.6, claude-sonnet-5.5MachineYour Machine credits
BYOK — provider/modelanthropic/claude-opus-4-8Your provider keyYour provider account
ChatGPT plan — codex/codex/gpt-5.6-solYour ChatGPT plan, connected onceYour ChatGPT plan
Claude subscription — claude-subscription/claude-subscription/opusYour Claude Pro or Max planYour Claude plan
Cursor plan — cursor/cursor/ plus an id from your Cursor catalogYour Cursor planYour Cursor plan

The three plan shapes cost zero Machine credits. Usage counts against your own plan's limits instead.

Connect a BYOK key in Settings → Models → API keys, or set the provider's env var directly as a secret. Plans connect from the same API keys list: ChatGPT with Connect ChatGPT on the OpenAI row, and Claude and Cursor as described below.

Use your Claude subscription

Machine runs the unmodified Claude Code CLI inside your session's workspace, signed in to your own Claude account. The login stays in that workspace.

  1. Open Settings → Models → API keys, find the Anthropic row, and click Connect Claude subscription.
  2. Click Open Anthropic sign-in and log in with your Claude account.
  3. Anthropic shows a code. Paste it into the dialog and click Submit code.

The connect button shows only to people who can edit the project. Connecting needs a workspace to sign in. If no session is open on the page, Machine uses your most recent session's workspace and wakes it if needed. You can connect only from your own sessions — your Claude login never lands in a teammate's workspace.

Each session signs in on its own. The project remembers that you connected Claude, but a new session's workspace holds no login yet. In that session the model picker shows a Sign in to use Claude here row in place of the Claude models. Pick it to sign that session in. The login survives stops and restarts of the session.

The subscription models appear in the picker as, for example, Claude Opus 5.5 (Subscription), with a Sub tag instead of a price:

Picker nameModel id
Claude Fable 5.1 (Subscription)claude-subscription/fable
Claude Opus 5.5 (Subscription)claude-subscription/opus
Claude Sonnet 5.5 (Subscription)claude-subscription/sonnet
Claude Haiku 4.5 (Subscription)claude-subscription/haiku

A Claude subscription request never falls back to a Machine-managed model. If your plan runs out, the request fails with an error instead of spending your credits.

claude.ai connectors

The sign-in dialog has a switch, Use my claude.ai connectors in this session. It is off by default, and each new session starts with it off. When you turn it on, Claude can use the connectors on your claude.ai account (Gmail, Drive, and others) in that session. Those connectors run outside Machine's approvals and activity log, including in scheduled runs. Leave it off unless you need them.

Use your Cursor plan

  1. Open Settings → Models → API keys and find the Cursor row.
  2. Choose Sign in with Cursor to log in on cursor.com, or Paste a key to use an API key from your Cursor dashboard.

Sign-in runs inside one of your sessions, so open a session in the project first. After that, your Cursor models appear in the model picker in every one of your sessions in the project. Only you see them — teammates connect their own Cursor.

Each Cursor model is named after Cursor's own name with via Cursor added, for example Auto via Cursor. Machine bills these turns at $0. Each step runs Cursor's own harness, which uses about 20–40k input tokens of your Cursor plan. Turns go to Cursor under your Cursor account's privacy settings. Turn on Privacy Mode in Cursor if you do not want Cursor to train on them.

How auto picks a model

Set no model, and Machine resolves one through five layers, in order. (The id auto covers this same behavior, but it is not yet a selectable option in the model picker.)

  1. An explicit pin — a session, channel, or trigger's own model: field.
  2. The agent's default for this project.
  3. The project's default.
  4. The account's default.
  5. The platform default.

Machine uses the first layer that has a value it can still serve. A saved default that stops working — a disconnected key, a retired model — is skipped automatically. A session never dies from a stale default. See the manifest reference for the trigger model: field.

Connected providers use zero Machine credits

Machine sends BYOK requests only through your connected provider credentials. Machine records token usage for observability but applies zero markup and deducts zero Machine credits. If your provider returns a rate-limit, quota, or billing error, the request fails with that provider error instead of silently switching to a managed model.

Reasoning effort

The effort control in the composer saves a reasoning effort for the selected model on this project. Machine sends that saved effort with every request to that model.

The saved effort wins over the request. If you call the gateway directly and send reasoning_effort (or reasoning.effort), a saved effort for that model replaces your value. With no saved effort, your value is used. Either way, Machine clamps the effort to the levels the model publishes. Temperature, top_p, and max tokens work the other way round: a value in the request wins over the saved one.

To see what a request really sent, open Settings → Models → Logs and pick the request. Its Reasoning effort row shows the effort that was requested, whether it came from the request or the project setting, and what was sent. For example, max requested · not sent (the model has no such level) means the model has no max level, so no effort went upstream. Requests logged before this row existed show nothing.

Per-project model enablement

The project controls which models its pickers offer. By default, the newest model of each family is offered automatically. Machine-managed models and any model your project's defaults or routing policy reference are always offered — a guard never prunes them.

You can override the default for individual models in Settings → Models → Models, or from the Manage models button in the model picker. An exception is stored per project and takes effect immediately. The session model picker and the command palette hide anything you turn off; new models stay on by default as the catalog grows.

Enablement governs what is offered, not what is served: a request that names a disabled model outright (for example through the raw API) still runs. The project's default model cannot be turned off — set a different default first.

Shared, not private, keys

A connected provider key applies to the whole project. There is no private, per-user key — setting a personal override for a provider key fails with a llm_credentials_project_wide error. Update the shared key on the secrets page instead.

Plan connections work differently. A Cursor connection belongs to the person who connected it, and a Claude subscription login lives in each session's own workspace.

Machine-managed models

These are the managed models in Machine's built-in catalog, grouped by tier. Use the id in a model: field or an API request. Machine routes every managed model through OpenRouter and bills it to your Machine credits. The model picker is the live view: a deployment can change the list, and your project's enablement settings can hide models from the picker.

When nothing else sets a model, the built-in platform default is Claude Haiku 4.5 (claude-haiku-4.5). A deployment can set a different platform default.

ModelIdTierContextImages
Claude Fable 5claude-fable-5Flagship1MYes
Claude Fable 5.1claude-fable-5.1Flagship1MYes
Claude Opus 4.8claude-opus-4.8Flagship1MYes
Claude Opus 5claude-opus-5Flagship1MYes
Claude Opus 5.5claude-opus-5.5Flagship1MYes
Gemini 4 Argongemini-4-argonFlagship1MYes
GLM 5.3glm-5.3Flagship1MNo
GLM 5.3 Primeglm-5.3-primeFlagship1MNo
GPT-5.5 Progpt-5.5-proFlagship922kYes
GPT-5.6 Solgpt-5.6-solFlagship1.05MYes
GPT-5.6 Sol Progpt-5.6-sol-proFlagship1.05MYes
GPT-6 Astragpt-6-astraFlagship1.05MYes
GPT-6 Astra Progpt-6-astra-proFlagship1.05MYes
GPT-6 Solgpt-6-solFlagship1.05MYes
GPT-6 Sol Progpt-6-sol-proFlagship1.05MYes
GPT-6.1 Solgpt-6.1-solFlagship1.05MYes
GPT-6.1 Sol Progpt-6.1-sol-proFlagship1.05MYes
Grok 4.5grok-4.5Flagship500kYes
Grok 4.6grok-4.6Flagship500kYes
Grok 4.7grok-4.7Flagship500kYes
InklinginklingFlagship524kYes
Kimi K3kimi-k3Flagship1MYes
Kimi K3.1 Prokimi-k3.1-proFlagship1MYes
Muse Wondermuse-wonderFlagship1MYes
Qwen3.8 Max Primeqwen3.8-max-primeFlagship1MYes
Claude Haiku 4.5claude-haiku-4.5Balanced200kYes
Claude Sonnet 4.6claude-sonnet-4.6Balanced1MYes
Claude Sonnet 5claude-sonnet-5Balanced1MYes
Claude Sonnet 5.5claude-sonnet-5.5Balanced1MYes
DeepSeek V4 Flashdeepseek-v4-flashBalanced1MNo
DeepSeek V4 Prodeepseek-v4-proBalanced1MNo
DeepSeek V4 Pro 0813deepseek-v4-pro-0813Balanced1MNo
Gemini 3.1 Progemini-3.1-proBalanced1MYes
Gemini 3.5 Flashgemini-3.5-flashBalanced1MYes
Gemini 3.6 Flashgemini-3.6-flashBalanced1MYes
Gemini 3.7 Flashgemini-3.7-flashBalanced1MYes
Gemini 3.8 Flashgemini-3.8-flashBalanced1MYes
GLM 5.2glm-5.2Balanced1MNo
GPT-5.5gpt-5.5Balanced1.05MYes
GPT-5.6 Terragpt-5.6-terraBalanced1.05MYes
GPT-5.6 Terra Progpt-5.6-terra-proBalanced1.05MYes
GPT-6.1 Terragpt-6.1-terraBalanced1.05MYes
GPT-6.1 Terra Progpt-6.1-terra-proBalanced1.05MYes
Grok 4.20grok-4.20Balanced2MYes
Kimi K2.6kimi-k2.6Balanced262kYes
MiMo V2.6 Promimo-v2.6-proBalanced1MYes
MiMo V2.6 Pro UltraSpeedmimo-v2.6-pro-ultraspeedBalanced1MYes
MiniMax M3minimax-m3Balanced1MYes
Mistral Large 4mistral-large-4Balanced524kYes
Muse Spark 1.1muse-spark-1.1Balanced1MYes
Muse Spark 1.2muse-spark-1.2Balanced1MYes
Muse Spark 1.3muse-spark-1.3Balanced1MYes
Muse Spark Openmuse-spark-openBalanced1MYes
Qwen3.7 Maxqwen3.7-maxBalanced1MNo
Qwen3.8 Maxqwen3.8-maxBalanced1MYes
Claude Haiku 5.5claude-haiku-5.5Fast1MYes
DeepSeek V4 Flash 0731deepseek-v4-flash-0731Fast1MNo
DeepSeek V4.1 Flash 1017deepseek-v4.1-flash-1017Fast1MYes
Gemini 3.5 Flash Litegemini-3.5-flash-liteFast1MYes
GLM 5.3 Flashglm-5.3-flashFast1MYes
GLM 5.3 FlashXglm-5.3-flashxFast1MYes
GLM 5.3 FlashX Legalglm-5.3-flashx-legalFast1MYes
GPT-5.6 Lunagpt-5.6-lunaFast1.05MYes
GPT-5.6 Luna Progpt-5.6-luna-proFast1.05MYes
GPT-6 Lunagpt-6-lunaFast1.05MYes
GPT-6 Luna Progpt-6-luna-proFast1.05MYes
GPT-OSS 20Bgpt-oss-20bFast131kNo
MiMo V2.6 Flashmimo-v2.6-flashFast1MYes
Nemotron 3.5 Super VLnemotron-3.5-super-vlFast262kYes

Context is the model's context window in tokens. Images says whether the model accepts image input.

On this page