ApiClo Docs
Set up ApiClo for web chat, IDEs, CLI agents, SDKs, and direct API calls. One balance, one key, clear routes, and ready snippets for real clients.
What do you want to connect?
Choose the outcome, not the tool. For development, start with Trae or a VS Code extension; for no setup, use Web Chat; for a managed agent, use Hermes.
Use the browser chat, pick a model in the UI, and use Free models only here while they are available.
Open chat ApiClo ConnectorInstall and connect Codex, Claude Code, Kilo, Roo, Cline, or another OpenAI-compatible client without editing configuration files by hand.
Download installer TraeConnect ApiClo through Custom Config and start coding with your project context.
Set up Trae Code in editorBest path for agent work in a project: tools, file edits, and context control.
Choose plugin Hermes AgentFor tasks with memory, web context, files, and long-running work inside ApiClo.
Open Hermes Desktop BridgeDownload the bridge when an IDE or agent needs a local router, folder access, and computer files.
Download .exe Terminal agentFor shell-based work: Claude Code, Codex, OpenCode, Qwen Code, Aider.
Open CLI guides CursorWorks for chat/plan through custom base URL. For full coding-agent workflows, prefer Hermes, Cline, Kilo, Roo, Claude Code, or Codex.
Set up Cursor Own appOpenAI-compatible /v1 for SDKs, backends, services, and direct HTTP requests.
Open APIWhere to put URL and key
Short compatibility map. If the client asks for an OpenAI-compatible URL, use /v1. If an Anthropic/Claude client appends /v1/messages itself, use the root without /v1.
| Client | Best path | Base URL / key | Model | Status |
|---|---|---|---|---|
| Web Chatnormal user | Open chat in ApiClo | no API key needed | selected in UI | recommended |
| Hermesaccount agent | Agents → Hermes | ApiClo account | selected in UI | recommended |
| ApiClo ConnectorWindows beta | install and connect | https://apiclo.com/v1sk-hub-... |
selected in Connector | recommended |
| Desktop Bridgelocal router | download Windows .exe | http://127.0.0.1:18441/v1client key can be any local value |
from Fetch models | recommended |
| Cline / Roo / KiloVS Code | OpenAI-compatible profile | https://apiclo.com/v1sk-hub-... |
claude-sonnet-5 |
recommended |
| Claude CodeCLI | ANTHROPIC_AUTH_TOKEN |
https://apiclo.comsk-hub-... |
claude-sonnet-5 |
CLI |
| CodexDesktop / CLI | ~/.codex/config.toml |
https://apiclo.com/v1APICLAUDE_API_KEY |
claude-sonnet-5 |
CLI |
| Cursorchat/plan | OpenAI-compatible | https://apiclo.com/v1sk-hub-... |
claude-sonnet-5 |
limited |
| API / SDKHTTP | OpenAI SDK | https://apiclo.com/v1Authorization: Bearer sk-hub-... |
claude-sonnet-5 |
API |
Windows tools
Use Connector to configure coding clients. Install Desktop Bridge separately only when a local router, folder access, or Hermes computer permissions are needed.
One Windows installer for Codex, Claude Code, Kilo Code, Roo Code, Cline, and other OpenAI-compatible clients. It preserves existing settings, creates backups, and can restore each managed client.
Beta builds are not yet code-signed, so Windows SmartScreen may request confirmation. Verify the SHA256 before running.
9C9FD55E4D19EC8D810AC3EAC9F569E839912A45820C0CEF5409248797756C62
- 1
Download and run the installer, then open ApiClo Connector.
- 2
Create a separate API key in ApiClo and paste it into Connector.
- 3
Choose a model, then click Install & connect beside the client you use.
- 4
Restart the connected client and test it with: Reply only OK.
Optional local router and computer-permission bridge for files and Hermes. It is not the IDE configuration installer.
Connection values
These values are used by almost every IDE and SDK. Create a separate key for each project.
https://apiclo.com/v1
For Cursor, Continue, Kilo, Codex, OpenCode, SDKs, and raw HTTP.
https://apiclo.com
For Claude Code, raw Anthropic SDK, and clients that append /v1/messages themselves.
sk-hub-...
The full key is shown once on the API Keys page.
claude-sonnet-5
Balanced paid route for chat and code.
Free Opus/Sonnet/Fable/GPT aliases are for web chat while promo capacity is available. Do not put free-* models into IDEs, agents, or external API clients; use the paid model IDs below.
Separate model IDs with -1m or -1m-context suffixes are retired. Choose the standard model ID below; long sessions keep their context and compact automatically when needed.
Quick start
The shortest path from signup to the first IDE or API response.
- 1
If you need ready agent work, open Hermes in Agents. This is the main path for memory, web context, and managed tasks.
- 2
For Codex, Claude Code, Kilo, Roo, or Cline, download ApiClo Connector and let it merge the required configuration safely.
- 3
Install Desktop Bridge only if you need a local router, folder access, or Hermes computer permissions.
- 4
Create an account and add balance. One balance works for web chat, API, Telegram, and managed agents.
- 5
Open API Keys and create a separate key for the specific IDE or project.
- 6
Paste Base URL, API key, and model id into the client. For OpenAI-compatible clients, use https://apiclo.com/v1; for Desktop router, use http://127.0.0.1:18441/v1.
- 7
Test the connection with a short prompt: Reply only OK. Then test reading the current folder without changing files.
- 8
For long coding tasks, keep one key per project, avoid unnecessary model switching, and exclude node_modules, dist, logs, and dumps from context.
IDE agents such as Cline, Kilo, Roo, and Continue often send a system prompt, tool schema, diff, terminal output, and file list. This is normal for coding-agent mode, but these requests cost more than plain chat.
- Start regular coding with Sonnet; use Opus for hard reasoning, architecture review, and difficult bugs.
- Ask the agent to read specific files and folders instead of the whole project. Keep node_modules, dist, logs, dumps, huge JSON/CSV files, and binaries out of context.
- In Continue, keep maxTokens around 1800-4096 for normal chat/edit/apply, and raise it only when a long answer is actually needed.
- For Hermes, keep long work in one chat and avoid unnecessary model switching: memory, cache, and task history work better that way.
In Continue, SDKs, curl, and raw OpenAI-compatible API calls, use the exact id from /v1/models, such as claude-sonnet-5 or claude-opus-4-8. Do not add apiclaude/ before the model id when the client asks for model. Some UIs, such as Kilo, may show provider/model inside their own interface; that is not always the string for direct API calls.
VS Code plugins
For Cline, Roo, and Kilo, use an OpenAI-compatible profile with the /v1 Base URL by default. Use Anthropic Messages only as a native/advanced mode when the client explicitly calls /v1/messages.
Cline
Good for autonomous coding tasks in VS Code. ApiClo can be connected in two ways.
Option A: OpenAI Compatible
- 1
Install Cline from the VS Code Marketplace and open Settings / API Configuration.
- 2
Select OpenAI Compatible as API Provider.
- 3
Set the full Base URL with /v1: https://apiclo.com/v1.
- 4
API Key: your sk-hub key. Model ID: claude-sonnet-5 or claude-opus-4-8.
- 5
Save the profile and first send the test: Reply only OK.
API Provider: OpenAI Compatible
Base URL: https://apiclo.com/v1
API Key: sk-hub-...
Model: claude-sonnet-5
Option B: Anthropic Messages for native mode
- 1
If your Cline build requires the Anthropic provider, enable Use custom base URL.
- 2
Custom Base URL: https://apiclo.com . Do not add /v1 here; Cline calls /v1/messages itself.
- 3
API Key: your sk-hub key. Model: claude-sonnet-5 or claude-opus-4-8.
- 4
If the Anthropic native mode is unstable, return to Option A OpenAI-compatible.
Provider: Anthropic
Custom Base URL: https://apiclo.com
Model: claude-sonnet-5
After saving, send: Reply only OK. Second test: Look at the current folder and say whether README.md exists; do not change anything.
Models 17 Model ID
Copy Model ID.
Claude
GPT
Other
Roo Code
Roo Code uses almost the same setup as Cline, but the provider profile labels may differ.
- 1
Install Roo Code from VS Code Extensions and open the Roo Code panel.
- 2
Create an API key in ApiClo under API Keys.
- 3
Open API Configuration / Provider / Profile.
- 4
By default, choose an OpenAI-compatible profile: Base URL https://apiclo.com/v1 and an ApiClo model id.
- 5
Use Anthropic + custom base URL https://apiclo.com without /v1 only for native/advanced mode.
- 6
Save the profile, verify OK, then run a file task.
- 7
Second test: ask Roo to read the current folder and say whether README.md exists, without editing files.
OpenAI Compatible Base URL: https://apiclo.com/v1
Anthropic Custom Base URL: https://apiclo.com
Model: claude-opus-4-8
Models 17 Model ID
Copy Model ID.
Claude
GPT
Other
Kilo Code
For Kilo, use Custom Provider. Unlike Cline/Roo, the Base URL is usually entered with /v1.
- 1
Install Kilo Code from VS Code Extensions and open Settings / API Configuration.
- 2
Get an sk-hub API key in ApiClo -> API Keys.
- 3
Create a Custom Provider: Provider ID apiclaude, Display Name ApiClo.
- 4
For Claude models, choose Provider API: OpenAI Compatible and Base URL https://apiclo.com/v1 by default.
- 5
Use Provider API: Anthropic Messages only when Kilo explicitly needs native Messages mode.
- 6
Model ID: claude-sonnet-5, claude-opus-4-8, or claude-fable-5.
- 7
Save the provider and run two tests: Reply only OK; then read the project file list without edits.
Provider ID: apiclaude
Provider API: OpenAI Compatible
Base URL: https://apiclo.com/v1
Model ID: claude-sonnet-5
Models 17 Model ID
Copy Model ID.
Claude
GPT
Other
Continue
Continue is configured through config.yaml. Give the model chat, edit, apply, and summarize roles.
- 1
Install Continue and open the configuration: Continue -> Settings -> Open config.yaml.
- 2
Save the old config.yaml before replacing it if you already have custom models.
- 3
Paste the block below and replace YOUR_API_KEY with your sk-hub key.
- 4
Restart Continue or run Reload Window in the IDE.
- 5
Test chat, edit, and apply on a small file before a heavy task.
~/.continue/config.yaml
name: ApiClo
version: 1.0.0
schema: v1
models:
- name: Claude Sonnet 5
provider: openai
model: claude-sonnet-5
apiBase: https://apiclo.com/v1
apiKey: YOUR_API_KEY
capabilities:
- tool_use
roles:
- chat
- edit
- apply
- summarize
defaultCompletionOptions:
temperature: 0
context:
- provider: code
- provider: docs
- provider: diff
- provider: terminal
- provider: problems
- provider: folder
- provider: codebase
This example does not impose hard contextLength or maxTokens values. Continue uses the selected model's capabilities and shows the active configuration in Continue Console → Options.
In a long Agent session, click Compact conversation, the converging-arrows icon under the latest response. Once context reaches 60%, the same action is available from the context indicator beside the input. Continue keeps a technical summary and sends it with only the newer turns. This compacts history rather than truncating the active task. After compaction, inspect the next request in Continue Console: it should contain the summary and only newer turns, not hundreds of old tool_result blocks.
If Continue rejects provider: openai, use its OpenAI-compatible/custom provider with the same apiBase/apiKey/model. For model, use claude-sonnet-5 or claude-opus-4-8 without the apiclaude/ prefix.
Models 17 Model ID
Copy Model ID.
Claude
GPT
Other
VS Code native BYOK
For VS Code built-in Custom Endpoint, add models to the user configuration file.
- 1
Open the VS Code User settings folder and create chatLanguageModels.json if it does not exist.
- 2
Paste the JSON below and replace YOUR_API_KEY with your sk-hub key.
- 3
Check that url ends with /v1/chat/completions.
- 4
Run Developer: Reload Window.
- 5
In VS Code chat, choose Claude Sonnet 5 and send the test Reply only OK.
%APPDATA%\Code\User\chatLanguageModels.json
[
{
"name": "ApiClo",
"vendor": "customendpoint",
"apiKey": "YOUR_API_KEY",
"apiType": "chat-completions",
"models": [
{
"id": "claude-sonnet-5",
"name": "Claude Sonnet 5",
"url": "https://apiclo.com/v1/chat/completions",
"toolCalling": true,
"vision": true,
"maxInputTokens": 1000000,
"maxOutputTokens": 64000,
"streaming": true
},
{
"id": "claude-opus-4-8",
"name": "Claude Opus 4.8",
"url": "https://apiclo.com/v1/chat/completions",
"toolCalling": true,
"vision": true,
"maxInputTokens": 1000000,
"maxOutputTokens": 64000,
"streaming": true
}
]
}
]
Developer: Reload Window
Models 17 Model ID
Copy Model ID.
Claude
GPT
Other
IDE and desktop clients
Clients with OpenAI-compatible settings use the same Base URL + API key pair.
Cursor
The simplest flow: connect ApiClo as an OpenAI-compatible endpoint.
- 1
Open Cursor Settings, Models, or API Keys.
- 2
Enable a custom OpenAI-compatible endpoint.
- 3
Base URL: https://apiclo.com/v1. API key: your sk-hub key.
- 4
Add model id: claude-sonnet-5 for regular work, claude-opus-4-8 for heavy reasoning/coding.
- 5
Save settings, choose the model in Cursor chat, and send Reply only OK.
- 6
If Cursor adds /v1 itself, leave the root URL without a second /v1.
OpenAI Base URL: https://apiclo.com/v1
OpenAI API Key: sk-hub-...
Model: claude-sonnet-5
Models 17 Model ID
Copy Model ID.
Claude
GPT
Other
Trae
Trae connects through Settings -> Models -> Add Model -> Custom Config.
- 1
Install Trae and sign in; otherwise the Models section may be hidden.
- 2
Open Settings -> Models -> Add Model -> Custom Config.
- 3
For Claude, choose API Format Anthropic Messages, URL https://apiclo.com or https://apiclo.com/v1 if Trae asks for the full /v1 endpoint.
- 4
For OpenAI Completions, use https://apiclo.com/v1 and model id claude-sonnet-5.
- 5
Paste the API Key, save the model, and run the Reply only OK test.
- 6
If Trae shows an empty answer, reduce max output and check the exact API Format.
API Format: OpenAI Completions
Custom Request URL: https://apiclo.com/v1
Model ID: claude-sonnet-5
Models 17 Model ID
Copy Model ID.
Claude
GPT
Other
Open WebUI / LibreChat
Connect ApiClo as an OpenAI-compatible provider.
- 1
Open provider admin settings or the env configuration for your self-hosted UI.
- 2
Choose an OpenAI-compatible provider.
- 3
Set OPENAI_API_BASE_URL=https://apiclo.com/v1 and OPENAI_API_KEY=sk-hub-...
- 4
Add DEFAULT_MODEL=claude-sonnet-5 or choose the model in the UI.
- 5
Restart the UI container/process and send a short test.
OPENAI_API_BASE_URL=https://apiclo.com/v1
OPENAI_API_KEY=sk-hub-...
DEFAULT_MODEL=claude-sonnet-5
If the UI adds /v1 itself, use root https://apiclo.com or remove the extra /v1 from the setting.
Models 17 Model ID
Copy Model ID.
Claude
GPT
Other
CLI and terminal agents
For CLI tools, it is especially important not to mix OpenAI-compatible and Anthropic-compatible variables.
Claude Code
Claude Code usually expects an Anthropic-compatible base URL without /v1.
- 1
Check Node.js 18+: node --version.
- 2
Install Claude Code: npm install -g @anthropic-ai/claude-code@latest.
- 3
Check the install: claude --version.
- 4
For ApiClo, use ANTHROPIC_AUTH_TOKEN + ANTHROPIC_BASE_URL; ANTHROPIC_API_KEY is only for clients that require x-api-key.
- 5
Set CLAUDE_CODE_AUTO_COMPACT_WINDOW=180000 so Claude Code summarizes a long session before the 200k boundary. This does not limit response size.
- 6
First verify the gateway with a direct /v1/messages request, then start claude from the same shell session.
- 7
In Claude Code, run /status and confirm it shows the ApiClo base URL and active token source.
npm install -g @anthropic-ai/claude-code@latest
# macOS / Linux
export ANTHROPIC_AUTH_TOKEN="sk-hub-..."
export ANTHROPIC_BASE_URL="https://apiclo.com"
export ANTHROPIC_MODEL="claude-sonnet-5"
export CLAUDE_CODE_AUTO_COMPACT_WINDOW="180000"
claude
# Windows PowerShell
$env:ANTHROPIC_AUTH_TOKEN="sk-hub-..."
$env:ANTHROPIC_BASE_URL="https://apiclo.com"
$env:ANTHROPIC_MODEL="claude-sonnet-5"
$env:CLAUDE_CODE_AUTO_COMPACT_WINDOW="180000"
claude
~/.claude/settings.json
{
"env": {
"ANTHROPIC_BASE_URL": "https://apiclo.com",
"ANTHROPIC_AUTH_TOKEN": "sk-hub-...",
"CLAUDE_CODE_AUTO_COMPACT_WINDOW": "180000"
}
}
curl /v1/messages smoke
# macOS / Linux
curl -X POST "https://apiclo.com/v1/messages" \
-H "Authorization: Bearer sk-hub-..." \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"claude-sonnet-5","max_tokens":1,"messages":[{"role":"user","content":"."}]}'
# Windows PowerShell
Invoke-RestMethod -Method Post -Uri "https://apiclo.com/v1/messages" `
-Headers @{ "Authorization" = "Bearer sk-hub-..."; "anthropic-version" = "2023-06-01" } `
-ContentType "application/json" `
-Body '{"model":"claude-sonnet-5","max_tokens":1,"messages":[{"role":"user","content":"."}]}'
If the smoke returns JSON with msg_, the URL and key work. If it returns 401, the client sent the key with the wrong header; use ANTHROPIC_API_KEY only for an x-api-key scenario.
Models 17 Model ID
Copy Model ID.
Claude
GPT
Other
Codex
Codex can be pointed to ApiClo through a custom provider in config.toml.
- 1
In Codex Desktop / IDE, click the gear, then Codex Settings → Open config.toml; the CLI uses the same ~/.codex/config.toml.
- 2
Add the provider to the user-level config because project .codex/config.toml should not define provider/auth.
- 3
Set APICLAUDE_API_KEY to your sk-hub key. This variable name is chosen by env_key below.
- 4
Keep wire_api = responses: in current Codex this is the supported provider protocol.
- 5
Run codex in a test folder and verify Reply only OK.
~/.codex/config.toml
model = "claude-sonnet-5"
model_provider = "apiclaude"
[model_providers.apiclaude]
name = "ApiClo"
base_url = "https://apiclo.com/v1"
env_key = "APICLAUDE_API_KEY"
wire_api = "responses"
APICLAUDE_API_KEY env
# macOS / Linux
export APICLAUDE_API_KEY="sk-hub-..."
codex
# Windows PowerShell
$env:APICLAUDE_API_KEY="sk-hub-..."
codex
If Codex rejects the provider config, update Codex first. Do not switch wire_api to Chat Completions: current Codex docs describe responses as the supported provider protocol.
Models 17 Model ID
Copy Model ID.
Claude
GPT
Other
OpenCode
OpenCode supports provider config through opencode.json.
- 1
Go to a test project: cd ~/Desktop/my-project.
- 2
Install OpenCode: curl -fsSL https://opencode.ai/install | bash or npm install -g opencode-ai.
- 3
Check the install: opencode --version and opencode --help.
- 4
Create opencode.json in the project root and paste the config below.
- 5
Save the key with opencode providers login --provider apiclaude.
- 6
Run opencode and perform the OK/read-only test.
npm install -g opencode-ai
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"apiclaude": {
"npm": "@ai-sdk/openai-compatible",
"name": "ApiClo",
"options": {
"baseURL": "https://apiclo.com/v1"
},
"models": {
"claude-sonnet-5": {
"name": "claude-sonnet-5"
}
}
}
},
"model": "apiclaude/claude-sonnet-5"
}
opencode providers login --provider apiclaude
opencode
Models 17 Model ID
Copy Model ID.
Claude
GPT
Other
OpenClaw
OpenClaw can be connected through models.json with two provider modes.
- 1
Install OpenClaw for your platform and check openclaw --version.
- 2
Find the OpenClaw models file or create models.json in the config folder.
- 3
For Claude Messages mode, use provider apiclaude-messages with baseUrl https://apiclo.com.
- 4
For OpenAI Completions mode, use provider apiclaude-openai with baseUrl https://apiclo.com/v1.
- 5
Replace apiKey with your sk-hub key and run a read-only test in a project.
{
"models": {
"mode": "merge",
"providers": {
"apiclaude-messages": {
"baseUrl": "https://apiclo.com",
"apiKey": "sk-hub-...",
"auth": "token",
"api": "anthropic-messages",
"models": [
{
"id": "claude-sonnet-5",
"name": "claude-sonnet-5",
"contextWindow": 1000000,
"maxTokens": 64000
}
]
},
"apiclaude-openai": {
"baseUrl": "https://apiclo.com/v1",
"apiKey": "sk-hub-...",
"auth": "token",
"api": "openai-completions",
"models": [
{ "id": "claude-opus-4-8", "name": "claude-opus-4-8" }
]
}
}
}
}
Models 17 Model ID
Copy Model ID.
Claude
GPT
Other
Qwen Code
If Qwen Code is installed as an OpenAI-compatible client, OPENAI_* variables are enough.
- 1
Check Node.js: node --version.
- 2
Install Qwen Code: npm install -g @qwen-code/qwen-code@latest.
- 3
Check qwen --version and qwen --help.
- 4
For OpenAI-compatible mode, set OPENAI_API_KEY, OPENAI_BASE_URL, and OPENAI_MODEL.
- 5
If your Qwen Code build supports Anthropic env, you can use ANTHROPIC_AUTH_TOKEN + https://apiclo.com for Claude models.
- 6
Run qwen and perform the OK/read-only test.
npm install -g @qwen-code/qwen-code@latest
export OPENAI_API_KEY="sk-hub-..."
export OPENAI_BASE_URL="https://apiclo.com/v1"
export OPENAI_MODEL="claude-sonnet-5"
qwen
$env:OPENAI_API_KEY="sk-hub-..."
$env:OPENAI_BASE_URL="https://apiclo.com/v1"
$env:OPENAI_MODEL="claude-sonnet-5"
qwen
Models 17 Model ID
Copy Model ID.
Claude
GPT
Other
Aider
Aider works through OpenAI-compatible variables.
- 1
Install Aider: python -m pip install -U aider-chat.
- 2
Open a terminal in a git project where test edits are safe.
- 3
Set OPENAI_API_BASE and OPENAI_API_KEY.
- 4
Run aider --model openai/claude-sonnet-5.
- 5
First ask it to explain a file; only allow edits after the connection is verified.
python -m pip install -U aider-chat
OPENAI_API_BASE=https://apiclo.com/v1
OPENAI_API_KEY=sk-hub-...
aider --model openai/claude-sonnet-5
Models 17 Model ID
Copy Model ID.
Claude
GPT
Other
Pi
Pi connects through a model file and can use Anthropic Messages or OpenAI-compatible mode.
- 1
Install Pi in a macOS/Linux/WSL environment and check pi --version.
- 2
Create ~/.pi/agent and a models.json file.
- 3
For OpenAI-compatible mode, set baseUrl https://apiclo.com/v1 and model claude-sonnet-5.
- 4
For Anthropic Messages mode, use baseUrl https://apiclo.com and model claude-sonnet-5.
- 5
Pass the key through APICLAUDE_API_KEY or directly in local config, then run pi and perform the OK/read-only test.
mkdir -p ~/.pi/agent
{
"providers": {
"apiclaude-openai": {
"baseUrl": "https://apiclo.com/v1",
"apiKey": "${APICLAUDE_API_KEY}",
"api": "openai-completions",
"models": [
{ "id": "claude-sonnet-5", "name": "claude-sonnet-5" }
]
}
},
"defaultModel": "apiclaude-openai/claude-sonnet-5"
}
export APICLAUDE_API_KEY="sk-hub-..."
pi
Models 17 Model ID
Copy Model ID.
Claude
GPT
Other
Gemini CLI
Gemini CLI is not a good direct ApiClo target right now unless your build lets you set a custom OpenAI/Anthropic endpoint.
- 1
First check whether your Gemini CLI version has a custom base URL setting.
- 2
If custom endpoint is unavailable, do not try to override Google system variables: use Cline, Roo, Kilo, or Qwen Code.
- 3
If a custom OpenAI-compatible endpoint is available, use Base URL https://apiclo.com/v1, sk-hub API key, and model claude-sonnet-5.
- 4
After setup, run only a read-only test. If the client still calls the Google endpoint, switch to a supported CLI.
Recommended alternative: Qwen Code, Cline, Roo Code, Kilo Code
Agents and local router
For managed agents, use the ApiClo interface rather than free models in external API.
Hermes Agent
Built-in Hermes lives inside ApiClo: balance, model, memory, and history are managed from Agents.
- 1
Open Agents and choose Hermes.
- 2
Choose a model from the paid list: claude-sonnet-5, claude-opus-4-8, claude-sonnet-4-6.
- 3
For web pages, enable web context in chat; the URL will be read through the ApiClo reader/browser fallback.
- 4
To let Hermes work with your computer, download Desktop Bridge, create a pairing code, and grant only the needed file or folder permissions.
- 5
For long tasks, avoid switching models mid-chain without a reason; it helps cache and context.
ApiClo Desktop / Local Router
The local router is useful when a client only talks to localhost or when you want to centralize the key on the machine.
- 1
Download ApiClo Desktop Bridge and run it on the same machine as the IDE/CLI.
- 2
Paste the upstream sk-hub key into Desktop Bridge.
- 3
Click Fetch models and make sure the model list loads.
- 4
Click Start router.
- 5
In the IDE/CLI, set Local Base URL http://127.0.0.1:18441/v1 and any non-empty client API key.
- 6
Test Reply only OK; if it does not answer, check that the local router is running and port 18441 is free.
Download Windows: https://apiclo.com/downloads/ApiCloDesktopBridge.exe
Python app: https://apiclo.com/downloads/desktop-bridge-app.pyw
Python script: https://apiclo.com/downloads/desktop-bridge.py
Local Base URL: http://127.0.0.1:18441/v1
Client API Key: any non-empty value
Upstream key in Desktop Bridge: sk-hub-...
Click Fetch models first, then Start router. In the IDE, use the local Base URL, not the public one.
Models 17 Model ID
Copy Model ID.
Claude
GPT
Other
Raw API and SDKs
ApiClo accepts OpenAI-compatible, Anthropic-compatible, and Responses-style requests through public /v1.
OpenAI-compatible
Main route for IDEs, SDKs, and most self-hosted interfaces.
curl https://apiclo.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-5",
"messages": [{"role": "user", "content": "Hi"}],
"max_tokens": 512,
"stream": true
}'
Anthropic-compatible
Use this for clients expecting Claude Messages API.
curl https://apiclo.com/v1/messages \
-H "x-api-key: YOUR_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-5",
"max_tokens": 512,
"messages": [{"role": "user", "content": "Hi"}]
}'
Responses API
Use this for clients that need the Responses wire API.
curl https://apiclo.com/v1/responses \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-5",
"input": "Write a short checklist for release QA."
}'
Python SDK
Good for scripts, backend jobs, and tests.
from openai import OpenAI
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://apiclo.com/v1",
)
response = client.chat.completions.create(
model="claude-sonnet-5",
messages=[{"role": "user", "content": "Hi"}],
max_tokens=512,
)
print(response.choices[0].message.content)
JavaScript / TypeScript
Good for frontend-backed API routes and Node.js services.
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.APICLAUDE_API_KEY,
baseURL: "https://apiclo.com/v1",
});
const response = await client.chat.completions.create({
model: "claude-sonnet-5",
messages: [{ role: "user", content: "Hi" }],
max_tokens: 512,
});
console.log(response.choices[0].message.content);
Verify before real work
First prove that the client is connected correctly. This takes a minute and saves money on broken IDE requests.
Open the model list with the same key used by the client. If it does not open, fix the key or Base URL first.
https://apiclo.com/v1/models
Send a short non-stream request: Reply only OK. This checks the key, model, and base chat route.
Reply only OK
If the client supports streaming, repeat the same short test with stream. This catches SSE issues before a large task.
stream: true
For an IDE agent, ask it to read the current folder and say whether README.md exists, without editing files.
Look at the current folder and say whether README.md exists. Do not change anything.
If the client uses tools, run a small read-only tool task before heavy coding. Success should include a normal answer, not an empty tool result.
Test long context only after basic checks pass. Start with specific files, not the whole repository.
Keys, usage, and logs
One balance can serve many clients, but separate keys by project make debugging and cost control easier.
Create a separate API key for each IDE, CLI, backend, or test environment. Then Usage and Logs show exactly what spent tokens.
Balance and top-up are in Dashboard. Detailed requests, tokens, cost, status, and errors are in Logs.
Coding extensions often send tool schemas, terminal output, diffs, history, file maps, and a large system prompt. This is normal agent behavior. To reduce spend, ask for specific files, exclude node_modules/dist/logs/dumps, and do not raise maxTokens without a reason.
If you stop a stream after the model has started replying, part of the request may already be counted. Do not blindly retry file-changing tool calls; check Logs and file state first.
After a valid registration through a referral link, the invited user receives one free spin. The referrer does not receive a registration spin; referral rewards are 10% from the first level and 3% from the second level under the referral program rules. Quest spins use a separate prize pool. Every spin wins non-withdrawable ApiClo service credit; current odds are always published in the full rules.
Models
For IDE and API, use paid model IDs. Leave free aliases to web chat.
| Model ID | Recommended for | Provider context | Provider output | ApiClo output | Tools | Vision | Notes |
|---|---|---|---|---|---|---|---|
gpt-5-6-sol |
hard coding and deep reasoning | 1.05M | 128k | 64k | yes | client-dependent | preview; select the exact model ID |
gpt-5-6-terra |
everyday coding and reasoning | 1.05M | 128k | 64k | yes | client-dependent | preview; balanced GPT route |
gpt-5-6-luna |
fast tasks and short iterations | 1.05M | 128k | 64k | yes | client-dependent | preview; fast GPT route |
claude-opus-5 |
hardest coding and reasoning | 1M | 128k | 64k | yes | yes | new Claude flagship |
claude-sonnet-5 |
regular IDE/API work | 1M | 128k | 64k | yes | yes | default Claude model for coding |
claude-opus-4-8 |
hard coding and reasoning | 1M | 128k | 64k | yes | yes | more expensive than Sonnet; use for hard tasks |
claude-fable-5 |
review, writing, design audit | 1M | 128k | 64k | yes | yes | use after a short OK test in the client |
gpt-5-4 |
fast GPT tasks | 1.05M | 128k | 64k | yes | client-dependent | good for CLI/API work when explicitly selected |
gpt-5-5 |
strong GPT tasks | 1.05M | 128k | 64k | yes | client-dependent | select explicitly when you want the GPT route |
Context and provider output are the model's official limits. ApiClo no longer applies the old 128k/184k input-token cap: requests are bounded by the selected model's window and the general safe request-size limit. The public API uses a safe 64k output-token default; a client can explicitly request up to 128k on models whose provider limit supports it. On fallback, ApiClo automatically clamps the request to the actual target model's maximum.
Model and prompt-cache pricing
All values are USD per 1 million tokens. Cache rates apply only to tokens explicitly reported by the provider as cache writes or cache reads.
| Model | Regular input | Cache read | Cache write | Output |
|---|---|---|---|---|
Claude Opus 4.7claude-opus-4-7 |
$0.29 | $0.029 · 0.10× |
$0.363 · 1.25× · 5 min $0.58 · 2.00× · 1 h |
$0.29 |
Claude Opus 4.8claude-opus-4-8 |
$0.40 | $0.04 · 0.10× |
$0.50 · 1.25× · 5 min $0.80 · 2.00× · 1 h |
$0.40 |
Claude Fable 5claude-fable-5 |
$0.80 | $0.08 · 0.10× |
$1.00 · 1.25× · 5 min $1.60 · 2.00× · 1 h |
$0.80 |
Claude Opus 5claude-opus-5 |
$0.40 | $0.04 · 0.10× |
$0.50 · 1.25× · 5 min $0.80 · 2.00× · 1 h |
$0.40 |
Claude Opus 4.6claude-opus-4-6 |
$0.29 | $0.029 · 0.10× |
$0.363 · 1.25× · 5 min $0.58 · 2.00× · 1 h |
$0.29 |
ChatGPT 5.5gpt-5-5 |
$0.40 | $0.04 · 0.10× | — | $0.40 |
GPT 5.4gpt-5-4 |
$0.19 | $0.019 · 0.10× | — | $0.19 |
Claude Opus 4.5claude-opus-4-5 |
$0.40 | $0.04 · 0.10× |
$0.50 · 1.25× · 5 min $0.80 · 2.00× · 1 h |
$0.40 |
Claude Sonnet 5claude-sonnet-5 |
$0.38 | $0.038 · 0.10× |
$0.475 · 1.25× · 5 min $0.76 · 2.00× · 1 h |
$0.38 |
Claude Sonnet 4.6claude-sonnet-4-6 |
$0.32 | $0.032 · 0.10× |
$0.40 · 1.25× · 5 min $0.64 · 2.00× · 1 h |
$0.32 |
Claude Sonnet 4.5claude-sonnet-4-5 |
$0.32 | $0.032 · 0.10× |
$0.40 · 1.25× · 5 min $0.64 · 2.00× · 1 h |
$0.32 |
Claude Haiku 4.5claude-haiku-4-5 |
$0.32 | $0.032 · 0.10× |
$0.40 · 1.25× · 5 min $0.64 · 2.00× · 1 h |
$0.32 |
GPT 5.6 Solgpt-5-6-sol |
$0.40 | $0.04 · 0.10× | $0.50 · 1.25× | $0.40 |
GPT 5.6 Terragpt-5-6-terra |
$0.30 | $0.03 · 0.10× | $0.375 · 1.25× | $0.30 |
GPT 5.6 Lunagpt-5-6-luna |
$0.19 | $0.019 · 0.10× | $0.238 · 1.25× | $0.19 |
Kimi K3 (TokenRouter)cheap-kimi-k3 |
$0.00 | $0.00 · 0.10× | — | $0.00 |
For Claude, cache reads cost 10% of input, 5-minute writes cost 125%, and 1-hour writes cost 200%. For GPT-5.6, cache reads also cost 10% and writes cost 125%; the separate 1-hour rate in this table does not apply to GPT. If the provider reports no cache-read or cache-write tokens, no cache amount is charged for that category. Automatic fallback keeps the tariff of the model selected by the customer.
Claude reports regular input, cache reads, and cache writes as separate, mutually exclusive provider-usage categories. A request can therefore show zero regular input while the prompt appears under cache read or cache write; those input tokens are not missing. A coding client can create cache again when it changes the cached prefix or sends new cache_control blocks itself.
The exact calculation, cache-read/cache-write token counts, and applied rates for each request are available in Logs → Why charged?
gpt-5-6-sol
flagship preview route · 1.05M context · 128k provider output · 128k max · 64k default ApiClo output
gpt-5-6-terra
balanced preview route · 1.05M context · 128k provider output · 128k max · 64k default ApiClo output
gpt-5-6-luna
fast preview route · 1.05M context · 128k provider output · 128k max · 64k default ApiClo output
claude-opus-5
new flagship route · 1M context · 128k provider output · 128k max · 64k default ApiClo output
claude-sonnet-5
balanced paid route · 1M context · 128k provider output · 128k max · 64k default ApiClo output
claude-opus-4-8
strong coding and reasoning · 1M context · 128k provider output · 128k max · 64k default ApiClo output
claude-opus-4-7
strong coding and reasoning · 1M context · 128k provider output · 128k max · 64k default ApiClo output
claude-fable-5
new test route · 1M context · 128k provider output · 128k max · 64k default ApiClo output
claude-sonnet-4-6
stable default · 1M context · 128k provider output · 128k max · 64k default ApiClo output
claude-sonnet-4-5
stable fallback · 200k context · 64k provider output · 64k ApiClo output
claude-opus-4-6
legacy strong route · 1M context · 128k provider output · 128k max · 64k default ApiClo output
claude-opus-4-5
legacy strong route · 200k context · 64k provider output · 64k ApiClo output
claude-haiku-4-5
fast and cheaper · 200k context · 64k provider output · 64k ApiClo output
gpt-5-5
GPT paid route · 1.05M context · 128k provider output · 128k max · 64k default ApiClo output
gpt-5-4
fast GPT route · 1.05M context · 128k provider output · 128k max · 64k default ApiClo output
If the client shows Model not found, open /models with your key first and check the exact id.
https://apiclo.com/v1/models
Troubleshooting
Common errors almost always come down to key, base URL, model id, or protocol mismatch.
Check that the full sk-hub key was pasted without spaces. If the key was shown once and lost, create a new one.
Compare the model id with /models. Do not use a display name instead of an id.
Most often this is the wrong model id for the client. In Continue, SDKs, and raw API calls, use claude-sonnet-5, not apiclaude/claude-sonnet-5.
Check whether the client added a second /v1. OpenAI-compatible needs /v1; Anthropic Messages/custom base usually needs the root without /v1.
Exclude node_modules, dist, logs, binary files, and long dumps. For long tasks, create a handoff summary.
Retry with backoff. If this is an IDE, keep the same key and model id to preserve session affinity.
Some IDEs limit vision in compatible mode. Test a plain text request first, then test images separately.