Back to Continue

How to Configure OpenRouter with Continue

docs/customize/model-providers/top-level/openrouter.mdx

1.5.453.3 KB
Original Source
<Tip> **Discover OpenRouter models [here](https://continue.dev/openrouter)** </Tip> <Info> Get an API key from [OpenRouter](https://openrouter.ai/keys) </Info> <Tabs> <Tab title="YAML"> ```yaml title="config.yaml" name: My Config version: 0.0.1 schema: v1

models: - name: <MODEL_NAME> provider: openrouter model: <MODEL_ID> apiBase: https://openrouter.ai/api/v1 apiKey: <YOUR_OPEN_ROUTER_API_KEY>

</Tab>
<Tab title="JSON (Deprecated)">
```json title="config.json"
{
  "models": [
    {
      "title": "<MODEL_NAME>",
      "provider": "openrouter",
      "model": "<MODEL_ID>",
      "apiBase": "https://openrouter.ai/api/v1",
      "apiKey": "<YOUR_OPEN_ROUTER_API_KEY>"
    }
  ]
}
</Tab> </Tabs> <Info> **Check out a more advanced configuration [here](https://continue.dev/openrouter/qwen3-coder?view=config)** </Info>

Optional configuration

OpenRouter allows you configure provider preferences, model routing configuration, and more. You can set these via requestOptions.

For example, to prevent extra long prompts from being compressed, you can explicitly turn off Transforms:)

<Tabs> <Tab title="YAML"> ```yaml title="config.yaml" name: My Config version: 0.0.1 schema: v1

models: - name: <MODEL_NAME> provider: openrouter model: <MODEL_ID> requestOptions: extraBodyProperties: transforms: []

</Tab>
<Tab title="JSON (Deprecated)">
```json title="config.json"
{
  "models": [
    {
      "title": "<MODEL_NAME>",
      "provider": "openrouter",
      "model": "<MODEL_ID>",
      "requestOptions": {
        "extraBodyProperties": {
          "transforms": []
        }
      }
    }
  ]
}
</Tab> </Tabs>

Model Capabilities

OpenRouter models may require explicit capability configuration because the proxy doesn't always preserve the function calling support of the original model.

<Info> Continue automatically uses system message tools for models that don't support native function calling, so Agent mode should work even without explicit capability configuration. However, you can still override capabilities if needed. </Info>

If you're experiencing issues with Agent mode or tools not working, you can add the capabilities field:

<Tabs> <Tab title="YAML"> ```yaml title="config.yaml" name: My Config version: 0.0.1 schema: v1

models: - name: <MODEL_NAME> provider: openrouter model: <MODEL_ID> apiBase: https://openrouter.ai/api/v1 apiKey: <YOUR_OPEN_ROUTER_API_KEY> capabilities: - tool_use # Enable function calling for Agent mode

</Tab>
<Tab title="JSON (Deprecated)">
```json title="config.json"
{
  "models": [
    {
      "title": "<MODEL_NAME>",
      "provider": "openrouter",
      "model": "<MODEL_ID>",
      "apiBase": "https://openrouter.ai/api/v1",
      "apiKey": "<YOUR_OPEN_ROUTER_API_KEY>",
      "capabilities": {
        "tools": true, // Enable function calling for Agent mode
      }
    }
  ]
}
</Tab> </Tabs> <Note> Not all models support function calling. Check the [OpenRouter models page](https://openrouter.ai/models) for specific model capabilities. </Note>