Docs
Qoder
The standalone Qoder desktop app takes an arbitrary Base URL under Provider → Custom. Fill in three fields and a hand-typed model id, and Qoder is talking to Claude, GPT and Gemini through one key — none of which appear in its own catalogue.
Qoder Settings → Models → + Add → Provider → Custom takes an OpenAI-compatible Base URL, an API Key and hand-typed Model IDs — so the standalone Qoder desktop app reaches Claude, GPT and Gemini, none of which are in its own catalogue.
Qoder Settings -> Models -> + Add -> Provider -> Custom
Provider OpenAI Compatible <- under "Custom", not a preset
API type Chat Completions API <- asked only for OpenAI Compatible
Base URL https://api.kunavo.com/v1
API Key sk-kn-...
Model ID claude-sonnet-5 <- typed by hand
Add Model ID claude-opus-5
Add Model ID claude-haiku-4-5
Next ->
Display name Kunavo · Sonnet 5
Supported Context Windows pick from what the model supports
Default Context Window one of the values picked above
Vision on for models that take image input
Thinking Mode on for reasoning models, then pick effort levels
Validate and Add ModelOpenAI Compatible and Anthropic Compatible under Custom, and release note 0.1.8 of September 5, 2026 introduced it as “Personal plan BYOK now supports custom Base URLs for any OpenAI- or Anthropic-compatible model service”. Qoder IDE's custom-models page lists named providers only and never contains the string Base URL. If the field is not on your screen, you are probably in a different Qoder./v1 suffix. Qoder's page says to “enter the exact Base URL supplied by the model service” and then shows https://api.example.com/v1 as its example format — so the /v1 root, not the bare origin, is what the field expects for an OpenAI-compatible endpoint. This is the opposite of the Anthropic-style clients, which want https://api.kunavo.com and append the route themselves.Anthropic Compatible custom provider, and Kunavo answers /v1/messages as well. Its documentation publishes one example Base URL and does not say which route each protocol appends, so it does not settle whether that type wants https://api.kunavo.com or https://api.kunavo.com/v1. The OpenAI-compatible path above is the one its own example resolves; if you pick the Anthropic type instead, expect to try both forms. Qoder's own troubleshooting list starts with exactly this — “Whether the Base URL is complete and the selected compatible protocol and API type match the endpoint”.Step by step
- Create a key at
/app/keysand copy it — it is shown once. - Open Qoder Settings, select Models in the left navigation, and click + Add.
- Open Provider and choose
OpenAI Compatibleunder Custom — not one of the preset providers above it. Then pickChat Completions APIfor the API type. - Enter the Base URL, the API Key and at least one Model ID. Qoder documents no model-list discovery for this field, so type the ids; click Add Model ID for each extra one on the same endpoint.
- Click Next and set the capabilities Qoder cannot infer: Display name, Supported Context Windows and a Default Context Window from those values, plus the Vision and Thinking Mode toggles where the model supports them.
- Click Validate and Add Model. Qoder's model-selector page says that once added, “the model becomes available to task, Agent, and automation model selectors”.
Checked against the standalone Qoder app's custom-models page on September 21, 2026. Third-party settings move; if a field name here no longer matches what you see, that page is the authority, not this one.
Verify before you debug the client
One request settles whether a failure is the endpoint, the key, or the configuration file. If this returns JSON, the same base URL and key work in Qoder.
# Settles whether a failure is the endpoint, the key, or the client.
curl -sS https://api.kunavo.com/v1/models \
-H "Authorization: Bearer sk-kn-..."Which model id to put in the field
Every text model is reachable as a model id — the live list is GET /v1/models, and the catalog with prices is on the models page. Rates are USD per 1M tokens, input / output.
| Model id | Kunavo in / out | Where it fits in Qoder |
|---|---|---|
claude-sonnet-5 | $2.00 / $10.00 | the default working model for task and Agent selectors |
claude-opus-5 | $2.00 / $10.00 | large refactors, where a wrong plan costs more than the tokens |
claude-haiku-4-5 | $0.40 / $2.00 | high-volume automation runs, where the count dominates |
gpt-5-6-sol | $2.00 / $12.00 | a second opinion from a different family, same key and same endpoint |
Why your Qoder may have no Base URL field
Three Qoder surfaces document bring-your-own-key and only one of them documents an endpoint you choose. This is the single thing that decides whether the setup above is even reachable from where you are sitting, so it is worth checking before touching a config file — and the CLI page explicitly tells you not to touch one.
| Surface | Custom Base URL documented? | What its own page says |
|---|---|---|
| Qoder (standalone app) | Yes | OpenAI Compatible and Anthropic Compatible sit under Custom in the Provider list, with a Base URL, an API Key and hand-typed Model IDs. This page. |
| Qoder IDE | No | Its custom-models page reads “Applicable For: Users with Individuals plans” and names providers — Alibaba Cloud Model Studio, DeepSeek, Z.ai, Kimi, MiniMax, Xiaomi MIMO. The string Base URL does not appear. |
| Qoder CLI | Not on the docs page | There is a Custom tab under /model with Add custom model..., but the page documents no Base URL and warns “Do not configure BYOK manually in settings.json”. |
The CLI is the confusing one, because its own release notes and its own documentation do not agree. Release note 1.1.50 of September 11, 2026 says “Personal edition users can now centrally configure and manage BYOK models with custom URL endpoints from the Custom page”, while the custom-models page that survives it describes a catalogue instead: “the available providers, models, and credential fields are determined by the BYOK catalog available to the current account”. Both of those, plus the IDE page, gate the feature on an Individual plan. So when the Custom tab is absent or shows no endpoint field, the thing to check is the plan on the account and what that account's catalogue offers — not a config file, which the CLI page tells you not to edit by hand and which is regenerated from the catalogue anyway.
FAQ
How do I add a custom provider to Qoder?
In the standalone Qoder desktop app: open Qoder Settings, select Models in the left navigation, click + Add, then open Provider and choose "OpenAI Compatible" or "Anthropic Compatible" under Custom. For the OpenAI type you also pick Chat Completions API or Responses API. Enter the Base URL, the API Key and at least one Model ID, using Add Model ID for further models on the same endpoint, click Next to set Display name, Supported Context Windows, Default Context Window, Vision and Thinking Mode, then click Validate and Add Model. Qoder validates the connection before saving.
Does the Qoder Base URL need /v1 at the end?
For an OpenAI-compatible endpoint, yes. Qoder's custom-models page tells you to enter the exact Base URL supplied by the model service and shows https://api.example.com/v1 as its example format, so the field wants the /v1 root rather than the bare origin — https://api.kunavo.com/v1 for Kunavo. For the Anthropic Compatible type the page publishes no separate example and does not state which route it appends, so its documentation does not settle that case; try the /v1 root first and the bare origin if the validation fails.
Why is there no Custom tab or Base URL field in my Qoder?
Because the three Qoder surfaces have different BYOK rules. Only the standalone Qoder desktop app documents an arbitrary Base URL. Qoder IDE's custom-models page lists named providers and never mentions Base URL, and Qoder CLI's page says the available providers, models and credential fields are determined by the BYOK catalog available to the current account. Both the IDE and CLI pages also restrict the feature to an Individual plan. If the field is missing, check which Qoder product you have open and what the account's plan and catalogue allow — the CLI page specifically warns against configuring BYOK by hand in settings.json.
Can Qoder use Claude models without an Anthropic account?
Through a custom provider, yes — Qoder's built-in catalogue is a separate matter. Its model-selector page lists Qwen, DeepSeek, GLM, Kimi and MiniMax models and names no Claude, GPT or Gemini model, so bring-your-own-key is the documented route to one. "OpenAI Compatible" there is a wire-protocol choice, not a vendor choice: the Model ID you type is resolved at the Base URL you configured, so a Claude id works as long as the endpoint serves it, and the credentials you hold are that endpoint's rather than Anthropic's.
Does a custom model in Qoder still consume Qoder Credits?
Qoder's custom-models page states that custom model fees are billed directly to your provider API account and do not use Qoder Credits, and names Repo Wiki as the exception because it uses a fixed model and is billed separately, with a prompt shown when it generates. Kunavo's side of that bill is per token from a prepaid balance with no monthly fee. Note also that Qoder's Edit operation on a saved custom model only updates the API key — changing a Base URL means deleting the entry and adding it again.
Has Kunavo tested this setup inside Qoder?
No. Kunavo has not run a session in any Qoder surface, and this page is not a runtime compatibility report: the field names and their order are transcribed from Qoder's own custom-models page on the date shown, and the endpoint side is Kunavo's published API. The check that matters runs on your machine — Qoder's Validate and Add Model button tests the Base URL, key and Model ID together before it saves them, and a plain curl against the same base URL and key settles whether a failure is the endpoint or the client.