Pick the example that matches your provider subscriptions. Each file is a ready-to-use zeroapi-config.json policy snapshot — copy it to ~/.openclaw/zeroapi-config.json.
If you are using OpenClaw from Slack, Telegram, WhatsApp, Matrix, Discord, or another chat channel, start with:
/zeroapi
or:
/skill zeroapi
if your channel only exposes the generic skill runner.
If you are doing a repo-local or terminal-only setup, start with:
npx tsx scripts/first_run.tsThat wizard writes a starter config for you and prints the exact auth/install follow-up commands. It is the shell fallback, not the main chat UX.
Important: these examples do not replace ~/.openclaw/openclaw.json. OpenClaw runtime defaults, provider wiring, and per-agent model state still live there.
These examples include either subscription_profile, subscription_inventory, or both. If both blocks are missing or empty, ZeroAPI may silently filter out every configured provider.
These examples also set external_model_policy to stay, which is the safe default when you use extra OpenClaw providers outside the ZeroAPI pool.
These examples now also set routing_mode to balanced, which is ZeroAPI's current default policy contract.
These examples are intentionally conservative starter pools. benchmarks.json tracks a wider 172-model benchmark reference snapshot, but the canned configs keep a smaller, easier-to-operate subset. That practical subset is now documented in policy-families.json.
| File | Providers | Monthly Cost | Best For |
|---|---|---|---|
openai-only.json |
OpenAI Codex | ~$20 | Getting started, OpenAI-only setup |
subscription-profile.json |
OpenAI Codex | ~$20 | Minimal profile-only baseline without explicit inventory |
openai-multi-account.json |
OpenAI Codex (multi-account) | ~$40-$240 | Same-provider Plus/Pro pools with explicit account inventory |
openai-glm.json |
OpenAI + Z AI GLM | ~$30 | Add fast orchestration with GLM-5.1 |
openai-glm-kimi.json |
OpenAI + Z AI + Kimi | ~$49 | Deep orchestration fallback coverage |
full-stack.json |
All 5 providers | ~$109-$170 | Maximum resilience, longest fallback chains |
| Model | Provider | Blended Price |
|---|---|---|
| GPT-5.5 | openai-codex | $11.25 |
| GPT-5.4 | openai-codex | $5.63 |
| GLM-5.1 | zai | $1.55 |
| Kimi K2.6 (K2.5 benchmark proxy until refresh) | moonshot | $1.71 |
| MiniMax-M2.7 | minimax-portal | $0.53 |
| Qwen Portal coder-model | qwen-portal | $1.13 benchmark proxy |
cp examples/<file>.json ~/.openclaw/zeroapi-config.json# OpenAI Codex (ChatGPT OAuth)
openclaw models auth login --provider openai-codex
# Z AI GLM (API key)
openclaw onboard --auth-choice zai-coding-global
# Kimi (API key)
openclaw onboard --auth-choice moonshot-api-key
# MiniMax (OAuth portal)
openclaw onboard --auth-choice minimax-portal
# Qwen Portal (OAuth)
openclaw models auth login --provider qwen-portal --set-defaultopenclaw models statusAll models in your config should show as available.
Then check runtime/policy alignment:
bash scripts-zeroapi-doctor.shAnd simulate a real prompt before enabling live traffic:
npx tsx scripts/simulate.ts --prompt "coordinate a 3-step data pipeline"If you are deciding whether to keep plain balanced mode or enable a modifier, compare them on a small prompt set first:
npx tsx scripts/compare_modifiers.ts --prompts-file prompts.txtEdit workspace_hints in your config to bias routing per agent workspace:
"workspace_hints": {
"codex-workspace": ["code"],
"glm-workspace": ["orchestration"],
"fixed-codex-agent": null
}A category list opts an agent into routing and acts as a weak bias, not as the primary routing signal. A null value means specialist agent: ZeroAPI skips routing and leaves that agent's OpenClaw model assignment alone.
All example configs use routing_mode: "balanced".
ZeroAPI classifies each task into one of six categories based on keywords in the prompt:
| Category | Typical Keywords | Example |
|---|---|---|
code |
implement, refactor, debug, test | "refactor the auth module" |
research |
analyze, explain, compare, investigate | "explain the tradeoffs between X and Y" |
orchestration |
orchestrate, pipeline, workflow, coordinate | "coordinate a 3-step data pipeline" |
math |
solve, calculate, equation, proof | "solve this integral" |
fast |
quick, format, convert, translate | "quickly format this list as CSV" |
default |
(no keyword match) | "bunu düzelt" |
High-risk keywords (deploy, delete, drop, production, credentials, etc.) block automatic routing regardless of category. Conservative skips are expected; not every message should switch models.
If you have multiple subscriptions under the same provider, prefer subscription_inventory over squeezing them into one subscription_profile tier. ZeroAPI uses inventory both for provider headroom scoring and for authProfileOverride steering when the winning account declares an authProfile. Current stable OpenClaw releases still do not merge that hook field directly, so ZeroAPI uses its best-effort session-store sync when the session already exists, and otherwise keeps using auth.order, cooldowns, and session stickiness.
- Keywords: Add domain-specific terms to the
keywordsobject - Fallback chains: Reorder or add models in
fallbacksarrays - Fast TTFT threshold: Adjust
fast_ttft_max_seconds— only models withttft_secondsbelow this are eligible forfasttasks - Default model: Change
default_modelto whichever model you want as ZeroAPI's policy default target, then make sureopenclaw.jsonagrees if you want runtime default behavior to match
All benchmark values in these configs are sourced from benchmarks.json (date: 2026-04-24).
| Benchmark | What It Measures |
|---|---|
intelligence |
General reasoning composite |
coding |
Code generation and repair (SWE-bench style) |
tau2 |
Tool-use and agentic task completion (tau2-bench) |
terminalbench |
Terminal/shell command accuracy |
ifbench |
Instruction following |
gpqa |
Graduate-level science QA |
lcr |
Long-context retrieval |
hle |
Humanity's Last Exam |
scicode |
Scientific coding tasks |