Control API
The daemon exposes a localhost control API that the desktop app uses to
manage the system. It’s also scriptable, so you can automate Lattis without the
GUI. These endpoints live alongside the Public API on
127.0.0.1:5288.
Endpoints
Section titled “Endpoints”The main endpoints:
| Method & path | Purpose |
|---|---|
GET /control/status | Full daemon snapshot. |
POST /control/local/probe | Probe a local server before adding it. |
POST /control/remote/order | Set provider/account priority. |
POST /control/remote/{provider}/account/{account_id}/key | Store an API key on an account. |
POST /control/remote/{provider}/account/{account_id}/connect | Begin an OAuth connection for an account. |
POST /control/remote/{provider}/complete | Finish a paste-code OAuth flow. |
POST /control/remote/{provider}/account/{account_id}/disconnect | Disconnect an account. |
POST /control/shutdown | Stop the daemon. |
Examples
Section titled “Examples”# Snapshot of everything: models, providers, usagecurl http://127.0.0.1:5288/control/status
# Stop the daemoncurl -X POST http://127.0.0.1:5288/control/shutdown{provider} is a provider id such as anthropic or openai. See
Cloud Providers for the full connection flows, and
Headless & Remote Hosts for driving these endpoints on a
machine with no GUI.
The key endpoint also accepts an Anthropic subscription token from
claude setup-token (sk-ant-oat…). Lattis recognises the prefix and stores it
as a subscription credential rather than an API key, since the two are sent
upstream differently.
Like the public API, the control API is unauthenticated on a loopback bind. Keep it bound to
127.0.0.1; a non-loopback bind is refused unless an auth token is configured.