Docs · Configuration

Bring your own key

ShipFlow is model-agnostic. It routes model calls through OpenRouter, so a single API key unlocks dozens of providers — and your requests, spend, and data stay under your control.

Why bring your own key

Instead of paying a markup on someone else's inference, you point ShipFlow at your own account. You decide which model drafts PRDs and which model performs the deeper, more expensive review pass.

Tiered routing out of the box

ShipFlow uses a fast, cheap model for structured work (PRDs, task breakdowns, clarifying questions) and escalates to a stronger model only for code review — where it earns its cost.

Get a key

  1. 1

    Create an OpenRouter account

    Sign up at openrouter.ai and add credits (or connect your own provider keys inside OpenRouter).
  2. 2

    Generate an API key

    Open Keys → Create Key. Copy the value — you will only see it once.
  3. 3

    Add it to your environment

    Set the key as an environment variable so ShipFlow can use it for every model call.

Configure the environment

Add the following to your environment file:

# apps/web/.env.local

# Your OpenRouter API key — powers all ShipFlow model calls
OPENROUTER_API_KEY="sk-or-..."

That is the only key required to enable AI features. Restart the dev server (or redeploy) after changing it.

Choose your models

Model routing is centralized in one file, so swapping models is a one-line change rather than a search-and-replace across the codebase.

// apps/web/src/lib/ai/models.ts

export const models = {
  // Structured work: PRDs, task breakdowns, clarifying questions
  fast: openrouter("google/gemini-2.5-flash"),

  // Code review: needs to catch subtle bugs & security issues
  review: openrouter("anthropic/claude-sonnet-4.5"),
} as const;

Verify slugs before deploying

OpenRouter adds and deprecates models regularly. Check the current slugs and pricing on the OpenRouter models page before shipping to production.

Your data boundary

With your own key, model requests go directly to the provider you selected through OpenRouter. Your repositories are used only to generate reviews and artifacts for you — never to train models.