Claude Code plugin · local session board

Every session on one board.

Five terminals, three repos, one prompt waiting for you somewhere. board shows every Claude Code session on your machine as a card: what needs you now, what is running and where, and how to get back into what you worked on yesterday.

$ claude plugin marketplace add johantor/plugins
$ claude plugin install board@johantor

Then run /board:open in any session.

The board: five columns named Needs me, Working, Your turn, Closed today and Earlier, each with session cards that show a title, repo, branch, latest activity and a Copy resume button.
A permission prompt in Needs me, a crew run with two subagents in Working, and a reply waiting in Your turn.
The columns

Where each session stands.

Each card shows the title, the repo and branch, the latest activity, and how long ago it happened. Copy resume copies cd '<dir>'; claude --resume <id>.

Needs me

A permission prompt, a question, or an API error. The tab title counts them.

Working

Claude is on a turn. Subagents show on their session's card with the tool they run.

Your turn

The turn ended and Claude waits for your next prompt.

Closed today

Sessions that ended today, with their last reply.

Earlier

The last 7 days. Press / to search back 30.

How it works

Hooks write a file. The board reads it.

  1. A hook logs each eventTwelve session events each append one short line to ~/.claude/board/events.jsonl. Ten hooks are async; none fails a session.
  2. The server folds the logIt replays the file into cards and tails it every second. No event is lost while the server is down.
  3. History fills the gapsIt reads the start and end of each transcript, so sessions from before the plugin show up too.
Privacy

It stays on your machine.

Prompts and replies can hold client code and secrets. Nothing is sent anywhere.

  • 127.0.0.1 only. A request that names another host is refused.
  • A token for session data. From a file only you can read, sent as a header, never a cookie.
  • Short lines. At most 200 characters of a prompt and 300 of a reply, in a mode-600 file.
# one line per event, appended by the hook
{"v":1,
 "ts":1792818514701,
 "e":"PermissionRequest",
 "sid":"4f1c…",
 "pm":"default",
 "tool":"Bash npm run test -- checkout",
 "call":"c25e708c98724cee"}
Requirements

Node, and that's it.

Known gaps, such as the card that stays in Needs me while an approved tool runs, are listed in the README.

Running a crew?

Sessions that run a crew: agent get a Crew badge, and each subagent shows on the card with its current tool.

Meet crew