Ox Alpha showed up on OpenRouter on 20 August with no author attached to it. Nobody has confirmed which lab built it β community fingerprinting points at Z.ai's GLM family, unconfirmed. It has a 1M-token context window, it's been scoring well on coding benchmarks, and it's free during its preview window, which is expected to run to roughly 27 August.
I wanted to try it on a real project without disturbing the Claude Code setup I use every day. This is what I worked out.
The key detail most guides skip: if you configure this the obvious way, you'll silently reroute all your Claude sessions through OpenRouter and start burning credits instead of your subscription. The setup below scopes it to a single project folder so that doesn't happen.
Claude Code normally talks to Anthropic's API. OpenRouter exposes an endpoint that speaks the same protocol, so you can point Claude Code at OpenRouter instead and have it route to Ox Alpha.
You keep the entire Claude Code experience β the tools, the agentic loop, the file editing, the terminal integration. Only the model answering changes.
Sign in at openrouter.ai/keys and create one. It looks like sk-or-v1-β¦
. Creating a key is free.
In the project you want to use Ox Alpha on, create:
your-project/.claude/settings.local.json
{
"env": {
"ANTHROPIC_BASE_URL": "https://openrouter.ai/api",
"ANTHROPIC_AUTH_TOKEN": "sk-or-v1-YOUR-KEY-HERE",
"ANTHROPIC_API_KEY": "",
"ANTHROPIC_MODEL": "stealth/ox-alpha"
},
"permissions": {
"deny": [
"Read(.env)",
"Read(**/.env)",
"Read(**/.env.local)",
"Grep(**/.env)",
"Grep(**/.env.local)"
]
}
}
ANTHROPIC_BASE_URL
reroutes everything, not just Ox Alpha. Put it in ~/.claude/settings.json
and your normal Sonnet and Opus sessions also start going through OpenRouter β billed to OpenRouter credits rather than your Claude Pro or Max plan.
Project-local keeps it contained to one folder. Every other window carries on exactly as before.
It stops Claude Code's file tools reading your .env
files. Worth having when the model on the other end is operated by someone you can't identify.
Treat it as a seatbelt, not a guarantee β the stronger move is simply not keeping production secrets in a project you point an unknown model at.
Add this to the project's .gitignore
before you commit anything:
.claude/settings.local.json
File β Open Folder, and pick that project.
A separate window β not a folder tab inside an existing one. The settings are read per-window at startup.
Cmd + Esc
(or Ctrl + Esc
), or the Claude Code icon in the activity bar.
If you'd already opened the window before saving the key, run Developer: Reload Window from the command palette first. The config is only read at startup.
Don't skip this. A config that's being silently ignored looks identical to one that's working.
Type this into the Claude Code chat box:
Which model are you, and who made you?
You can also run /model
β the picker marks the active model with a tick, and stealth/ox-alpha
shows up as a custom entry at the bottom. Switching back to Sonnet or Opus is just /model
again in the same window.
Your code goes somewhere unidentified. Anything the model reads β files, terminal output, error messages β is sent to whoever operates Ox Alpha, and nobody has publicly confirmed who that is or what their retention policy looks like. Fine for a side project. Think harder before pointing it at client work, anything under NDA, or a repo with real user data.
The prices in /model aren't your Claude plan. Once the base URL points at OpenRouter, the picker lists OpenRouter's rates for the Claude models too. You aren't charged those unless you actually switch to one of those rows in this window β but it's a useful reminder that this window is no longer on your subscription.
There's no /status command. Not every build has one, and you don't need it. Ask the model what it is, or run
/model
and see what's ticked.Slash commands don't autocomplete at all. You're probably typing in the VS Code command palette rather than the Claude Code chat input. Click into the chat box first.
It still answers as Claude. Almost always one of three things: the window was opened before you saved the key (reload it), the file is in the wrong place (it must be .claude/settings.local.json
inside the folder you opened), or the JSON is malformed β a trailing comma is enough to break it silently.
Authentication errors. Check ANTHROPIC_API_KEY
is present and set to an empty string. It looks redundant, but leaving it out lets an existing Anthropic key take precedence and the request goes to the wrong place.
Model not found, or it suddenly costs money. Stealth models are temporary by design β they get renamed, repriced, or withdrawn when the preview ends. Check the model page for the current slug and pricing.
For the length of the free window, it costs nothing to find out, and the setup above means you can switch back with one /model
command.
The more interesting use I've found isn't replacing Claude β it's running two windows side by side on the same codebase: one on my Claude subscription, one on Ox Alpha, each in its own git worktree working on a different feature. That's a longer post.
The same environment variables work in the terminal CLI too β export them before launching claude
.
Written 25 August 2026, while Ox Alpha's provenance was still unconfirmed. I drafted this with AI assistance and ran every step on my own machine before publishing.