1.6 KiB
1.6 KiB
summary, read_when
| summary | read_when | ||
|---|---|---|---|
| Gateway web surfaces: Control UI, bind modes, and security |
|
Web (Gateway)
The Gateway serves a small browser Control UI (Vite + Lit) from the same port as the Gateway WebSocket:
http://<host>:18789/ui/
The UI talks directly to the Gateway WS and supports:
- Chat (
chat.history,chat.send,chat.abort) - Nodes (
node.list,node.describe,node.invoke) - Config (
config.get,config.set) for~/.clawdis/clawdis.json
Config (default-on)
The Control UI is enabled by default when assets are present (dist/control-ui).
You can control it via config:
{
gateway: {
controlUi: { enabled: true } // set false to disable /ui/
}
}
Tailnet access
To access the UI across Tailscale, bind the Gateway to the Tailnet interface and require a token.
Via config (recommended)
{
gateway: {
bind: "tailnet",
controlUi: { enabled: true }
}
}
Then start the gateway (token required for non-loopback binds):
export CLAWDIS_GATEWAY_TOKEN="…your token…"
clawdis gateway
Open:
http://<tailscale-ip>:18789/ui/
Via CLI (one-off)
clawdis gateway --bind tailnet --token "…your token…"
Security notes
- Binding the Gateway to a non-loopback address requires
CLAWDIS_GATEWAY_TOKEN. - The token is sent as
connect.params.auth.tokenby the UI and other clients.
Building the UI
The Gateway serves static files from dist/control-ui. Build them with:
pnpm ui:install
pnpm ui:build