Operator
Owns the OpenAI and Anthropic console keys. Runs the box. Mints and revokes sk-gw- keys.
USE
Two roles. Official keys stay on the operator box. Callers only receive a gateway key.
Operator
Owns the OpenAI and Anthropic console keys. Runs the box. Mints and revokes sk-gw- keys.
Caller
An agent or teammate. Sets two env lines. Never sees the console keys.
Caller, 90 seconds
OPENAI_BASE_URL=http://127.0.0.1:8787/v1 OPENAI_API_KEY=sk-gw-...
Ask the operator for the host if you are not on the same machine. Then send one chat request. Stop.
Cursor
Point the editor at the gateway. Paste the gateway key, not the console key.
OPENAI_BASE_URL=http://127.0.0.1:8787/v1 OPENAI_API_KEY=sk-gw-...
curl
curl -s http://127.0.0.1:8787/health
curl -s http://127.0.0.1:8787/v1/models \
-H "Authorization: Bearer sk-gw-..."
curl -s http://127.0.0.1:8787/v1/chat/completions \
-H "Authorization: Bearer sk-gw-..." \
-H "Content-Type: application/json" \
-d '{"model":"gpt-4o-mini","messages":[{"role":"user","content":"ping"}]}'When it fails
| 200 | Upstream accepted the official key. |
| 401 upstream | Official key rejected. The body is passed through. |
| 429 | Upstream quota, or this key hit RPM / daily cap. Gateway cap sets Retry-After. |
| 20s+ or 502 | Egress. See /troubleshoot on the gateway. |
| 400 key missing | OPENAI_API_KEY or ANTHROPIC_API_KEY is empty on the server. |
| 401 bad gateway key | Bearer missing, unknown, or revoked. |
Operator, first hour
Teach-back
On the server .env. BASE_URL plus sk-gw-. That bearer dies; console keys stay. Not Plus, not OAuth, not a public proxy.
Cloud API v4. Anyone can prepare. No paid browser started. Type a page. Cloudflare computer stays aside.
↵ send · voice↵ send · tap Voice · voice→code (5/day)chat 20/205 left today