A terminal UI for Nerve — drive your agent sessions from the comfort of a TUI.
Rendered with fake, anonymized data via cargo run --example screenshot (the same TestBackend the snapshot tests use). The image is rebuilt from the real UI on every push by the screenshot workflow and published to GitHub Pages — it is never committed to the repo.
- Keyboard-driven navigation — tab bar,
:command palette with autocomplete (singular/plural aliases),?for help. - Live chat — token streaming, markdown with syntax-highlighted code, collapsible tool/thinking blocks, full-screen block zoom, sub-agent side panel.
- Interactive — answer
AskUserQuestionpolls inline, watch a live task / background-jobs panel, see the chat reframe while the agent streams. - Tabs — chat, notifications (answer & dismiss, red alert when pending), tasks, plans, skills. Lists show active items first, sorted by time; press
ato reveal answered/done/declined ones. - Multiple instances — drive several Nerve servers from one UI. Their sessions, notifications, tasks, plans and skills merge into single time-sorted lists, each row tagged by a colored sigil + name (
● local/◆ vm). Starting a new chat asks which instance it lands on; an unreachable instance shows offline and reconnects on its own. - Survives long sessions — the password is prompted once (or read from config) and kept in memory to silently reissue the auth token when it expires (~24h). Tokens are never written to disk.
cargo build --release
./target/release/dogma # http://127.0.0.1:8900 by default
./target/release/dogma --server vm=http://my-dev-vm:8900 # one named instance
./target/release/dogma --server lh=http://127.0.0.1:8900 \
--server vm=http://my-dev-vm:8900 # several at once
./target/release/dogma --help # other optionsInstances can also be declared in ~/.dogma/config.toml (a repeated --server flag overrides it):
[[servers]]
name = "lh"
url = "http://127.0.0.1:8900"
# password = "…" # optional — prompted if omitted; keep the file chmod 600
[[servers]]
name = "vm"
url = "http://my-dev-vm:8900"Requires a running Nerve API server. Press ? inside the app for the full keymap.
Every line of dogma — source, tests, and this README — was written by an AI agent (Claude), end to end, inside a terminal session. No human has read, audited, or reviewed any of it.
It compiles, the test suite passes, and clippy is clean — but that is the only
quality bar this code has ever cleared. There has been no human design review, no
security review, no second pair of eyes.
Treat it accordingly: read the source yourself before you trust it, point it only at a local Nerve instance you control, and don't run it against anything you can't afford to lose. It's an experiment in what an agent can build unsupervised — enjoy it as one.
MIT — see LICENSE.
