Admin console
One binary. The console is already inside it.
There is no second service to deploy and no dashboard hosted somewhere else holding your credentials. The console is a static export embedded in the binary at build time and served at /admin by the same process that talks to Slack.
Overview
1,284
turns
3,910
tool calls
216
documents
48
memories
Ten pages
Everything it may do, and everything it did.
Signing in
Three ways in, in order of setup effort.
A username and password from the environment, for the first five minutes. A bearer token, for curl and CI — every route the console uses lives under /api/ and is usable directly. Sign in with Slack, which is what you actually want.
There is no user list to maintain for the common case: whoever Slack says is an admin or owner of the workspace the bot is installed in gets in. An email-domain requirement can be layered on top. Everybody else needs an invite — single-use, seven days, and only its hash is stored.
Sessions are opaque tokens in an HttpOnly cookie. A refused sign-in — a member rather than an admin, the wrong workspace, the wrong email domain — lands back on the login card with the reason rather than a generic failure.
Choosing models
Every model field is a live list of what your endpoint serves.
Model fields are searchable dropdowns fetched from your configured endpoint’s own model list, cached for ten minutes. On OpenRouter each entry shows the display name, the context window and the price per million tokens, so choosing a model is a decision made with the number in front of you. A plain OpenAI-style endpoint shows ids. An id the list does not carry can still be typed in.
Timezone fields work the same way, over the browser’s own IANA zone list, showing each zone’s current UTC offset.
The Configure page
A page for the channel, not for the admin.
Every channel reply ends with a small context line, and Configure in it opens a member-facing page for that channel: what the bot may reach there, what is pre-approved, whether it answers without being mentioned, and which model it uses.
Members can edit it, unless an admin locks that scope. It is the answer to the question every channel eventually asks — “what can this thing actually see?” — without anybody needing a console account to find out.
Have a look at the real one.
A demo is a screen share of the console with your own workspace in it, not a slide deck about it.