Skip to content

The web dashboard

Prefer a browser to the terminal? writing-agent web serves a local dashboard that drives the same engine as the TUI - the two read and write the same on-disk brain, so they can’t drift.

Terminal window
writing-agent web # opens http://127.0.0.1:8787 in your browser
writing-agent web --port 9000 # pick a different port
writing-agent web --no-browser # start the server, don't auto-open

Under the hood it’s a pure-stdlib ThreadingHTTPServer with Server-Sent Events streaming a single-page app - no framework, no build step, no extra dependencies.

ViewWhat it shows
StudioStart a run - abstract, mode, and the same settings the TUI exposes
Live runThe active run streamed over SSE: stage, tokens vs budget, cost, and each critic verdict as it lands
ProjectsEvery project with its type and status
ProjectPer-project tabs: Overview · Activity · Evals · Artifacts · Rejected · Export · Cost
TelemetryPer-call usage rolled up - calls, tokens, real USD cost, latency, errors (per node and per unit)
SkillsLearned craft skills and their efficacy
SettingsThe same keys as config/settings.yaml, edited live

The Rejected tab surfaces rejected.jsonl - unused images and dropped artifacts the figure-reconciliation pass logged instead of silently discarding.

The Project → Export tab offers every format (PDF · EPUB · HTML · DOCX · TXT · MD) plus a Rewrite (restyle) option that re-voices the finished piece. See Exporting for the format details.

The dashboard follows the editorial design system with System / Light / Dark plus named themes; they recolor the surface, never restructure it. The same system governs the TUI.

Both do the same work. Reach for the TUI for keyboard-driven, in-terminal runs and plain-English chat; reach for the dashboard when you’d rather click through projects, evals, and exports, or watch a run stream in a browser tab. Every run either one starts is resumable from the other.