arizuko › components
components
An arizuko deployment is a set of daemons, programs that run in the background. The compose file that arizuko generate writes always holds four of them. A setting or a package starts the others. Each row links to the page of that program.
Four daemons start in every instance
authd, routd and runed keep their tables on the store server. The extenddb package adds that server, and getting started shows the commands.
| name | role |
|---|---|
| routd | The routing plane. It runs the message loop, resolves each event to a group, hosts the agent MCP socket, and owns the routd.* tables and the grant authority. See concepts/routing. |
| runed | The execution plane. It starts and stops the KVM guest of each turn, is the only daemon with /dev/kvm, and owns the runed.* tables. |
| authd | The auth plane. It signs every platform token, publishes the public keys, serves the OAuth provider routes and owns the authd.* tables. The other daemons verify tokens offline. See concepts/auth. |
| timed | The scheduler. It claims due tasks over the HTTP API of routd and posts each prompt as a message. It opens no store of its own. |
Two settings start the web layer and onboarding
WEB_PORT starts webd, proxyd, vited and dashd. It starts davd too, unless WEBDAV_ENABLED is false. ONBOARDING_ENABLED=true starts onbod.
| name | role |
|---|---|
| webd | The web channel: the SSE hub, the route-token URLs and the MCP endpoint. |
| proxyd | The reverse proxy with auth. It verifies JWTs and signs identity headers for backends. |
| vited | The static origin, a Vite server behind proxyd for the /pub/ docs and the web pages of groups. |
| dashd | The operator dashboard, to browse groups, grants and messages in a browser. |
| davd | The WebDAV server, to mount the folder of a group in a file manager. |
| onbod | The onboarding daemon: the pairing greeting, the admission queue and invite tokens. |
| route tokens | The /chat/<token>/ visitor chat and the /hook/<token> webhook intake, both served by webd. |
The egress proxy starts with each turn
| name | role |
|---|---|
| egress | The forward proxy: one per turn, with one fixed host allowlist and one client. runed starts it and stops it with the turn. |
A package adds text-to-speech or the model gateway
Run arizuko package add -i <instance> <source> with the package source. Restart the instance to start the service.
| name | role |
|---|---|
| ttsd | The text-to-speech proxy, an endpoint compatible with OpenAI for voice replies. |
| litellm | The model gateway package. It holds the model credential, and the guest of each turn gets a virtual key. It writes one JSON log line per request and sends token and cost spans over OTLP. |
Channel adapters connect outside platforms
Run arizuko package add -i <instance> <source> with the adapter package source. Restart the instance to start the service.
| name | role |
|---|---|
| channels | The overview: the shape that all adapters share, their common HTTP endpoints, and how to add an adapter. |
| slakd | Slack: an Events API listener, a bot user and threaded replies. |
| teled | Telegram: the Bot API, groups and DMs, voice and media. |
| discd | Discord: a gateway client, server channels and threads. |
| emaid | Email: IMAP in, SMTP out, and threads by message-id. |
| whapd | WhatsApp: a TypeScript adapter on Baileys, with a QR or pairing-code login. |
| gitd | GitHub: signed webhook intake. The agent answers through the GitHub MCP connector. |
[ARCHITECTURE.md] has the repository map behind this table and shows how the parts fit.