Coding agents
BetaWe just launched Apps: hosted models, actions and pages, on the same bill as your inference.Read the Apps docs
Gateway/Get started/Coding agents

Coding agents

Point a coding agent at Inference Bureau and its requests get your team's Directives, budgets and Logs. Each agent needs a base URL and a project key.

These settings follow each agent's documented configuration, and the API they call is tested, but the agents themselves haven't been run against it end to end yet. Building your own agent? See AI SDK.

Claude Code

Claude Code speaks the Anthropic Messages API, which POST /v1/messages passes through natively. Set the base URL without /v1:

export ANTHROPIC_BASE_URL="https://api.inferencebureau.com"
export ANTHROPIC_AUTH_TOKEN="$IB_API_KEY"
claude

Claude Code names models the way Anthropic does (claude-sonnet-4-5-20250929). Those names resolve to the catalog's ids (anthropic/claude-sonnet-4.5), so no model setting is needed as long as your Directives allow the models it picks, including the small model it uses for background work. To choose them yourself, set ANTHROPIC_MODEL and ANTHROPIC_DEFAULT_HAIKU_MODEL to catalog ids. Token counting (/v1/messages/count_tokens) is supported and free.

Codex CLI

Add a provider to ~/.codex/config.toml and select it. Codex speaks the Responses API, which POST /v1/responses passes through natively. Codex runs with store: false and sends the whole conversation each turn, and compacts long sessions through /v1/responses/compact, which works here for OpenAI models.

model = "openai/gpt-5-codex"
model_provider = "inferencebureau"

[model_providers.inferencebureau]
name = "Inference Bureau"
base_url = "https://api.inferencebureau.com/v1"
env_key = "IB_API_KEY"
wire_api = "responses"

Cursor

In Cursor's settings, under Models, enter your project key as the OpenAI API key, turn on Override OpenAI Base URL and set it to https://api.inferencebureau.com/v1, then add the catalog ids you want (such as openai/gpt-5) as custom models. Cursor sends these requests from its own servers, and uses your key only for chat and agent requests with the models you added, not for Tab completion.

Limits to raise first

An agent sends long prompts and asks for long answers, many times a minute. The tokens-per-minute limit counts each request's input plus its max_tokens when the request starts, so one turn of a long session can reserve 200,000 tokens or more. A team's default, 2,000,000 tokens and 600 requests a minute, fits about ten such turns a minute, shared by every key in the team. So are its 10 concurrent requests, including streams: agents running in parallel, and the subagents they start, reach that quickly and get 429 concurrency_limit_exceeded. For several people or agents working at once, raise limits.tokensPerMinute and limits.concurrentRequests in Directives; give each agent's key its own lower limit there so one can't use the whole team's allowance; and set a budget, which is what actually caps spend.

What differs

Inference Bureau
KeysAuthorization: Bearer or x-api-key, on every endpoint.
Server toolsOn /v1/messages, only web_search runs on the provider's side, and it must set max_uses. mcp_servers, code execution and other server tools are refused, because their cost cannot be reserved. An agent's own tools (shell, file edits) are unaffected.
Request size1 MiB per request and 240 seconds, or the answer is cut off. Very large contexts need compacting sooner.
Model fallbackOff unless allowed in Directives. A provider that fails is retried on another provider of the same model.
Responses APIPOST /v1/responses keeps responses only with store: true, for 30 days. Hosted tools other than web_search (file search, code interpreter, computer use) are refused. /v1/responses/compact serves OpenAI models and is refused when Directives require zero data retention or no training.