JetBrains AI Assistant: connecting in IntelliJ and PyCharm

JetBrains AI Assistant accepts third-party keys through its custom OpenAI-compatible provider section — here is exactly which field gets the URL and which gets the model.

4 min · · Updated · IDE

JetBrains AI Assistant runs across every IDE on the IntelliJ platform — IntelliJ IDEA, PyCharm, WebStorm, GoLand, and the rest — and the provider settings are shared between them. A third-party key gets connected through the custom OpenAI-compatible provider section, not through the main JetBrains AI account.

Where to find the settings

Settings / Preferences → Tools → AI Assistant → Models. This section lets you add a third-party OpenAI-compatible endpoint separately from the default JetBrains provider. Add a new entry and fill in three fields: URL, key, model.

What goes where

  • Base URL / API endpoint: https://api.zukko.pro/v1 — JetBrains AI Assistant talks over the OpenAI-compatible protocol, so the /v1 suffix is required here, unlike the Anthropic mode used by some other tools.
  • API Key: your fetch_... key from https://zukko.pro/app/api-keys. It's shown once at creation.
  • Model: the exact id from the catalog, for example gpt-5.6-sol, gpt-5.6-luna, claude-sonnet-5, claude-opus-5-5, or glm-5.3 (current list: GET https://api.zukko.pro/v1/models). This field is usually free text rather than a dropdown, so a typo won't be flagged in advance — only the server's response will catch it.

If your IDE version doesn't have this section, update the AI Assistant plugin — support for custom providers rolled out gradually and may be missing from older builds.

Test the key before touching the IDE

It's faster to check the key once with curl than to restart the IDE after every settings tweak:

bash
curl https://api.zukko.pro/v1/chat/completions \
  -H "Authorization: Bearer fetch_your_key" \
  -H "Content-Type: application/json" \
  -d '{"model":"claude-sonnet-5","messages":[{"role":"user","content":"ping"}]}'

If curl gets an answer but AI Assistant inside the IDE doesn't, it's almost always one of two things: the /v1 suffix is missing from the URL field, or the IDE cached the old provider settings (a restart fixes that, re-saving the same settings won't).

Model list and pricing

The current catalog is available without a key:

bash
curl https://api.zukko.pro/v1/models

For limits and per-token pricing as well, use the extended version:

bash
curl https://api.zukko.pro/v1/models/info

Worth checking before typing a model id into the IDE settings by hand — a typo in the version (say, gpt5.6-sol without the dash) gets you 404 model_not_found, not an autocomplete hint.

Reading the errors

  • 401 — key rejected: {"error":{"message":"Invalid API key. Use Authorization: Bearer fetch_*","type":"authentication_error"}}. Check that a space or line break didn't sneak in when copying from the dashboard.
  • 402 — empty balance: {"error":{"message":"Недостаточно средств на балансе","code":"insufficient_balance"}}. The charge is checked before the model is called, so a failed attempt is free.
  • 404 model_not_found — a typo in the model name; case and version dots matter.
  • 400 model_retired — the model has been retired, with the replacement named right in the error text.
  • 503 model_disabled — the model is disabled in the catalog; enter a current one in the settings.
  • 429 — from Zukko this only means a per-key limit (key_daily_limit_reached, which resets at 00:00 UTC, or key_monthly_limit_reached), if one is configured on the key's dashboard page; the gateway has no general rate limit, and any other 429 comes from the model provider.
  • 403 model_not_allowed_for_key — the key has an allowed-models list in the dashboard, and the current model isn't on it.

How it behaves inside the IDE

JetBrains AI Assistant uses the model for both chat and inline editor suggestions, and both count as ordinary calls to /v1/chat/completions — there's no separate free tier for autocomplete. If you want to save money on frequent, repetitive suggestions, a cheap model like glm-5.3-flash ($0.04 per 1M tokens) is the natural first try, with claude-opus-5-5 ($0.30, 1,000,000-token context) for harder chat questions — test which one works better on your own tasks.

The Claude and GPT models support vision, so pasting a screenshot of an error or a diagram into the AI Assistant chat works with them; glm-5.3 and glm-5.3-flash don't accept images.

Limits and payment

On the key's page at https://zukko.pro/app/api-keys you can set a daily or monthly spend cap in dollars and restrict the allowed models list — worth doing if the key is baked into shared IDE settings on a work machine. Regular (non-streaming) API responses carry X-Zukko-Cost-Micros (the request's cost in micro-dollars, 1,000,000 = $1) and X-Fetch-Balance-Cents (the balance left after the charge, also in microdollars); streaming responses don't carry them, and the IDE doesn't show them anyway — check spend in the dashboard or via GET /v1/usage (account-wide history, paginated with a cursor).

Top up via SBP, a card through PayPear, crypto, or a foreign Mastercard EU card through Fride (about 13% fee, amounts $2–$594); the minimum is $1. A one-time $0.50 bonus is credited for subscribing to the Telegram channel @zukkopro — link Telegram in the dashboard, subscribe, and press "Check" (once per Telegram account). A plain signup has no starting balance.

Support is at https://t.me/zukkopro?direct.

Free token counting before a big request

If you're about to paste a large file or a full error log into the AI Assistant chat, you can check its token weight ahead of time without spending anything — the /v1/messages/count_tokens endpoint only counts:

bash
curl https://api.zukko.pro/v1/messages/count_tokens \
  -H "Authorization: Bearer fetch_your_key" \
  -H "Content-Type: application/json" \
  -H "anthropic-version: 2023-06-01" \
  -d '{"model":"claude-sonnet-5","messages":[{"role":"user","content":"the request text"}]}'

This works against the Anthropic model directly, regardless of the fact that AI Assistant itself talks to the catalog over the OpenAI-compatible protocol.

zukko

Pay 25×
less

for Claude Code & ChatGPT

One fetch_* key and base URL api.zukko.pro — for Cursor, Claude Code, Codex, and any SDK.

Get API keyDocumentation

api.zukko.pro · fetch_*

JetBrains AI Assistant: connecting a custom API key · Zukko