Endpoint & Key
The base URL your clients talk to, and the keys that authorize them
Set a domain when the gateway is reached through a tunnel or proxy and the address in your browser is not the one clients should use. Leave empty to use the address this page was loaded from.
Every request to /v1/* must carry a valid key. With this off, only this machine can reach the proxy.
A login cookie only opens /api/dashboard/* and /api/oauth/*. It can never reach the model proxy.
Keys for authorized clients connecting to 9Router
Provider Connections
Upstream AI accounts organized strictly by functional category
Model Combos
Multi-provider aliases and automated fallback cascades
Settings
Dashboard credentials, backup and reverse-proxy configuration
🌐 Cloudflare / Reverse Proxy
alt_route Trust proxy headers
Reads X-Forwarded-For for the real client IP. Off, one
attacker's wrong guesses lock out everyone.
lock Secure session cookie
Adds the Secure flag so the login cookie is never sent
over plain HTTP. Turn on when the public URL is HTTPS.
Fixed at start — changing it needs a restart with HOST=127.0.0.1.
—
—
Proxy Pools
Egress pools your providers route through, and whether each one can actually reach the internet
Token Saver
Compress what goes in (RTK, Headroom) and what comes out (Caveman, Ponytail).
Send X-9Router-Token-Saver: off to skip all of it for one request.
🦀 RTK (Rust Token Killer)
Compresses tool output (git diff, grep, ls,
tree, log dumps) in place before the request leaves the proxy.
🦴 Caveman
Injects a terse-style system prompt: technical substance stays exact, filler goes.
✂️ Ponytail
Biases the model toward minimal code: YAGNI first, stdlib over dependencies, deletion over addition.
🛡️ Prompt Injection Guard
Flags adversarial system-prompt extraction attempts in the console log. Tag only — a flagged request is never blocked.
🧠 Headroom
Optional external proxy. Sends the conversation to /v1/compress
before routing, so long histories shrink without changing the client.
Fail-open: an unreachable or slow proxy costs the request its compression, never its success.
monitor_heart Resources
● Connecting.../v1/models:
…