How to Use Union Alpha
Three ways to run the Union Alpha model — start chatting in a browser, call it from your own code, or wire it into the coding agent you already use.
Pick your path
Union Alpha runs on OpenRouter. Everything below starts from the same place: an OpenRouter account and an API key.
Just want to try it
No install, no code. Open the model on OpenRouter and start a chat.
Jump to web chat →Writing your own app
Point any OpenAI-compatible client at OpenRouter and set the model ID.
See the API page →Using a coding agent
OpenCode, Cline, or Claude Code — config for each is below.
Jump to agent setup →Step 0: Get an API key
Every method on this page needs the same key. You only do this once.
- Sign up or log in at openrouter.ai.
- Open Settings → API Keys.
- Click Create API Key and copy the value — it starts with
sk-or-v1-.
Keep the key out of your source code. Put it in an environment variable
(OPENROUTER_API_KEY) or your editor's settings, not in a file you might commit.
Option 1: Chat with it in the browser
Fastest way to see what the model can do — no install, no key pasting.
- Open the model page at openrouter.ai/stealth/union-alpha.
- Use the chat entry on that page to start a conversation.
- Pick
stealth/union-alphaas the model if the picker does not already have it selected.
Good for testing prompts, checking whether it handles your language or domain vocabulary, and comparing answers against other models before you commit.
Option 2: Call it from your own code
Union Alpha uses OpenRouter's OpenAI-compatible endpoint, so any client that speaks the OpenAI chat-completions API works. Three values are all you need:
| Setting | Value |
|---|---|
| Base URL | https://openrouter.ai/api/v1 |
| Model ID | stealth/union-alpha |
| Auth header | Authorization: Bearer $OPENROUTER_API_KEY |
Code examples, the full parameter reference, and tool-calling details live on the Union Alpha API page — kept there so this page stays a setup guide rather than a second copy of it.
Option 3: Use it inside your coding agent
Two of the three setups below use OpenRouter as a built-in provider, which is the supported path. The third needs a caveat — read it before you spend time on it.
OpenCode (terminal and desktop)
- Install OpenCode:
curl -fsSL https://opencode.ai/install | bash(ornpm install -g opencode-ai, orbrew install anomalyco/tap/opencode). - In your project directory, start it with
opencode, then run/connectand choose OpenRouter. - Paste your OpenRouter API key when prompted. Run
opencode auth listto confirm it was stored. - If
stealth/union-alphais not in the model list yet, add it to youropencode.json(project root, or~/.config/opencode/opencode.jsonfor all projects):
{
"$schema": "https://opencode.ai/config.json",
"model": "openrouter/stealth/union-alpha",
"provider": {
"openrouter": {
"models": {
"stealth/union-alpha": {}
}
}
}
}
OpenCode composes model IDs as provider/model, which is why the default-model line
is prefixed with openrouter/ while the key in the models map is not.
Restart OpenCode after editing the config — the provider catalog is read at startup.
The desktop app and the terminal share the same config and credentials, so you only connect once.
Cline (VS Code extension)
- Open Cline's settings from the gear icon in the Cline panel.
- Set API Provider to OpenRouter.
- Paste your OpenRouter API key into the OpenRouter API Key field. Leave "Use custom base URL" unchecked.
- Open the Model dropdown and search for
union alpha. If it is not listed, reload the Cline panel so it refetches OpenRouter's model catalog.
Claude Code
ANTHROPIC_BASE_URL at
https://openrouter.ai/api — but OpenRouter's own documentation states that Claude Code
is only guaranteed to work with Anthropic first-party models, and that Claude Code is optimized for
Anthropic models and may not work correctly with other providers. Routing Claude Code to a
non-Anthropic model such as Union Alpha is therefore untested and unsupported.
If you want an agent experience, use OpenCode or Cline above instead.
If you still want to try it, this is the supported OpenRouter wiring — swap in the Union Alpha model:
export OPENROUTER_API_KEY="sk-or-v1-..."
export ANTHROPIC_BASE_URL="https://openrouter.ai/api"
export ANTHROPIC_AUTH_TOKEN="$OPENROUTER_API_KEY"
export ANTHROPIC_API_KEY="" # must be explicitly empty
# route a model class to Union Alpha (experimental)
export ANTHROPIC_DEFAULT_SONNET_MODEL="stealth/union-alpha"
- Add the variables to your shell profile (
~/.zshrcor~/.bashrc) and reload it — otherwise you will keep testing the old environment. - If you were previously logged into Claude Code with an Anthropic account, run
/logoutonce and relaunch, or the cached login will conflict with the gateway credentials. - Start
claudein your project, then run/statusto verify the auth token and base URL.
Two details that trip people up: the base URL must include the scheme and stop at
/api (not /api/v1), and ANTHROPIC_AUTH_TOKEN must be defined
after OPENROUTER_API_KEY in the same file, or it expands to an empty string and
every request fails with an auth error.
Sending an image
Union Alpha takes image input alongside text. Pass it in the standard OpenAI-compatible content array — this works the same way through the API and through any client that supports multimodal input:
{
"model": "stealth/union-alpha",
"messages": [{
"role": "user",
"content": [
{ "type": "text", "text": "Describe what is wrong with this chart." },
{ "type": "image_url", "image_url": { "url": "https://example.com/chart.png" } }
]
}]
}
Troubleshooting
| Symptom | Cause and fix |
|---|---|
| Model not found | The ID must be exactly stealth/union-alpha, with the stealth/ prefix and a hyphen. union-alpha alone, unionalpha, or union_alpha all fail. |
| 401 / auth error | Key missing, expired, or blanked out by an empty variable. Re-check it at OpenRouter → Settings → API Keys, and confirm OPENROUTER_API_KEY is defined before anything that references it. |
| 429 / rate limited | Free models share global rate limits tied to your OpenRouter account. Wait and retry, or spread requests out. See OpenRouter's rate-limit FAQ for the current rule. |
| Very slow responses | It is a free stealth model on shared capacity, so latency varies. Fine for long-form and batch jobs; poor fit for latency-sensitive interactive use. |
| Model missing from a client's picker | The client caches its model catalog at startup. Restart the app, or add the slug explicitly to the client's config (as shown for OpenCode above). |
| Where did my prompt go? | Union Alpha is served by a third-party provider. OpenRouter states that prompts and completions may be retained by that provider but are not used for training. Do not send secrets or regulated data. |
FAQ
What is the model ID for Union Alpha?
The OpenRouter model ID is stealth/union-alpha. It is case-sensitive and includes the
stealth/ provider prefix.
How do I use Union Alpha for free?
Create an OpenRouter account, generate an API key, and call stealth/union-alpha —
or chat with the model directly on its OpenRouter page. Union Alpha is free to use.
Can I use Union Alpha in OpenCode or Cline?
Yes. Both support OpenRouter as a built-in provider: connect your API key, then select
stealth/union-alpha. In OpenCode you may need to add the slug to
provider.openrouter.models in opencode.json if it is not in the default list.
Does Union Alpha work with Claude Code?
OpenRouter supports Claude Code through ANTHROPIC_BASE_URL, but only guarantees
compatibility with Anthropic first-party models. Running Union Alpha through Claude Code is
untested and unsupported — use Cline or OpenCode for agent work.
Does Union Alpha accept images?
Yes — it is multimodal, taking text and image input and returning text, using the standard
OpenAI-compatible image_url content block.
Can I use Union Alpha in production?
Treat it as experimental. It is a free stealth model served by a third-party provider with no SLA, and it is not intended as a dependency for production workloads.