Long-running terminal UI that spawns, owns, and surfaces the davstack
daemons (logs-server, vitest-server). One process
to launch on cd, one quit to stop everything cleanly.
From inside a davstack-shaped repo (one with .davstack/config/*.config.ts):
pnpm dlx @davstack/tui startThe TUI auto-discovers which daemons are enabled by scanning
.davstack/config/<tool>.config.ts at the repo root, spawns each one,
streams its output into a ring buffer, and shows live status pills.
Flags:
--no-color— disable ANSI colors (also honoursNO_COLORenv).
davstack check probes every configured daemon and exits 0 if all are
running, 1 if any are missing, 2 if no davstack configs exist. Cheap
enough to run at the start of any agent workflow.
| Key | Where | What |
|---|---|---|
1-9 |
any view | jump to that daemon's log view |
↑ / ↓ |
list view | move focus between rows |
enter |
list view | drill into the focused daemon's log view |
s |
list view | start/stop the focused daemon |
esc |
log view | back to the daemon list |
c |
log view | clear the current daemon's ring buffer |
q |
any view | quit (confirms first if any daemon is running) |
ctrl-c |
any view | same as q |
When q triggers confirm-on-quit, only y / n / esc are active.
| Daemon | Default port | Purpose |
|---|---|---|
logs-server |
7077 |
Local log sink — Sentry-shaped store + diag queries. |
vitest-server |
5179 |
Warm vitest daemon for fast unit/storybook reruns. |
Each is independently enabled by dropping its config under
.davstack/config/. Daemons that aren't configured are skipped — the TUI
only shows what you've opted into.
- Port already in use: a daemon's row shows
blocked :PORTinstead of starting. Kill whatever else is on that port, then pressson the row. - Windows orphan handling: shutdown uses HTTP
/shutdownthen SIGTERM, finally SIGKILL viataskkill /F /Tso bun grandchildren can't orphan. - Requires Node 24+: the launcher runs
tsxunder your installed Node. Older Node versions are unsupported.
See the monorepo root README for the broader davstack toolkit.