Knowledge base Developers
Coding tools
Coding agents that let you choose where their model requests go can run on Nymbot. Each one needs a base URL, a key and a model id; this page gives the exact settings for each.
Before you start
You need an API key, made in the app's API menu (see API keys). Each tool speaks one of the API's three formats, and that decides its base URL:
| Tool | Format | Base URL |
|---|---|---|
| Claude Code | Anthropic Messages | https://nymbot.ai/api |
| Codex CLI | Responses | https://nymbot.ai/api/v1 |
| Cline, Kilo Code, Roo Code, Continue | Chat Completions | https://nymbot.ai/api/v1 |
Model ids come from the model list,
GET https://nymbot.ai/api/v1/models, which needs no key. The examples below use
anthropic/claude-sonnet-5 and, for a model from another maker,
moonshotai/kimi-k3. Check that the model you pick is still listed.
- Pick a model that can call tools. These agents read files, edit them and run
commands by calling tools, on every step. Use a model whose entry has
capabilities.toolsset totrue.nymbot/autorefuses any request with tools (400unsupported_tool), so it does not work with any of them. - Copy the model's limits into the tool. Most tools ask for a context window
and a maximum output. Take them from
context_lengthandmax_output_tokensin the model list. A tool that asks for more output than the model allows is not refused; the request is lowered to the model's maximum. - Steps arrive whole. A request with tools runs in one piece and is then sent back as a stream, with keep-alive pings while the model works. Streaming works in every tool below, but each step appears at once rather than word by word.
Make a separate key for each tool, with a daily cap. A coding agent makes many model calls for one task, each carrying the conversation so far, so a single task can cost far more than a chat message. A cap on the key is the simplest way to know the most a tool can spend, and revoking it stops that tool alone.
Claude Code
Claude Code talks to Nymbot through its gateway settings. Set these in the shell you start it from:
Shell
export ANTHROPIC_BASE_URL=https://nymbot.ai/api
export ANTHROPIC_AUTH_TOKEN=sk-nymbot-...
export ANTHROPIC_DEFAULT_OPUS_MODEL=anthropic/claude-opus-5
export ANTHROPIC_DEFAULT_SONNET_MODEL=anthropic/claude-sonnet-5
export ANTHROPIC_DEFAULT_HAIKU_MODEL=anthropic/claude-haiku-4.5
claude
- The base URL is exactly
https://nymbot.ai/api: no/v1and no slash at the end, since Claude Code adds/v1/messagesitself. - The key goes in
ANTHROPIC_AUTH_TOKEN, which Claude Code sends asAuthorization: Bearer. While it is set, a saved claude.ai login is not used for these requests and your subscription's limits do not apply. - Pin the model slots. By default Claude Code asks for Anthropic's newest model names, and
Nymbot answers a Claude name only with the same or a newer version from its catalog, never an
older one; a version the catalog does not carry yet returns
404. Pointingopus,sonnetandhaikuat catalog ids avoids that. If you use thefablealias, setANTHROPIC_DEFAULT_FABLE_MODELthe same way. - Pinning the Haiku slot also moves Claude Code's background work, such as session titles, to that cheaper model. Without it, that work runs on your main model.
Start Claude Code and run /status. The Status tab should show an
Anthropic base URL line with https://nymbot.ai/api and an
Auth token line naming ANTHROPIC_AUTH_TOKEN.
To keep the settings for every session, put them in the env block of
~/.claude/settings.json (%USERPROFILE%\.claude\settings.json on
Windows) instead. Never put the key in a project's .claude/settings.json, which is
committed with the project.
settings.json
{
"env": {
"ANTHROPIC_BASE_URL": "https://nymbot.ai/api",
"ANTHROPIC_AUTH_TOKEN": "sk-nymbot-...",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "anthropic/claude-opus-5",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "anthropic/claude-sonnet-5",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "anthropic/claude-haiku-4.5"
}
}
A few more settings are worth knowing:
- Output length. Set
CLAUDE_CODE_MAX_OUTPUT_TOKENSto the model'smax_output_tokens, so Claude Code plans its replies for the limit the model really has. - The model picker. With
CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1, Claude Code reads Nymbot's model list at startup and adds the Claude models in it to/model. - Leave the advisor off. Claude Code's advisor is a tool that runs on
Anthropic's own servers, which Nymbot cannot run, and a request carrying it is refused. Don't
turn it on with
/advisor, or setCLAUDE_CODE_DISABLE_ADVISOR_TOOL=1to remove it entirely. - Leave MCP tool search off. Claude Code turns it off for a custom base URL,
and Nymbot cannot take the tool references it sends, so don't set
ENABLE_TOOL_SEARCH=true. MCP tools still work; they are loaded up front instead.
Claude Code can also run on a model that is not Claude: point the model slots at another catalog
id, such as moonshotai/kimi-k3, and set CLAUDE_CODE_MAX_CONTEXT_TOKENS
to that model's context_length, since Claude Code cannot know it. Anthropic does not
support Claude Code on other models, so expect rough edges.
Claude Code in VS Code
The VS Code extension runs the same Claude Code, but checks for credentials before it starts, so give it the settings in VS Code's own user settings. Run Preferences: Open User Settings (JSON) and add:
settings.json
{
"claudeCode.disableLoginPrompt": true,
"claudeCode.environmentVariables": [
{ "name": "ANTHROPIC_BASE_URL", "value": "https://nymbot.ai/api" },
{ "name": "ANTHROPIC_AUTH_TOKEN", "value": "sk-nymbot-..." },
{ "name": "ANTHROPIC_DEFAULT_OPUS_MODEL", "value": "anthropic/claude-opus-5" },
{ "name": "ANTHROPIC_DEFAULT_SONNET_MODEL", "value": "anthropic/claude-sonnet-5" },
{ "name": "ANTHROPIC_DEFAULT_HAIKU_MODEL", "value": "anthropic/claude-haiku-4.5" }
]
}
Disable Login Prompt stops the extension asking you to sign in to Anthropic.
Everything in Claude Code above applies to the extension too; settings
in ~/.claude/settings.json reach it as well, but the extension's login check reads
only its own setting.
Codex CLI
Codex uses the Responses API. Add Nymbot as a provider in ~/.codex/config.toml:
config.toml
model = "anthropic/claude-sonnet-5"
model_provider = "nymbot"
model_context_window = 1000000
[model_providers.nymbot]
name = "Nymbot"
base_url = "https://nymbot.ai/api/v1"
env_key = "NYMBOT_API_KEY"
wire_api = "responses"
[features]
multi_agent = false
Then set NYMBOT_API_KEY in your environment and run codex.
multi_agent = falseis required. Codex's multi-agent tools come as a group of tools that Nymbot cannot take, and while they are on every request is refused with400unsupported_tool. Nymbot takes function tools and web search only; if Codex reportsunsupported_tool, a feature or MCP server that adds another kind of tool is on.- Pick a model that is not one of OpenAI's own. For model ids it recognizes
as OpenAI's, such as
openai/gpt-5.6-sol, Codex switches to a request format Nymbot cannot read, and the request is refused. Claude, Kimi and the other catalog models work. model_context_windowtells Codex the model's context size, fromcontext_lengthin the model list; otherwise it assumes 272,000 tokens.- Codex offers the model a web search tool, which Nymbot runs with its own
web search when the question needs it. Set
web_search = "disabled"at the top of the file to turn it off. - Nymbot does not store responses. Codex already sends the whole conversation each time, so nothing needs to change.
Cline
In Cline's settings in VS Code:
- Set API Provider to OpenAI Compatible.
- Set Base URL to
https://nymbot.ai/api/v1. - Paste your key into OpenAI Compatible API Key.
- Pick the model under Model ID. Cline loads the list from Nymbot once the
URL and key are in; you can also type an id such as
anthropic/claude-sonnet-5.
Open Model Configuration and fill in Context Window Size and
Max Output Tokens from the model list, and tick Supports
Images if the model has capabilities.vision, so Cline manages its context
correctly.
Kilo Code
In the VS Code extension, open Settings, go to the Providers tab, scroll to the bottom and click Custom provider. Fill in:
- Provider ID:
nymbot - Display name:
Nymbot - Provider API: OpenAI Compatible
- Base URL:
https://nymbot.ai/api/v1 - API key: your key
- Models: pick them from the list Kilo loads from Nymbot
Click Submit, and the models appear in the model picker. For the CLI, or to set
a model's limits and tool support, define the provider in ~/.config/kilo/kilo.json
instead:
kilo.json
{
"provider": {
"nymbot": {
"npm": "@ai-sdk/openai-compatible",
"env": ["NYMBOT_API_KEY"],
"options": {
"baseURL": "https://nymbot.ai/api/v1"
},
"models": {
"claude-sonnet-5": {
"id": "anthropic/claude-sonnet-5",
"name": "Claude Sonnet 5",
"tool_call": true,
"limit": { "context": 1000000, "output": 64000 }
}
}
}
},
"model": "nymbot/claude-sonnet-5"
}
id is the Nymbot model id and the key above it is Kilo's own name for it, used in
"model" as nymbot/…. Take limit from the model
list; without it Kilo cannot manage the context.
Roo Code
Roo Code was discontinued on May 15, 2026. If you still have it installed, it works with Nymbot
like this: set API Provider to OpenAI Compatible,
Base URL to https://nymbot.ai/api/v1, put your key in
API Key and a model id in Model. Roo Code only works through
tool calls, so the model must have capabilities.tools. Under the model
configuration, set Max Output Tokens, Context Window and
Image Support from the model list.
Continue
Continue's final release is 2.0.0 and it is no longer maintained, but the extension and its CLI
still work. Add Nymbot models to ~/.continue/config.yaml
(%USERPROFILE%\.continue\config.yaml on Windows):
config.yaml
name: My Config
version: 0.0.1
schema: v1
models:
- name: Claude Sonnet 5 (Nymbot)
provider: openai
model: anthropic/claude-sonnet-5
apiBase: https://nymbot.ai/api/v1
apiKey: sk-nymbot-...
roles:
- chat
- edit
- apply
capabilities:
- tool_use
- image_input
defaultCompletionOptions:
contextLength: 1000000
maxTokens: 64000
- name: Nymbot embeddings
provider: openai
model: "@cf/baai/bge-m3"
apiBase: https://nymbot.ai/api/v1
apiKey: sk-nymbot-...
roles:
- embed
capabilitiestells Continue what the model can do, since it cannot tell from a Nymbot id.tool_useis what Agent mode needs; leave outimage_inputfor a model withoutcapabilities.vision.- The second entry uses a Nymbot embedding model for Continue's codebase search.
What the tools send
A coding agent sends the model whatever it works with: your instructions, the files it opens, the output of the commands it runs. Through Nymbot, all of that is an ordinary API request, with the protections and limits described in what the API can see: it is not end-to-end encrypted, Nymbot does not store it, and the model's provider sees it.
- The tools keep their own histories on your machine, and some talk to their makers besides.
Claude Code, for one, still sends its telemetry to Anthropic when it runs on Nymbot; set
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1to stop that and its other background traffic. Its WebFetch tool still checks each domain with Anthropic unless you setskipWebFetchPreflighttotruein its settings. - Keys in settings files are only as safe as the file. Keep them out of anything you commit, and read them from the environment where the tool allows it.