Skip to content

Models & secrets

Lunen calls models from three providers — OpenAI, Anthropic, and Google Gemini — using API keys your organization supplies. Keys live in a per-organization vault, are write-only from the moment they are saved, and are the only credential source: there is no environment-variable fallback and no key baked into the platform.

Updated 30 July 2026 · 5 min read

Managing keys

Settings → Secrets holds one key slot per provider: OpenAI API Key, Anthropic API Key, Google Gemini API Key. Paste a key and save; the page thereafter shows only Configured and the date it last changed. To rotate a key, delete it and add the new one — the value itself can never be read back.

Key permissions are per provider: manage, list, use, and delete each resolve against the specific provider’s secret, so a role can, for example, see that OpenAI is configured without being able to use Anthropic. Every save and delete lands in the audit log as secret.upsert or secret.delete — with the key value redacted.

Note

Keys are not validated on save. A wrong or unfunded key surfaces at first use as a provider error on the run — if agents suddenly report quota or credential errors, the Secrets page is the first place to look.

Which providers an agent may use

A session is authorized for the intersection of two sets: providers with a configured key, and providers the acting member holds secret.use on. That list is fixed when the session is created and re-checked when a Task Agent is saved and again at every scheduled dispatch — a schedule whose owner loses secret.use on a required provider stops running with a clear error rather than borrowing someone else’s access.

The model catalog

Fourteen models are supported. All of them can call tools; audio and video attachments are supported on Google models only.

ProviderModels
OpenAIGPT-5.5 · GPT-5.4 · GPT-5.4 mini · GPT-5.4 nano · GPT-5.3 Instant
AnthropicClaude Opus 4.8 · Claude Opus 4.6 · Claude Sonnet 4.6 · Claude Sonnet 4.5 · Claude Haiku 4.5
GoogleGemini 2.5 Pro · Gemini 3.5 Flash · Gemini 2.5 Flash · Gemini 3.1 Flash Lite

Most models expose a reasoning effort control (Low / Med / High / Max) alongside the model picker; models without a reasoning mode simply hide it.

How a model gets chosen

Lunen resolves a model per role — planning, task execution, conversation, and internal utility work each have a sensible default per provider — and lets people override at three levels, most specific first:

  1. Per turn — the model picker in the chat composer.
  2. Per agent — the Execution Model field on an agent’s blueprint panel, independent of the model used during planning.
  3. Per user — the Agent defaults section under Preferences, which sets a member’s planning and chat defaults.

If none of those apply, the role default for the organization’s configured providers is used. Resolution fails closed: with no key configured anywhere, agents stop with an explicit error instead of silently falling back to a default provider.

Warning

Provider-native web search is executed inside the provider, not through an MCP server — it bypasses your organization’s tool policies and is not auditable the way MCP tool calls are. If that matters for your governance posture, prefer a search MCP server you can policy-gate.

Other secrets

Two other kinds of secret share the same vault but are managed elsewhere: MCP server credentials and OAuth clients (from the MCP Registry and Connected Services), and per-trigger webhook signing keys (from a Task Agent’s webhook triggers). Like provider keys, none of them are ever readable back out of the product.