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/v1suffix 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, orglm-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:
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:
curl https://api.zukko.pro/v1/modelsFor limits and per-token pricing as well, use the extended version:
curl https://api.zukko.pro/v1/models/infoWorth 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, orkey_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:
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.
Related articles
- JetBrains AI Assistant not working: causes and workaroundsAI Assistant will not activate, stays silent or is off for some files. We go through the causes in the JetBrains docs and connect your own models via a gateway.
- DeepSeek in VS Code: connecting through Cline, Kilo Code and ContinueWe connect DeepSeek to Cline, Kilo Code and Continue with a single key, choose between Flash and Pro, and estimate the cost of a working day with an agent in the editor.
- GitHub Copilot alternatives with your own API key: what to chooseCline, Kilo Code, Continue and Cursor work with your own key. We compare where they live, how they connect to a gateway and how to estimate spend.
- Invalid API key in opencode: why the key is rejected and how to checkThe Invalid API key error in opencode almost always comes down to four causes. We test the key outside opencode and find where the chain breaks.