Web UI

The daemon serves a real-time dashboard alongside the WebSocket server. No extra setup — make install includes it.

The web UI is a single-page application embedded in the daemon binary. It connects over WebSocket on the same port the daemon already listens on (default 9999). Everything the CLI can show you, the UI shows in real time.

Opening the UI

The daemon starts automatically when you run thrum init (since v0.4.5). If it's not running, restart it with thrum daemon start.

Open your browser to http://localhost:9999 (or whatever port you configured).

The UI auto-registers a browser agent using your Git config name. The status bar at the bottom shows connection state, daemon version, uptime, and which repository you're connected to.

Full activity feed with 5 agents and all groups visible

Live Feed

The Live Feed is the default view. It shows a chronological stream of everything happening in the repository — agent registrations, session starts, messages sent, group events, file locks.

Three filter buttons sit at the top right:

Messages-only filter applied to the activity feed

Conversation View

The default inbox experience is the Conversation UI — a threaded chat timeline that feels like Slack or Telegram. The sidebar shows a ConversationList with one entry per agent you've exchanged messages with. Clicking an entry opens the ConversationView, which renders the full bidirectional message history in chronological order with sent and received messages on opposite sides.

This is the default view shown on the dashboard when you open the inbox area.

My Inbox

My Inbox is the flat inbox view, still accessible via "My Inbox" in the sidebar. It shows all messages addressed to you with three tabs across the top:

Each message shows the sender, timestamp, and a Reply button. The ComposeBar at the bottom lets you write new messages with @mention autocomplete — type @ to see available agents and groups. The ComposeBar expands as you type and collapses after sending, keeping the reading area clean.

Personal inbox with ComposeBar and reply threading

Group Channels

Groups work like channels. Click any group in the sidebar to see its messages and members. The header shows the group name, member count, and a Members button to view who belongs to the group.

The + button next to the Groups heading lets you create new groups. Each group has its own ComposeBar for sending messages scoped to that channel.

Unread badges on group names tell you where new activity is.

#test-team group channel with message history and members panel

Agent View

Click any agent name in the Agents sidebar section to open their view. The agent view uses a compact thin header at the top showing the agent name, role, module, and online status. A gear icon in the header opens a slide-out settings panel with agent details and actions.

The main area shows the agent's message history with reply buttons. The gear slide-out provides:

This is useful for understanding what an agent is working on and what instructions it has received.

Agent view with thin header and gear slide-out for settings

Who Has?

The Who Has? tool under the Tools section answers: "which agent is editing this file?" Type a file path in the search box to see which agents have declared ownership of it via thrum who-has.

This prevents merge conflicts when multiple agents work in the same repository.

File coordination search tool

Settings

The Settings page shows:

Settings page with daemon health, theme toggle, and keyboard shortcuts

Keyboard Shortcuts

Key Action
1 Live Feed
2 My Inbox
3 First Group (if available)
4 Who Has?
5 Settings
Cmd+K / Ctrl+K Focus search / main content
Esc Dismiss / focus main content

Shortcuts are listed on the Settings page for reference.

What the UI Shows You

The UI is a window into what's happening, not a control plane. It reflects the same data the CLI and MCP server use — messages stored as JSONL, agent state in SQLite, sync status from Git. Nothing is hidden, nothing is abstracted away.

This is consistent with Thrum's core principle: everything is inspectable by design.

Next Steps