Skip to main content
OpenRouter provides a unified API that routes requests to many models behind a single endpoint and API key. It is OpenAI-compatible, so most OpenAI SDKs work by switching the base URL.

Getting started

1

Get your API key

Create an API key at openrouter.ai/keys.
2

Run onboarding

fluffbuzz onboard --auth-choice openrouter-api-key
3

(Optional) Switch to a specific model

Onboarding defaults to openrouter/auto. Pick a concrete model later:
fluffbuzz models set openrouter/<provider>/<model>

Config example

{
  env: { OPENROUTER_API_KEY: "sk-or-..." },
  agents: {
    defaults: {
      model: { primary: "openrouter/auto" },
    },
  },
}

Model references

Model refs follow the pattern openrouter/<provider>/<model>. For the full list of available providers and models, see /concepts/model-providers.
Bundled fallback examples:
Model refNotes
openrouter/autoOpenRouter automatic routing
openrouter/moonshotai/kimi-k2.6Kimi K2.6 via MoonshotAI
openrouter/openrouter/healer-alphaOpenRouter Healer Alpha route
openrouter/openrouter/hunter-alphaOpenRouter Hunter Alpha route

Image generation

OpenRouter can also back the image_generate tool. Use an OpenRouter image model under agents.defaults.imageGenerationModel:
{
  env: { OPENROUTER_API_KEY: "sk-or-..." },
  agents: {
    defaults: {
      imageGenerationModel: {
        primary: "openrouter/google/gemini-3.1-flash-image-preview",
      },
    },
  },
}
FluffBuzz sends image requests to OpenRouter’s chat completions image API with modalities: ["image", "text"]. Gemini image models receive supported aspectRatio and resolution hints through OpenRouter’s image_config.

Authentication and headers

OpenRouter uses a Bearer token with your API key under the hood. On real OpenRouter requests (https://openrouter.ai/api/v1), FluffBuzz also adds OpenRouter’s documented app-attribution headers:
HeaderValue
HTTP-Refererhttps://fluffbuzz.com
X-OpenRouter-TitleFluffBuzz
X-OpenRouter-Categoriescli-agent
If you repoint the OpenRouter provider at some other proxy or base URL, FluffBuzz does not inject those OpenRouter-specific headers or Anthropic cache markers.

Advanced configuration

On verified OpenRouter routes, Anthropic model refs keep the OpenRouter-specific Anthropic cache_control markers that FluffBuzz uses for better prompt-cache reuse on system/developer prompt blocks.
On supported non-auto routes, FluffBuzz maps the selected thinking level to OpenRouter proxy reasoning payloads. Unsupported model hints and openrouter/auto skip that reasoning injection.
OpenRouter still runs through the proxy-style OpenAI-compatible path, so native OpenAI-only request shaping such as serviceTier, Responses store, OpenAI reasoning-compat payloads, and prompt-cache hints is not forwarded.
Gemini-backed OpenRouter refs stay on the proxy-Gemini path: FluffBuzz keeps Gemini thought-signature sanitation there, but does not enable native Gemini replay validation or bootstrap rewrites.
If you pass OpenRouter provider routing under model params, FluffBuzz forwards it as OpenRouter routing metadata before the shared stream wrappers run.

Model selection

Choosing providers, model refs, and failover behavior.

Configuration reference

Full config reference for agents, models, and providers.