Skip to content

Tooling Web UI

Jesse Vincent edited this page Aug 21, 2026 · 1 revision

Tooling: Hub web UI & TUI

evener-hub is the multi-session web orchestrator. It runs alongside evener serve daemons and gives a single browser-based interface over many concurrent sessions: it spawns daemons, watches their rendezvous files, indexes saved sessions, and proxies traffic so the browser only ever talks to the hub origin. evener-tui is a hub-backed terminal dashboard over the same hub API.

(Sources: README.md, cmd/evener-hub/README.md)

Build & run

make build-hub
evener-hub          # default 127.0.0.1:9180

Open http://127.0.0.1:9180 in a browser. Keep the hub on loopback unless it sits behind an SSH tunnel, VPN, or authenticated reverse proxy — hub has same-origin checks and a strict CSP, and hub-spawned daemons use an internal bearer token, but the hub edge itself has no user authentication.

(Sources: README.md, cmd/evener-hub/README.md)

What's in the UI

  • Sidebar — a Live section (running sessions sorted by who needs you) and a Projects section (sessions grouped by working directory; subagents indented under their origin, forks marked with the glyph).
  • Workspace pane — two-tier conversation: messages at the primary reading tier, tool calls and diffs as muted margin annotations.
  • New session at /new — prompt-first; pick model and working directory, click spawn.
  • Edit-to-fork — edit any prior user message to fork the session; the original is preserved as a sibling fork.
  • Aside — fork the current session at its tip into a side thread for a distracting question without derailing the main session.
  • Transparent resume — click any closed session, type, send; the daemon spawns from where it left off.
  • ⌘K search across live and past sessions.
  • Settings — theme, notification preferences, and read-only inspection of providers and MCP setup.

(Source: README.md)

Configuration

${XDG_CONFIG_HOME:-~/.config}/evener/hub.toml is optional; without it, hub uses defaults (state root, run dir, session glob, SQLite past-session index at ~/.local/state/evener/index.db). Common keys: addr, spawn_timeout, past_results_per_page, past_index_db.

Hub-spawned evener serve daemons take their flags from a layered launch config:

  • Global: ~/.config/evener/launch.toml — hub-wide defaults (model, agent, reasoning effort, skills/plugin dirs, MCP servers). Editable from the hub UI's Launch settings tab.
  • In-repo: <cwd>/.evener/launch.toml — per-project, trust-on-first-use (the UI prompts before applying).
  • Local per-project: <cwd>/.evener/launch.local.toml — personal overrides, kept out of version control.
  • Per-launch overrides: launchOverrides on ThreadStart — one spawn only.

Hub launch model choices come from the engine's launch harness contract (evener launch-check --models), not a static roster in hub.toml.

(Sources: README.md, cmd/evener-hub/README.md)

Architecture in one paragraph

Daemons are loopback-only. Each daemon writes a private rendezvous file to ${XDG_STATE_HOME:-~/.local/state}/evener/run/<pid>.json; the hub watches that directory, probes daemons for state, and proxies AppWire/REST so the browser only ever talks to the hub origin. The three binaries are one product coupled only by protocols: appwire/ (engine↔hub↔tui wire protocol) and hubapi/ (the hub's HTTP API) are the shared contract packages. One operating note: daemons keep the binary they were spawned from — rebuilding evener does not update already-running daemons; end and resume a session to pick up a new build.

(Sources: README.md, docs/architecture.md)

evener-tui

evener-tui is a terminal dashboard for the same hub: it lists live and saved sessions, drills into transcripts, and sends session actions (input, interrupt, compact, clear, model switch) through the hub API.

make build-tui
evener-tui                                    # connects to http://127.0.0.1:9180, auto-starts a local hub if down
evener-tui --hub-addr http://127.0.0.1:9180   # explicit hub
evener-tui --no-auto-start-hub                # fail instead of auto-starting

Features: dashboard over the hub roster and past-session index, session drill-in, streaming over hub AppWire streams, markdown rendering, and tool-call inspection.

(Source: README.md)

Clone this wiki locally