Change one base URL,and 31 models are there.
One base URL. Claude Code, opencode, Cline and Zed connect without a patch.
31 models. Open-weight models under their official names, closed ones via inference providers, prices you can check.
- input
- $0.31 / M
- output
- $0.46 / M
- cache read
- $0.15 / M
Two protocols. Anthropic Messages and OpenAI Chat Completions, both live.
/anthropic/v1/messages
/openai/v1/chat/completions
Metered in crystals. You pay for what you use, itemised down to the cache price. Crystals you buy never expire.
1,142/ 1,900
TTL — never
No silent routing. The alias you send is the model that runs — no downgrade at peak.
pixcode-max → pixcode-max
pixcode-pro → pixcode-pro
no fallback·no downgrade
- Claude CodeAnthropic compatible
- opencodeAnthropic / OpenAI
- ClineAnthropic / OpenAI
- Roo CodeOpenAI compatible
- Kilo CodeOpenAI compatible
- Factory DroidBYOK custom model
- Zedanthropic_compatible
- GooseOpenAI compatible
One command to sign in. Approve it once in the browser and the credential lands in ~/.pixcode/auth.json — no pasting keys between tabs.
export ANTHROPIC_BASE_URL="https://api.pixcode.ai/anthropic"
export ANTHROPIC_AUTH_TOKEN="sk-px-..."
export ANTHROPIC_DEFAULT_SONNET_MODEL="pixcode-pro"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="pixcode-fast"Three aliases, chosen by task length. Assign them by role in your agent config: titles and compaction to the cheap one, the run that has to land to the strong one.
pixcode-fast
Chores for the agent
Titles, context compaction, diff summaries. Set it as small_model in opencode and this work barely touches your balance.
1,000 crystals run about
500turns
pixcode-pro
everyday driver1M context — paste the whole repo
What you should be on most of the time. Once the prefix cache hits, repeated context bills at the cache price, not the input price.
1,000 crystals run about
175turns
pixcode-max
Finishes the long runs
The difference is not the benchmark score, it is whether the run reaches the end. Past twenty steps they diverge: some give up, some finish.
1,000 crystals run about
25turns
Three things we will not change for margin. Printing them on the landing page is what makes them checkable.
01
Every rate is published
Sold at the upstream official list price — zero markup on all 31 models. Open their pricing page next to ours and the numbers should match exactly.
02
No silent routing
The alias you send is the model that runs. Swapping the model under an alias would make every other number on this page meaningless.
03
Bring your own key, free forever
The CLI takes your own upstream key and we charge nothing for the proxy. Through the gateway the price is the same as the vendor’s — the only difference is who manages the key.
Questions worth asking before you buy.
How is the rate calculated?
The upstream official list price, zero markup, published line by line on the pricing page so you can check it against the vendor’s own site. Our margin is the wholesale discount we negotiate with suppliers — not a markup on you.
Do crystals expire?
Crystals you buy never expire. Only the bonus that comes with a subscription expires at month end, and charges draw from the bonus first so you spend the expiring part before the rest.
How does this compare to buying the upstream API?
The price is the same — the official list price either way. What you get is not juggling keys and balances across vendors, one entry point for every model family, and a payment path that works in regions where topping up upstream simply does not. Prefer direct? Our CLI supports your own key at no charge.
Will you quietly route my request to a cheaper model?
No. You pick the model; the aliases and their rates are written on the models page. Automatic downgrades are the kind of thing a user cannot see, and doing them spends trust.
What models are behind this?
Exactly what the catalogue says: open-weight models (GLM, Kimi, DeepSeek and others) sold under their official names; Claude, GPT and Gemini served through third-party inference providers, with names matching the originals and prices you can verify.
What happens when I run out?
A 402 with a prompt to get more crystals. No silent fallback to a worse model.
Billed per call, not per seat. What each request cost, and whether it billed at the input or the cache price, is itemised on the bill — you do not wait for a month-end statement to find out where the money went.
Turns per 1,000 crystals
The same 1,000 crystals: about 500 turns on fast, about 25 on max. Max costs twenty times more, and it is worth it in exactly one case — when a long run has to finish.
What one turn costs
Once the prefix cache hits, repeated context settles at the cache price rather than the input price — the biggest saving in a long session.
0%
Listed markup
Every one of the 31 models at the official list price, printed on pricing
1M
Context window
Available on pixcode-pro — paste the whole package in
2
Compatible protocols
Anthropic Messages + OpenAI Chat Completions
Singapore
Gateway region
Egress from Singapore, one less hop to upstream
Do the arithmetic first.
What each model costs per million tokens is on the pricing page — the same numbers as the vendor’s own site. Gateway or your own key, both work; the difference is how many keys you want to manage.