sitrep-panel
Watch your AI agent work, live, in a browser tab — instead of scrolling a transcript.
The problem
Long agent sessions are hard to watch. The transcript scrolls past faster than you can read it, and there's no single place that answers "what is it doing right now, and how did it get here?" without stopping the agent to ask.
sitrep-panel solves that with one command. The agent keeps a live local report of its own work — status, reasoning, screenshots, a running log — and you watch it update in a browser tab in real time, with zero setup.
Why it's different
It is not a hosted artifact, a cloud dashboard, or a chat log replay. It never leaves your machine, needs no publish step, no account, and no network access — one static HTML page, served by a script from Python's standard library. Close the laptop lid and it's gone; open it again and it's still there.
What it shows
- Status board — four columns: to do, in progress, done, blocked. Synced from a connected issue tracker (Jira, GitHub Issues, Linear — whatever the agent already has access to) when one's available, otherwise a plain checklist the agent maintains by hand. Never fabricated.
- What's happening now — a standing paragraph of why, not a status word. Replaced each update, always reflecting the present.
- Screenshots — dropped in as they're taken, inline in the log or in their own gallery.
- Log — one entry per real step, newest first: what happened, what was decided, what was verified.
Light by default, with a real dark-mode toggle — no silent OS-based switching.
How it live-reloads
No WebSocket, no build step, no bundler. The page polls a small meta.json
file every 2 seconds and reloads the instant its timestamp changes — the
agent just touches that one file after every content update. Everything
else is plain static HTML, CSS, and about 20 lines of vanilla JS.
Install
claude plugin marketplace add dbl8005/sitrep-panel
claude plugin install sitrep-panel@sitrep-panel
Or clone and point Claude Code at it locally:
git clone https://github.com/dbl8005/sitrep-panel.git
claude plugin marketplace add ./sitrep-panel
claude plugin install sitrep-panel@sitrep-panel
Usage
/sitrep-panel
Starts (or resumes) a report for the current project and prints its
http://localhost:<port>/ URL.
/sitrep-panel open # just print the URL, don't touch content
/sitrep-panel archive # move the current report aside, start a fresh one
/sitrep-panel stop # stop the local server (content stays on disk)
Everything lives at .sitrep-panel/ in the project you invoke it from —
gitignored automatically, since it's scratch, not history you commit.
Reports are single-project and single-active-report by design: the URL
stays stable for a whole session instead of minting a new page per task.
Design principles
- Local-first, always. No account, no upload, no third-party server in the loop. The report never exists anywhere but your machine.
- Never fabricate. The status board reflects real tracker data or a manually-kept checklist — never invented tickets or guessed status.
- Update, don't rewrite. The protocol is additive (prepend log entries, replace the current-work block, touch one timestamp file) so a crashed or interrupted agent leaves a readable partial report, not a blank page.
- Zero dependencies. The server is stdlib Python. The page is HTML, CSS, and vanilla JS. Nothing to install, nothing to break.
Contributing
Issues and PRs welcome. python3 scripts/validate-package.py checks the
package files; CI runs it plus a real server-start smoke test on every PR.
Versions
- 1.1.0 — redesign: light mode by default with a real theme toggle, a logo and wordmark, the status board regrouped into kanban-style columns instead of a loose card grid, and a sticky section nav for wayfinding without hiding anything.
- 1.0.0 — initial release: status board, live "what's happening now" narrative, screenshot gallery, newest-first log, live-reload, optional tracker-synced board.
License
MIT