Skip to content
Router One

Connect Router One to JetBrains AI Assistant as a custom OpenAI-compatible provider

JetBrains AI Assistant is the AI plugin for IntelliJ IDEA, PyCharm, WebStorm, GoLand and the other JetBrains IDEs. Its OpenAI-compatible third-party provider, part of the bring-your-own-key (BYOK) setup, sends AI Chat and assigned feature requests to Router One with your key: AI Assistant keeps the chat interface, MCP tool execution and its agent integrations, while the model calls behind replies, chat context collection and chat titles go to Router One. This guide targets IntelliJ IDEA, PyCharm, WebStorm and GoLand 2026.2.3 (builds 262.10968.x, released September 16 to 18, 2026) with AI Assistant plugin 262.10968.97 and the AI Assistant 2026.2 documentation, where the provider section is still marked Beta. JetBrains support states that this provider is unavailable and its settings are hidden when the IDE region is China Mainland, a restriction Router One cannot lift; Continue's JetBrains plugin takes its own base URL instead.

Check the plugin, region and key before you configure

The AI Assistant plugin is not bundled with the IDE: install it from Settings | Plugins | Marketplace by searching for AI Assistant, or with Install Plugin in the AI Chat tool window. JetBrains documents BYOK as working without a JetBrains AI subscription; features your provider's models cannot serve are then unavailable. Several conditions can hide or block the provider settings. In IDEs managed through JetBrains IDE Services or JetBrains Central, an administrator can set the AI provider and disallow third-party models. When the IDE region is China Mainland, JetBrains support has stated that BYOK integrations and OpenAI-compatible endpoints are not available and that the Third-party AI providers section is hidden; see the FAQs below. JetBrains support also asks users who are missing AI Assistant settings to confirm that the Terminal, MCP Server, Markdown and Git plugins are installed and enabled. Then create a dedicated Router One key for this IDE in the dashboard and pick a chat model ID from /models.

Configure JetBrains AI Assistant to use the Router One base URL

Open Settings | Tools | AI Assistant | Providers & API keys. In Third-party AI providers, set Provider to OpenAI-compatible, URL to https://api.router.one/v1 and API Key to the dedicated Router One key, then click Test Connection and wait for Connected. The URL is the base ending in /v1, the same shape as the value in JetBrains' own screenshot; AI Assistant adds the endpoint paths itself, so do not paste the full /chat/completions URL. Tool calling declares whether the model supports tools from your MCP servers: leave it cleared for the first text test and turn it on only after the model page confirms tool calling. In Model Assignment, choose a chat model for Core features and a faster, cheaper one for Instant helpers, then click Apply. AI Chat opens with an agent selected, so switch the mode selector to Chat, choose the Router One model in the model selector instead of Auto, and send a one-line message. Alternatively, on the AI Chat start screen click OpenAI-compatible, LM Studio, Ollama under Use Third-party provider, fill in Provider, Base URL, Key and Model, and click Continue; that screen has no Tool calling or Model Assignment fields, so set those in Settings afterward. The finished Settings values look like this:

ai-assistant-providers-and-api-keys
# Settings | Tools | AI Assistant | Providers & API keys

# Third-party AI providers
Provider:          OpenAI-compatible
URL:               https://api.router.one/v1
API Key:           sk-your-router-one-key
Tool calling:      cleared for the first text test
Test Connection -> Connected

# Model Assignment
Core features:     anthropic/claude-sonnet-5
Instant helpers:   google/gemini-3.8-flash
Context window:    64000 (AI Assistant default; documented for local models)

# AI Completion: the default Provider, JetBrains, uses the JetBrains AI service,
# so without JetBrains AI it gives no completions. Its OpenAI Compatible
# option needs a fill-in-the-middle or edit-prediction model, not a chat model.

# Apply, then AI Chat -> mode selector: Chat -> model: anthropic/claude-sonnet-5

What runs on the Router One key, and what does not

AI Assistant assigns models per feature. With only the OpenAI-compatible provider active, a feature either runs on a model you assigned or is unavailable. If JetBrains AI is also activated, third-party models take priority where they support a feature and the JetBrains AI service handles the rest; those requests never reach Router One. The 2026.2 documentation and plugin notes give this split:

AI Assistant featureModel it usesRuns on Router One?
AI Chat in Chat modeThe model picked in the chat's model selector; Core features sets the defaultYes
Commit message generationThe Core features modelYes per the docs; after the first generation, confirm the model ID in Dashboard → Logs
In-editor code generation, Generate documentationThe Core features model per the docs; the 262.10315 section of the plugin's release notes says in-editor generation now uses your default agentTest first: in-progress issue LLM-31284 reports no action when BYOK is the only activation
Other Core features (Generate tests, Resolve Git conflicts with AI, Perform Self-Review with AI)The Core features model when assignedTest first
Chat context collection, chat title generation, name suggestionsThe Instant helpers modelYes, as extra requests
Code completion, next edit suggestionsThe AI Completion section; JetBrains models by defaultNo: needs a fill-in-the-middle or edit-prediction model, not a chat model
JunieJetBrains AI in the 2026.2 activation table; not the OpenAI-compatible providerNo
Claude Agent, Codex (API-key activation)The Anthropic or OpenAI provider; Codex needs a key issued directly by OpenAINo

Request paths, model IDs and the Tool calling switch

The endpoint paths are not in JetBrains' documentation, but its tracker shows the OpenAI-compatible provider appending them to the URL: a JetBrains QA check logged GET {URL}/models for Test Connection (LLM-23557), and a report against a 2026.2 build logs Chat mode posting to {URL}/chat/completions (LLM-30699). Another open report (LLM-30768) describes AI Assistant using the Responses API with an OpenAI-compatible gateway. If a request fails with a 400 saying the model must be called via another path, AI Assistant used an endpoint that does not serve that model, for example Responses with a Claude or Gemini ID; pick a model whose Router One page lists that endpoint, such as a GPT-family ID for /v1/responses. In AI Assistant the fix is a different model, not a different provider: the Anthropic and OpenAI providers take only an API key and no URL, so they cannot point at Router One. Test Connection and the chat model selector read the model list from GET https://api.router.one/v1/models, which on Router One requires a valid key and returns the whole catalog. Connected therefore confirms the URL and key, not that a chat request with a particular model succeeds. The list also contains image-generation IDs such as gpt-image-2; assign only text models whose Router One page lists POST /v1/chat/completions. Channel IDs such as aws/claude-sonnet-5 are separate catalog products with their own rates, so choose one deliberately and check its model page. IDs keep their vendor prefix, for example anthropic/claude-sonnet-5, and JetBrains' own screenshot shows a slash-style ID in the Model field, so do not strip or add prefixes. JetBrains' tracker has open requests for manual model-ID entry (LLM-30975, LLM-31251), so plan on selecting IDs from the returned list. Tool calling is one setting for the whole provider, so turn it on only if every model you assign lists tool calling on its page. An open tracker issue, LLM-27583, into which an OpenAI-compatible report (LLM-29711) was merged, describes GPT-5.x models rejecting AI Assistant's Chat Completions requests that combine function tools with reasoning_effort; if an error names that combination, select another chat model instead of changing the URL or key.

Count the extra requests behind one chat turn

One question in AI Chat can reach Router One more than once: the reply itself, chat context collection and chat title generation on the Instant helpers model, and further model calls after each MCP tool result. Codebase Mode, which gathers project context automatically unless you disable it, raises input tokens; messages above the Message Trimming Threshold, a percentage of the model context window, have attachments trimmed, and the Context window field in Model Assignment, which the docs describe for local models, defaults to 64000 tokens. Commit message generation sends your diff. Give this IDE its own key with maxSpend so a runaway session stops with HTTP 402 while other keys keep working, and reconcile by time, model and request_id in Dashboard → Logs, where settlement can show pending briefly. The JetBrains AI widget's credit counters track JetBrains AI usage, not Router One charges. If Generate Commit Message with AI Assistant spins briefly and produces nothing, look for the request in Logs and in idea.log: an open issue (LLM-25031) reports that BYOK provider errors in that action are not shown in the IDE.

Which model ID should JetBrains AI Assistant send?

Copy the exact model ID from /models, preserving case, hyphens, and version suffixes; do not substitute a display name. Open its detail page and match the supported API endpoints, context window, and capabilities such as tool calling to the provider and features selected in JetBrains AI Assistant. A catalog listing does not mean the client can use every feature of that model. Give each client or application a dedicated API key with a maxSpend cap.

Which API protocol is JetBrains AI Assistant using?

OpenAI-compatible describes an interface format; it does not make Chat Completions (/v1/chat/completions), Responses (/v1/responses), and Anthropic Messages (/v1/messages) interchangeable. Check the installed client version, provider configuration, and actual request path against the model detail page and API compatibility fact sheet. A successful plain-text chat does not establish support for hosted tools, conversation state, or file-editing features.

Verify the JetBrains AI Assistant call in your request trace

Send a simple text request from JetBrains AI Assistant, then match its trace in Dashboard → Logs by time, model, and request_id: tokens, cost, latency, and status. Next, test streaming, tool calls, and multi-turn history separately. For failures, retain the actual request path, full error message, and request_id. If there is no matching log, check client configuration and connectivity before attributing the error to the gateway or upstream.

FAQ

Do I need a JetBrains AI subscription to use Router One in AI Assistant?

No. JetBrains documents BYOK with a third-party provider as working without a JetBrains AI subscription and billed by that provider, which here means your Router One wallet. Without JetBrains AI, the features your assigned models cannot serve are unavailable, including AI completion on the default JetBrains provider, which uses the JetBrains AI service; Junie does not run on the OpenAI-compatible provider either (see the next FAQ). You can also click Activate JetBrains AI on the same settings page: third-party models then take priority where they support a feature, and the remaining features use your JetBrains AI quota instead of the Router One key. In an IDE managed by your organization, an administrator can preset the provider or disallow third-party models.

Can Junie, Claude Agent or Codex in AI Chat run on the Router One key?

Not in the 2026.2 release. Junie does not use the OpenAI-compatible provider: the documentation's agent activation table lists Junie with JetBrains AI only, and JetBrains staff in the tracker (LLM-22660) have described Junie BYOK as limited to the OpenAI and Anthropic providers; the two sources differ on Junie BYOK itself, but neither routes Junie through the OpenAI-compatible provider. Activating Claude Agent with an API key selects the Anthropic provider, and Codex selects the OpenAI provider; the docs show both providers with an API key field and no URL field, and the Codex page says it needs a key issued directly by OpenAI. The OpenAI-compatible provider therefore serves Chat mode and the features assigned under Model Assignment. Agents you add through the Agent Client Protocol (More Agents) use their own configuration and billing rather than this provider, so check that agent's own settings. JetBrains staff have also said in LLM-22660 that custom models for Junie are on the roadmap, so recheck the activation table after upgrading.

The Third-party AI providers section is missing. What should I check?

Outside mainland China, JetBrains support names the region setting as the most common cause: check whether Settings | Appearance & Behavior | System Settings | Language and Region, or the region in your JetBrains Account profile, is set to China Mainland, where the section is hidden (see the mainland China FAQ below). JetBrains support also asks you to confirm that the Terminal, MCP Server, Markdown and Git plugins are installed and enabled (LLM-26514). In an IDE managed through JetBrains IDE Services or JetBrains Central, an administrator may control the provider and disallow third-party models.

AI Assistant's Test Connection fails or the model list stays empty. What should I check?

Compare the URL character by character with https://api.router.one/v1, with no /chat/completions, /models or other path after it. If the URL is right and the test still fails, re-copy the key: Router One's model list rejects a missing or wrong key with 401. Builds before 2026.1.2 could rewrite the version segment of a base URL or duplicate it into /v1/v1, which returns 404 (LLM-22911 and LLM-27317, both fixed), so update the IDE and the plugin before debugging further.

Which models can JetBrains AI Assistant use through the gateway?

Choose a current catalog model that supports both the endpoint and the features JetBrains AI Assistant uses. Check /models and the model detail page for the exact ID, current rates, and capabilities; a family name such as GPT or Claude is not a compatibility guarantee. A client that lists a model has only read the ID, from its own configuration or from GET /v1/models; verify an actual request too.

Models are listed, but requests fail with 400 or 404. What should I check?

Record the actual request path and error message, then check the exact model ID. A 400 can indicate invalid parameters, unsupported tools, or a model/endpoint mismatch; a 404 can indicate an incorrect path or missing resource, so it does not by itself establish that a model was retired. If the error says must be called via, use the named endpoint or select a model supported on the current endpoint. Do not add or remove /v1 or /chat/completions across all clients indiscriminately.

Does this setup work in mainland China?

Router One itself is reachable from mainland China without a VPN, but AI Assistant applies its own regional rules. JetBrains support has stated in its tracker that BYOK integrations, local models and other OpenAI-compatible endpoints are not available when the IDE region is China Mainland, that the Third-party AI providers section is hidden there, and that the BYOK option on the start screen in that region is a known UI error (LLM-26669, LLM-21270, LLM-26514). This setup is therefore not available in that region, and Router One cannot lift the restriction. Continue's JetBrains plugin takes its own base URL; see the Continue guide.

How do I debug a 401/402/403/429?

Match the request and error message in Dashboard → Logs. For 401, check whether the key was sent and is valid; for 402, check wallet balance and maxSpend; for 403, check key permissions and access restrictions. For 429, distinguish request/token limits from upstream throttling using the error details. Keep the request_id and follow the error-codes reference.