Overboard
Плагин для Claude Code + MCP-сервер на stdlib-Python, который отслеживает сессии Claude Code во всех ваших репозиториях и поддерживает локальную панель мониторинга в актуальном состоянии: коммиты, обзоры недавней работы по диффам, диаграммы архитектуры и схем, флаги ревью. Без API-ключа; работает на вашей подписке Claude. MIT.
Документация

Overboard is a Claude Code plugin that watches every Claude Code session across
all your repos and reports what shipped — on the Claude subscription you already
have. One /overboard session becomes your assistant: it keeps a browser
dashboard current and flags the few things that need you. It shows commit activity, architecture and DB-schema
visualizations (Mermaid), your projects' real LLM prompts, Recent work cards
distilled from the actual diffs, and — live — the key "needs review" tidbits
from your working Claudes. Key-free by design: Python standard library only (no
venv, no pip install), and all the AI runs on your Claude Code subscription —
no ANTHROPIC_API_KEY.

The dashboard has a thin panel strip on the far left — Projects ·
Scheduler · Plugins, Settings pinned at the bottom (keys 1 2 3; the
URL hash deep-links every panel: #/projects/<name>, #/scheduler,
#/scheduler/run/<id>, #/plugins, #/settings/<page>).
Projects is the three-pane board: a condensed left sidebar lists every
project with a calendar-style activity grid (each row a week, Mon→Sun, newest
week on top — the last ~5 weeks) and any "⚑ N to review" flags; the center
becomes the selected project's detail — summary, your assistant's report,
Recent work review cards, recent activity, and per-repo architecture /
prompts / data-shape analysis; and a collapsible right sidebar is where you
set the project's launch/milestone (type, action, target date,
goals — with push-back history) and vision/direction. The /overboard
assistant reads that context to sharpen its reports and flag slipping launches.
Scheduler and Plugins take the full width (below).
Install the plugin in Claude Code
From the Productive Mark marketplace:
/plugin marketplace add mrieck/claude-plugins
/plugin install overboard@productive-mark
Or from a local clone of this repo (it bundles its own marketplace):
/plugin marketplace add /path/to/overboard-plugin
/plugin install overboard@overboard-marketplace
Restart Claude Code (a full quit/relaunch, not just /reload-plugins) so it
launches the MCP server with the current config. Check /mcp shows
overboard ✔ connected. Requires python3 3.9+ on your PATH (stock macOS
and any recent Linux qualify).
Run it
From Claude Code, /overboard opens the dashboard and runs update passes
until the backlog is drained, then stops — run it again whenever you want a
fresh sweep. To run the dashboard directly:
python3 -m overboard.app # serve dashboard, open browser (native window if pywebview present)
python3 -m overboard.app --once # headless refresh, print, exit
It serves a browser dashboard at http://localhost:8787. On first launch a
short onboarding wizard picks your sources; local clones are then discovered
and analyzed automatically. The good stuff (summaries, Recent work cards, real
prompts, architecture write-ups) fills in once /overboard has run.
Refresh re-pulls commits; Rescan re-discovers local clones.
Scheduler
The Scheduler panel runs recurring, unattended Claude Code sessions —
"nightly triage at 2am", "every 2h between 9–18", "once, tonight at 11" —
without the Mac app. It is laid out like the Mac app's: a 10-day agenda on
the left (every upcoming fire, click one to open its agent), Agents | History
in the middle, and a permanent editor on the right (or the picked run's
detail). Each agent (a slot) has a name, a command/prompt, a working folder
(or a linked task workspace), a simple schedule (daily / weekly / every N hours
/ once — deliberately simpler than cron), a timeout and an enabled switch. The
prompt field completes /slash-commands (yours, the project's, every installed
plugin's commands and skills) and ~/ ./ / paths, and warns when the
command's plugin isn't enabled in that folder — with an Enable button.
Runs launch inside Herdr (macOS and Linux) as
claude --permission-mode auto, one workspace per project (named after the
project folder) with one tab per run named after the task, so you can watch
or take over any run in Herdr's own UI. Each run is identified by its own
Claude session (captured from the SessionStart hook), so a session of yours in
the same folder is never mistaken for it; when the run's Stop hook fires — and
no subagent it spawned is still working — the scheduler captures the closing
message and transcript, then closes the pane. A fresh claude in a
never-trusted folder blocks on the folder-trust dialog; the scheduler answers
that one dialog (once per run) and nothing else — any other prompt shows as
waiting for input. Take over focuses the session in Herdr and stops
managing it (no auto-/exit, the pane stays yours). History shows what each
run reported — the closing message as prose — with the raw terminal capture
behind a disclosure; hide, remove or clear runs. A once agent disables
itself after it fires. Concurrent runs (1–8) and the default timeout are in
Settings ▸ Misc; an agent never overlaps its own next firing. Queued runs
survive a dashboard restart (a run that waited past its 30-minute window is
skipped, not run stale). State lives in ~/.cache/overboard/scheduler/.
Dispatcher
Top-left of the Scheduler panel: type what should get done ("add a
changelog entry to project X for this week's commits") and press Dispatch. A
short-lived /overboard:dispatch session reads the request, works out the
project (via the plugin's list_projects), the prompt and the time, and
answers with a task — the scheduler runs it (now, or as a once agent for
later), and the result (the worker writes a result.json into a task folder
granted via --add-dir: summary, files, links) lands in the Recent
dispatches feed, each with a #id. The dispatcher may also reply from the
task ledger ("what's running?") or reject a non-task. Follow-ups ("make it
shorter") rebuild the task's context into a fresh session. It needs an
Overboard run directory (Settings ▸ Misc) — your workspace root, where new
project folders may be created. State lives in ~/.cache/overboard/dispatch/.
Dispatching from your phone (Telegram, Slack next) is Overboard for Mac's feature; the dashboard's dispatcher is browser-only by design.
Tests: python3 -m unittest discover -s tests (stdlib only). To run the
dashboard against a copy of someone else's state without touching your own,
point it at another folder: OVERBOARD_STATE_DIR=/path python3 -m overboard.app.
Slots fire only while the dashboard server is running. On an always-on Linux box, run it as a systemd user service:
# ~/.config/systemd/user/overboard.service
[Unit]
Description=Overboard dashboard + scheduler
[Service]
ExecStart=/usr/bin/python3 -m overboard.app --serve --no-open
WorkingDirectory=%h/.claude/plugins/overboard # wherever the plugin checkout lives
Restart=on-failure
[Install]
WantedBy=default.target
systemctl --user enable --now overboard
loginctl enable-linger $USER # keep it running when you're logged out
Configuration
Out of the box, Local-only mode needs no credentials at all — it reads
commits straight from the git clones on your machine with git log. Add a
GitHub token (classic with repo scope, or fine-grained with repository
contents + metadata, read) or a Bitbucket API token (workspace +
Atlassian email) in Settings ▸ Sources to also include commits you pushed from
other machines — every source merges into the same board.
Tokens are saved to ~/.cache/overboard/credentials.json (mode 0600,
machine-local) and never sent back to the browser. The commit window (how many
days of inactivity before a repo drops off the board) is adjustable in Settings
too. Non-secret app defaults are in overboard/projects.json —
refresh_interval_minutes, commit_window_days, and optional local_roots
(defaults include ~/projects, ~/code, ~/Developer, …) for where local
clones are discovered. Other files under ~/.cache/overboard/: state.json
(commits, analysis, activity), ai.json (the assistant's summaries and
write-ups), context.json (your launches + vision), events.jsonl
(append-only activity log). Delete any to reset that piece.