Skip to main content
Pullfrog uses a curated set of model aliases that automatically resolve to the latest version at runtime — like a latest tag on npm. You select a model in the console, and Pullfrog handles the rest.

Selecting a model

Pick a model from the dropdown in Agent > Model in the Pullfrog console.
Model selector in the Pullfrog console
Each alias (e.g. “Claude Opus”) resolves to a concrete, versioned model at runtime (e.g. anthropic/claude-opus-4-6). When a new generation ships, Pullfrog bumps the underlying version — your configuration stays stable. The UI shows which API keys are required for each model. After selecting a model, the API key row tells you exactly which secret to add.
API keys must be added both as a GitHub secret and mapped into your pullfrog.yml workflow env: block. See Keys for full setup instructions.
Models marked Free don’t require any API key — they work out of the box. See free models for the full list.

Model resolution

When a run starts, Pullfrog resolves which model to use in this order:
  1. model action input — set in your workflow file or via the console. This is the recommended way to select a model.
  2. Auto-select — Pullfrog queries available models (via OpenCode’s opencode models command) and picks the best curated match based on your API keys.
  3. Provider default — if no curated match is found, OpenCode picks a model on its own.
Model specifiers use the format from models.dev (e.g. anthropic/claude-opus-4-6). Pullfrog’s alias registry maps stable slugs like anthropic/claude-opus to these specifiers and keeps them up to date. During auto-select, Pullfrog prefers preferred models (the top-tier pick for each provider, marked in the alias registry). If no preferred model is available, it falls back to any curated match, then to OpenCode’s own default.

Supported providers

ProviderAPI key env var
AnthropicANTHROPIC_API_KEY
OpenAIOPENAI_API_KEY
GoogleGOOGLE_GENERATIVE_AI_API_KEY or GEMINI_API_KEY
xAIXAI_API_KEY
DeepSeekDEEPSEEK_API_KEY
Moonshot AIMOONSHOT_API_KEY
OpenCodeOPENCODE_API_KEY (not required for free models)
OpenRouterOPENROUTER_API_KEY

Routers

OpenRouter and OpenCode are treated as providers like any other — they appear in the model selector with their own set of aliases. The UI gives you curated aliases for each router (e.g. OpenRouter’s “Claude Opus” resolves to openrouter/anthropic/claude-opus-4.6). If you need to pin a specific model version instead of using the rolling alias, set the model action input to the exact models.dev specifier:
jobs:
  pullfrog:
    runs-on: ubuntu-latest
    steps:
      - name: Run agent
        uses: pullfrog/pullfrog@v0
        with:
          prompt: ${{ inputs.prompt }}
          model: openrouter/anthropic/claude-sonnet-4.6
        env:
          OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}