-
Notifications
You must be signed in to change notification settings - Fork 8
Tooling Web UI
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)
make build-hub
evener-hub # default 127.0.0.1:9180Open 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)
-
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)
${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:
launchOverridesonThreadStart— 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)
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 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-startingFeatures: 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)