OX-CLAUDE

Run Ox Alpha in your terminal

Free stealth model on OpenRouter, working in Claude Code CLI or opencode in about 3 minutes.

Model ID stealth/ox-alpha Price $0 in / $0 out (preview) Context 1M tokens Tools + images yes
Claude Code speaks the Anthropic API. OpenRouter exposes an Anthropic-compatible endpoint, so you just point Claude Code at OpenRouter with a few environment variables. No plugin, no proxy.
1

Install Node.js 18+

Skip if this prints 18 or higher. Otherwise get it from nodejs.org.

node -v
2

Install Claude Code

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

or, without Node (macOS/Linux), see the install docs:

curl -fsSL https://claude.ai/install.sh | bash
3

Sign in to OpenRouter

Open openrouter.ai/settings/keys. If you are not signed in you land here. Continue with GitHub is one click, no password to set.

openrouter.ai/settings/keys - sign in
The GitHub icon (left of the three) signs you in with your GitHub account.
4

Create an API key

Back on the keys page: Create Key → name it → copy the sk-or-v1-… value. It is shown only once.

Ox Alpha is free during preview, so no credits are required. Check the price any time on the model page:

openrouter.ai/stealth/ox-alpha
The real model page: ID stealth/ox-alpha, price Free, context 1M.
5

Point Claude Code at OpenRouter

Run these in your terminal. Replace the key in line 2 with your own. They only affect this terminal window. Other windows keep using your normal Claude account.

export ANTHROPIC_BASE_URL="https://openrouter.ai/api"
export ANTHROPIC_AUTH_TOKEN="sk-or-v1-YOUR-KEY-HERE"
export ANTHROPIC_API_KEY=""
export ANTHROPIC_MODEL="stealth/ox-alpha"
export ANTHROPIC_SMALL_FAST_MODEL="stealth/ox-alpha"
  • Base URL ends in /api, not /api/v1. Claude Code appends /v1/messages itself.
  • The empty ANTHROPIC_API_KEY stops a real Anthropic key from taking priority.
6

Make it permanent, without hijacking normal Claude

Don't put those export lines in ~/.zshrc directly. They apply to every shell, so every claude session would go to OpenRouter and your Anthropic subscription would sit unused. Use a separate command instead.

Store the key in a file only you can read (paste your own key in):

mkdir -p ~/.config/openrouter && printf '%s' 'sk-or-v1-YOUR-KEY-HERE' > ~/.config/openrouter/key && chmod 600 ~/.config/openrouter/key

Add an oxclaude command that sets the variables for that one run only:

cat >> ~/.zshrc <<'EOF' # Ox Alpha (OpenRouter): only inside `oxclaude`; plain `claude` stays on Anthropic oxclaude() { local key="${OPENROUTER_API_KEY:-$(cat ~/.config/openrouter/key 2>/dev/null)}" if [[ -z "$key" ]]; then echo "No OpenRouter key: put it in ~/.config/openrouter/key or export OPENROUTER_API_KEY" >&2 return 1 fi ANTHROPIC_BASE_URL="https://openrouter.ai/api" \ ANTHROPIC_AUTH_TOKEN="$key" \ ANTHROPIC_API_KEY= \ ANTHROPIC_MODEL="stealth/ox-alpha" \ ANTHROPIC_SMALL_FAST_MODEL="stealth/ox-alpha" \ ANTHROPIC_CUSTOM_MODEL_OPTION="stealth/ox-alpha" \ ANTHROPIC_CUSTOM_MODEL_OPTION_NAME="Ox Alpha" \ ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION="OpenRouter stealth · free · 1M context" \ command claude "$@" } EOF
source ~/.zshrc
  • claude → your normal Anthropic account, untouched.
  • oxclaude → same CLI, same project, running on Ox Alpha.
  • The three ANTHROPIC_CUSTOM_MODEL_OPTION* lines are what put Ox Alpha in the /model list inside that session.

On bash, append the same function to ~/.bashrc.

7

Launch and verify

cd your-project
claude

Started via oxclaude? Use that instead of claude. Type /status inside the session. The API base and model should read OpenRouter / Ox Alpha, and /model lists Ox Alpha as a pickable entry.

zsh - claude
$ claude

✻ Welcome to Claude Code

> /status

  Account
    API base     https://openrouter.ai/api
    Auth         ANTHROPIC_AUTH_TOKEN (sk-or-v1-…)
  Model
    Main         stealth/ox-alpha
    Small/fast   stealth/ox-alpha

> explain what this repo does
  ⏺ Reading files…
What /status looks like when traffic goes to OpenRouter.

Live token usage: openrouter.ai/activity

If something breaks

SymptomFix
401 UnauthorizedKey wrong, or ANTHROPIC_API_KEY not blanked. Check with echo $ANTHROPIC_AUTH_TOKEN.
404 not foundBase URL has a trailing /v1. Use https://openrouter.ai/api.
Still hitting AnthropicStale vars in another terminal tab, or a settings.json override. Open a fresh terminal.
model not foundID must be exactly stealth/ox-alpha. Stealth models get renamed. Check the model page.
Privacy: stealth models log prompts for the lab behind them. Don't send secrets or client code. Logging options: openrouter.ai/settings/privacy.