An OpenAI-compatible API backed by your logged-in Claude Code — no separate API key, no console. Any "bring your own model" (BYOM) tool points at it and XEN answers. Plus a file webhook so any file reaches the brain.
Connection
Base URLhttp://100.80.76.79:8020/v1(Nitro · Tailscale mesh)
Modelxen (or xen-warm)
API keyyour XEN_API_TOKEN (from secrets.env) — sent as Authorization: Bearer <token>. Never share it.
Backed byclaude on Nitro (E:\.local\bin\claude.exe, config E:\.claude) — your subscription, your session.
Reachable on your Tailscale mesh only (not the public internet). Devices off the mesh can't hit it yet — a public route is the next step. The token is required: the gateway is NOT open.
Endpoints
GET/healthliveness — returns {ok:true, mode}. No auth.
Saves the file on the brain box and notifies XEN to read it. This is what the desk PWA (/desk) and the "Xen Send File" iOS Shortcut post to.
Modes
fork (default)each call runs claude -p — shares your identity/memory, fresh per-call context, cannot disturb your live session. In use now.
sessionroutes the call through your ONE live warm session (same context, like an MCP). Built, off by default — flip with XEN_GW_MODE=session when you want it.