Skip to content
documentation

Set up in under a minute.

One command configures every client below. Same endpoints, same request shape, same streaming — a base URL and a key are the only two things that change.

$npx codemax-pro

Requires Node.js. macOS, Linux and Windows.

base url
https://api.codemax.pro
endpoints
/v1/messages · /v1/chat/completions · /v1/models
models
4 tiers, one key
clients
9 documented below

choose your client

automatic setup

One command. It asks for your key, writes the config and installs the CLI if it is missing. Requires Node.js.

recommendedmacOS, Linux and Windows
$ npx codemax-pro
set up
npx codemax-pro

Writes the config for every client it finds, and installs Claude Code if it is missing.

check
npx codemax-pro doctor

Reports what is configured and what is fighting it — a stale variable, an old install, a policy.

undo
npx codemax-pro reset

Removes only what this tool wrote. Anything you set yourself is left alone.

Add --only cli or --only desktop to configure one surface, or --yes to skip every prompt.

alternative: PowerShell script
$ Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser irm https://api.codemax.pro/setup.ps1 | iex
download setup-codemax.ps1
what the command does
  • Checks the key before writing anything
  • Configures ~/.claude/settings.json
  • Configures Claude Desktop, if installed
  • Clears stale model variables
  • Backs up every file it touches
  • Installs Claude Code CLI if missing

Idempotent. Re-run any time to update your key or reconfigure — it merges into your existing config rather than overwriting it, and takes a backup first either way.

manual configuration

If you would rather write the file yourself. Two steps.

01

Configure environment

Create or edit %USERPROFILE%\.claude\settings.json:

settings.json
{
  "env": {
    "ANTHROPIC_AUTH_TOKEN": "sk-cp-your-api-key",
    "ANTHROPIC_BASE_URL": "https://api.codemax.pro",
    "ANTHROPIC_MODEL": "claude-opus-5",
    "ANTHROPIC_SMALL_FAST_MODEL": "claude-haiku-4-5-20251001",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-sonnet-5",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-opus-5",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-haiku-4-5-20251001",
    "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"
  }
}
02

Restart

Restart Claude Code or your IDE to apply the settings.

Web search and image understanding are included with every key. Point the client at https://api.codemax.pro and both work — no additional configuration.

claude code cli

The official Anthropic terminal client. Recommended.

01

Install Claude Code

Install the CLI globally via npm:

$ npm install -g @anthropic-ai/claude-code
02

Run setup and start coding

Run the one-liner. It asks for your API key, configures everything, and you are ready.

$ npx codemax-pro
alternative: PowerShell script
$ Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser irm https://api.codemax.pro/setup.ps1 | iex

After setup completes, run claude in any project directory to start coding.

what the setup command does
  • Checks the key against api.codemax.pro before writing anything
  • Writes ~/.claude/settings.json — the CLI and the VS Code extension both read it
  • Writes a Claude Desktop profile, if the app is installed
  • Clears stale model variables left by other setups
  • Backs up every file it touches before changing it
  • Installs the Claude Code CLI if it is missing

claude code for vs code

The official extension reads the same configuration file as the CLI, so if you have already run the setup command there is nothing further to set.

01

Install the extension

Search for Claude Code in the VS Code Extensions panel (Ctrl+Shift+X) and install the one published by Anthropic.

02

Point it at codemax

Skip this if you already ran it for the CLI — it writes the one file both share.

$ npx codemax-pro
03

Restart VS Code

The extension reads %USERPROFILE%\.claude\settings.json at startup, so a reload is what applies it. Open the Claude Code panel and start a session.

One file, both surfaces — the CLI and the extension read the same settings, so changing your key once is enough for either.

claude desktop

The desktop app supports third-party inference: you point it at a gateway and it uses that instead of Anthropic. It keeps its own configuration — the settings file the CLI and the VS Code extension share does not apply here, so this is a separate step even if you have already set up Claude Code.

01

Install Claude Desktop

Download it from claude.ai/download and sign in once, so the app creates its config directory.

02

Point it at codemax

The same command. It detects the app and writes the desktop profile alongside everything else — add --only desktop to configure just this.

$ npx codemax-pro --only desktop
03

Restart the app and pick a model

Quit Claude Desktop completely and open it again — the profile is read at launch. The model picker will list the four models below; Opus 5, Fable 5 and Sonnet 5 each appear twice, the second entry being the 1M context window.

Not sure it took? Run npx codemax-pro doctor — it reads the profile back and reports what the app will actually use.

where the profile is written
  • %LOCALAPPDATA%\Claude-3p\configLibrary
  • Not ~/.claude/settings.json — that file is for Claude Code
  • A per-user profile, so no administrator rights are needed
  • npx codemax-pro reset removes it again

cline / roo code

Both extensions speak the Anthropic API, so both take the same two values.

cline extension
01

Install extension

Search and install Cline from the VS Code Marketplace.

02

Open settings

Click the Cline icon in the sidebar, then the gear icon at the top.

03

Configure provider

settingvalue
API ProviderAnthropic
Base URLhttps://api.codemax.pro
API Keysk-cp-your-api-key
Model IDclaude-opus-5
04

Save and start

Click Save — you are ready to code.

roo code extension
01

Install extension

Search and install Roo Code from the VS Code Marketplace.

02

Configure provider

settingvalue
ProviderAnthropic
Base URLhttps://api.codemax.pro
API Keysk-cp-your-api-key
Modelclaude-opus-5

cursor

Cursor reaches codemax through its OpenAI base URL override.

01

Open settings

Press Ctrl + , to open Cursor Settings.

02

Configure OpenAI override

Go to ModelsOpenAI and enable Override OpenAI Base URL.

settingvalue
Base URLhttps://api.codemax.pro
API Keysk-cp-your-api-key
03

Add model

Scroll to Model Names, click + Add Model, type:

model id
claude-opus-5

Ensure it shows a green checkmark after adding.

You can add several models and switch between them: claude-opus-5, claude-sonnet-5.

windsurf

Cascade takes the same override, under its own setting names.

01

Open settings

Press Ctrl + , and search for openai.

02

Configure Cascade

settingvalue
Cascade: OpenAI Base URLhttps://api.codemax.pro
Cascade: OpenAI API Keysk-cp-your-api-key
Cascade: Modelclaude-opus-5

You can also run the Claude Code CLI setup in Windsurf's integrated terminal.

openclaw

Open-source Claude Code alternative. One command configures it.

01

Install OpenClaw

Install via npm globally:

$ npm install -g openclaw
02

Run the Codemax setup for OpenClaw

The setup script configures OpenClaw automatically — provider, models and API key:

$ npx codemax-openclaw-setup

The wizard asks for your API key and sets up everything for you.

03

Start coding

Open a new terminal, go to any project and run:

$ openclaw

The script registers Codemax as a custom provider with all Claude models. Use /model inside OpenClaw to switch between Opus, Sonnet and Haiku.

opencode

Terminal coding agent. Same shape: install, run our setup, go.

01

Install OpenCode

Install via the official install script:

$ powershell -c "irm https://opencode.ai/install.ps1 | iex"
02

Run the Codemax setup for OpenCode

The setup script configures OpenCode automatically — provider, models and API key:

$ npx codemax-opencode-setup

The wizard asks for your API key and sets up everything for you.

03

Start coding

Open a new terminal, go to your project and run:

$ opencode

The script registers Codemax as the Anthropic provider in OpenCode. Use /models to switch between Opus, Sonnet and Haiku.

other clients

Anything that speaks the OpenAI API format takes these four values.

settingvalue
API Base URLhttps://api.codemax.pro
API Keysk-cp-your-api-key
Model Nameclaude-opus-5
API TypeOpenAI Compatible

Works with Continue, Aider, Open Interpreter, LiteLLM, LibreChat, OpenClaw, and any other OpenAI-compatible tool.

models

Every tier is on the same key. Drop the literal id straight into the model field.

modeltieruse
claude-opus-5DefaultBest for everyday, complex tasks
claude-fable-5Most capableMost capable for your hardest and longest-running tasks
claude-sonnet-5EfficientEfficient for routine tasks
claude-haiku-4-5-20251001FastFastest for quick answers

Older Claude model names resolve to the nearest tier, so an existing integration keeps working without an edit.

api reference

For direct integration, without a client in the way. It is the Anthropic Messages API — anything already written against that works unchanged.

base url
https://api.codemax.pro
authentication

Either header works, so an SDK written for either convention needs no adapter. Send one, not both.

settingvalue
x-api-keysk-cp-your-api-key
AuthorizationBearer sk-cp-your-api-key
anthropic-version2023-06-01
content-typeapplication/json
endpoints
methodpathformat
POST/v1/messagesAnthropic Messages API format
POST/v1/chat/completionsOpenAI Chat Completions format
GET/v1/modelsList available models
your first request

Swap in your key and paste it into a terminal. A reply means the base URL, the key and the model id are all correct — the whole of setup, checked in one line.

terminal
curl https://api.codemax.pro/v1/messages \
  -H "x-api-key: sk-cp-your-api-key" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-opus-5",
    "max_tokens": 256,
    "messages": [
      { "role": "user", "content": "Say hello in five words." }
    ]
  }'

what comes back

200 · application/json
{
  "id": "msg_01Xa7bK...",
  "type": "message",
  "role": "assistant",
  "model": "claude-opus-5",
  "content": [
    { "type": "text", "text": "Hello there, good to meet you." }
  ],
  "stop_reason": "end_turn",
  "stop_sequence": null,
  "usage": { "input_tokens": 14, "output_tokens": 9 }
}

Shape, not a transcript — the text and the counts are whatever your own call returns. Add "stream": true to the body for server-sent events instead, in the same format your client already parses.