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
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 Model
This is the standalone Qoder app, not Qoder IDE. “Qoder” is a family of separately documented products, and only the standalone desktop app documents an arbitrary endpoint: its custom-models page offers OpenAI 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.
The Base URL keeps the /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.
Qoder also offers an 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”.
Kunavo has not run a session inside Qoder. Nothing here is a runtime test of the client: the fields are transcribed from Qoder's own page on the date below, and the endpoint side is Kunavo's published surface. Qoder's Validate and Add Model button is the step that actually checks the pair, and it runs on your machine, not ours.

Step by step

  1. Create a key at /app/keys and copy it — it is shown once.
  2. Open Qoder Settings, select Models in the left navigation, and click + Add.
  3. Open Provider and choose OpenAI Compatible under Custom — not one of the preset providers above it. Then pick Chat Completions API for the API type.
  4. 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.
  5. 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.
  6. 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.

This is the short version. The full walkthrough — model choice, what a real session costs, and the failure modes — is in Qoder vs Claude Code — which Qoder, which endpoint, which bill.

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 idKunavo in / outWhere it fits in Qoder
claude-sonnet-5$2.00 / $10.00the default working model for task and Agent selectors
claude-opus-5$2.00 / $10.00large refactors, where a wrong plan costs more than the tokens
claude-haiku-4-5$0.40 / $2.00high-volume automation runs, where the count dominates
gpt-5-6-sol$2.00 / $12.00a second opinion from a different family, same key and same endpoint
Billing is per token from a prepaid balance with no monthly fee — see billing. On repeated context — which is most of what an editor or a chat client sends — prompt caching moves the bill more than the model choice does.

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.

SurfaceCustom Base URL documented?What its own page says
Qoder (standalone app)YesOpenAI 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 IDENoIts 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 CLINot on the docs pageThere 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.