Chat & OpenAI-compatible clients
Waired exposes a Local Gateway on http://127.0.0.1:9473 that speaks both
the OpenAI and Anthropic wire formats. Any tool that can talk to those APIs — a
browser chat UI, an editor extension, a script — can use your own model by
pointing at this address. Claude Code and OpenCode
are wired up automatically; everything else uses the endpoints below.
Endpoints
Section titled “Endpoints”| API | Endpoint | Base URL for clients |
|---|---|---|
| OpenAI chat | POST /v1/chat/completions |
http://127.0.0.1:9473/v1 |
| OpenAI models | GET /v1/models |
http://127.0.0.1:9473/v1 |
| OpenAI responses | POST /v1/responses |
http://127.0.0.1:9473/v1 |
| Anthropic messages | POST /anthropic/v1/messages |
http://127.0.0.1:9473/anthropic |
Model names
Section titled “Model names”Use one of the Waired aliases as the model. They resolve to whatever you have loaded, so your client config doesn’t change when you switch models:
waired/default— the default model.waired/coding— the coding model.
Other aliases (waired/small, waired/medium, …) and concrete model IDs are
listed in the model catalog. Call
GET /v1/models to see what your gateway currently advertises.
Authentication
Section titled “Authentication”The gateway authenticates requests with a bearer token:
Authorization: Bearer <gateway-token>Running waired link generates this token and
configures the supported coding agents with it. A third-party client needs the
same token supplied as its API key. The token is held in your per-user
secret store (the system keychain on macOS; a protected file under the agent’s
state directory on Linux and Windows).
Example request
Section titled “Example request”curl http://127.0.0.1:9473/v1/chat/completions \ -H "Authorization: Bearer $WAIRED_GATEWAY_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "model": "waired/default", "messages": [{"role": "user", "content": "Say hi"}] }'For a quick, token-free check from the same machine, use the CLI instead:
waired infer "say hi" (see Verify it works).