# Openrouter

Design, build, debug, and optimize OpenRouter API integrations.

- Repository: https://github.com/davidondrej/skills (4238 stars)
- Category: Design
- License: MIT
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add davidondrej/skills --skill openrouter -g -a claude-code -y`
Codex: `npx skills add davidondrej/skills --skill openrouter -g -a codex -y`
Cursor: `npx skills add davidondrej/skills --skill openrouter -g -a cursor -y`
Gemini CLI: `npx skills add davidondrej/skills --skill openrouter -g -a gemini-cli -y`

## Description

Design, build, debug, and optimize OpenRouter API integrations. Use for any OpenRouter API work, including models, reasoning, routing, media, tools, structured output, cost, or performance.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# OpenRouter

Make model behavior explicit. Preserve the user's quality, cost, privacy, and reliability requirements across every route and retry.

## Before changing configuration

1. Inspect the actual outgoing request, SDK version, existing configuration, and user preferences. Redact credentials and content. A setting in a UI or config file does not prove the SDK sends it.
2. Verify exact model IDs and live capabilities through the [models API](https://openrouter.ai/api/v1/models). Inspect the selected model's provider endpoints too. Check input/output modalities, context and output limits, supported parameters, reasoning options, prices, and provider availability for **both primary and fallback models**.
3. Choose and record an explicit reasoning setting for each reasoning model. Use the user's requested effort. If unspecified, choose a supported value for the task and state the choice; do not silently inherit a provider default or impose one effort on every model. Read [reasoning and output](references/reasoning-and-output.md) before setting these fields.
4. Set an output ceiling, total deadline, bounded retry policy, and cost limits appropriate to the workload. Reasoning uses output tokens too. A model's context window is not its maximum output length.
5. Read the relevant reference below. Consult current official docs for unfamiliar fields; do not invent model IDs, provider slugs, parameter support, or SDK syntax.

## Rules that prevent expensive mistakes

The rest: https://github.com/davidondrej/skills/blob/HEAD/skills/ops-and-setup/openrouter/SKILL.md
