VoxSplit
맥용 무료 로컬 AI 스템 분리기 및 보컬 제거기
Session Board는 macOS용 무료 오픈소스 Claude Code 모드입니다
Session Board is a free, open-source Claude Code mod for macOS: one floating window that gives every Claude Code session a live stand-up (what it just did, what it is doing, what is next, and what is
플러그인JavaScript · SwiftGitHub @KiranPothana온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
Claude Code mod: every Claude Code session in one floating window, with live summaries of what each is doing and which need you. Mac, Windows and Linux.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Session Board is a Claude Code mod that shows every Claude Code session on your computer in one floating window, with a live summary of each: what it just did, what it's doing, what's next, and which sessions need you. Terminal, Remote Control and Claude Desktop. Mac, Windows and Linux.
✓ what it did · ▶ what it's doing · · what's next · ! what's waiting on you
Copy for AI : paste this into Claude and it explains Session Board and installs it for you
sh
claude plugin marketplace add KiranPothana/session-board
claude plugin install session-board@session-boardREADME 전문 보기 ↗Session Board is a Claude Code mod that shows every Claude Code session on your computer in one floating window, with a live summary of each: what it just did, what it's doing, what's next, and which sessions need you. Terminal, Remote Control and Claude Desktop. Mac, Windows and Linux.
✓ what it did · ▶ what it's doing · · what's next · ! what's waiting on you
I'd like to try Session Board. Read this, explain it to me in two short lines (I don't like reading much), then offer to install it for me.
# Session Board (https://sessionboard.dev)
Free, open source (MIT) Claude Code plugin for Mac, Windows and Linux: https://github.com/KiranPothana/session-board
What it is: one small floating window that lists every Claude Code chat running on this computer (terminal, Remote Control, Claude Desktop). Each chat gets a card that keeps a live stand-up:
- ✓ what it just finished
- ▶ what it's doing now
- ○ what's next, with "waits on you" on anything blocked on me
- ↪ a side task, when I've sent it off on a detour
Also:
- Cards are ordered: needs me, then working, then idle.
- A small popup tile shows when a chat needs me or finishes.
- Clicking a chat's name opens it.
- Control-Option-S shows or hides the window.
- Optional sounds; light and dark.
Needs: Claude Code 2.1.287+, and macOS 15+ with Apple's command-line tools (`xcode-select --install`), Windows 10/11, or a 64-bit Linux desktop.
Install (run these for me):
```sh
claude plugin marketplace add KiranPothana/session-board
claude plugin install session-board@session-board
```
Then I start a new Claude Code session, or type /session-board in one. The first time, it gets the window app ready (on a Mac it builds it in under a minute; on Windows and Linux it downloads it and checks its checksum) and opens it. Chats already running show up too.
Cost: the summaries are small Sonnet calls billed to my Claude account (about 2,000 tokens in, a few per turn). They can be turned off in Settings. Everything else stays on my computer. Bug reports are sent only when I say "report" (or click Report), and never include anything from my chats.
Update: `claude plugin update session-board@session-board`. Uninstall: `claude plugin uninstall session-board@session-board`, then quit it from the menu bar.
Something wrong or an idea? Tell Claude in any session and say "report", or open https://github.com/KiranPothana/session-board/issues
One floating window on your computer (Mac, Windows or Linux) that lists every Claude Code session you have running (in the terminal, over Remote Control, and in Claude Desktop) with what each one is working on, what is still to do, and which ones need you.
It's a Claude Code mod plus a small window app: on a Mac a native one the plugin builds the first time you use it, on Windows and Linux one the plugin downloads (and checks) the first time.
You don't need Claude Desktop. With terminal sessions only, the window works the same; it just has no Desktop session to highlight.
xcode-select --install). It's tested with Swift 6.4 on macOS 27.Everything works on a Mac. On Windows and Linux, the board, summaries, popups, sounds, dismiss, colours and Settings are the same; some things depend on what the system lets an app see:
| Mac | Windows | Linux X11 | Linux Wayland | |
|---|---|---|---|---|
| Floats over other windows, shortcut from any app | yes | yes | yes | no: open it from the tray |
| Highlights the Claude Desktop chat you're in | yes | yes | (no Claude Desktop) | no |
| Highlights the terminal session you're in | Terminal, iTerm2 by tab; others by window | by window | by window | no |
| Click a name to go to a terminal session | its tab (Terminal, iTerm2), else its app | its app | its app (with xdotool) | no |
| Hide when you switch away from Claude | yes | yes | yes | no |
| Your own shortcut and your own sounds | yes | yes | yes | sounds yes; no global shortcut |
| A right-hand ⌥, ⌘ or ⌃ tapped on its own as the shortcut | yes | no | no | no |
claude plugin marketplace add KiranPothana/session-board
claude plugin install session-board@session-board
Then start a new Claude Code session, or type /session-board in one.
~/Applications/Session Board.app (under a minute) and opens it. It builds again only when an update changes the app's source.app/release.json (part of the plugin; a download that doesn't match is thrown away), and starts it. Windows: %LOCALAPPDATA%\Programs\Session Board. Linux: ~/.local/share/session-board/app. When several sessions start together, one installs it: an install.lock file in that folder, which only one session can create, holds the others off, and each download goes under a name of its own.To update: claude plugin update session-board@session-board.
On a Mac the window asks for these permissions (Windows and Linux ask for none):
The app is signed ad hoc unless you have an Apple Development certificate. An ad hoc rebuild after an update counts as a new app to macOS. If the highlight stops following Claude Desktop after an update, turn Session Board off and on again in the Accessibility list.
Summary calls: the plugin asks Sonnet (low effort) for each session's short active/pending list:
Each call is small: about 2,000 tokens in and 100 out.
That's a few small calls per turn, per session, billed to your Claude account like the rest of your Claude Code use.
Everything else stays on your Mac.
~/.claude/sessions and the plugin's store.~/Library/Application Support/session-board/cloud for a week at most. Session names from Desktop's own session files (~/Library/Application Support/Claude/claude-code-sessions) tell its local sessions apart from cloud ones.Reports, only when you choose to send one. Nothing is sent until you say report in a chat or click Report (a crash) or a Feedback button in the window:
reports-worker/), which files it as an issue in a private
repo only the team reads. The Feedback buttons open GitHub in your browser for you to send.Everything here is in hooks/register.js (the mod) and hooks/session-title.mjs (the one command hook).
What it sends, and where
$.model.complete, Sonnet at low effort), billed to your Claude account. Turn them off in Settings.session-board-reports.kiran-987.workers.dev, a Cloudflare Worker that files it as an issue in a private repo).curl), and checked against the SHA-256 in app/release.json before it's installed.Programs it runs, and why
sh with tail, sed and awk (macOS, Linux), or powershell (Windows): to read the end of a session's saved conversation, without its image data, for the summary and the step under way.ps (macOS, Linux), or powershell with Get-CimInstance Win32_Process (Windows): to find the commands sessions left running, for "Still running".uname: to tell macOS from Linux, and the processor.xcode-select -p to check Apple's command-line tools, sh board/build.sh to build the window app (it runs swiftc, codesign and iconutil), and open -g to start it.curl to download the window app, sha256sum or Get-FileHash to check it, mkdir, mv, chmod or Move-Item, taskkill to stop an old copy before replacing it, then cmd /c start or nohup to start it. For the install lock: ln, mv and rm on Linux; on Windows, PowerShell's [IO.File]::Move and Remove-Item.What it writes
~/Library/Application Support/session-board, %APPDATA%\session-board or ~/.local/share/session-board): show-request (from /session-board), last-error.json (a failed build, for a report), built.sha, and on Linux the downloaded app.~/Applications/Session Board.app. Windows: %LOCALAPPDATA%\Programs\Session Board. Windows and Linux: install.lock in the app's folder while an install runs, removed after.What its hooks do. They watch; none of them blocks, changes or answers anything, and none takes part in a permission decision. Each passes its event on unchanged.
session.start: registers /session-board, starts the window app, and starts a check every 30 seconds (catching up sessions that started before the plugin, and noticing commands that ended).prompt.submit, turn.start, turn.complete: note the request, that the session is working, and that the turn ended; start a summary.tool.call: notes the step under way and the session's task list (TodoWrite, TaskCreate, TaskUpdate), and that a question or plan approval is on screen.classic.Notification: notes that a permission prompt is open, so the board shows the session needs you.classic.SessionStart (clear, resume, branch) and session.end: start a new record, or delete the old one.command.run: answers /session-board by showing the window.UserPromptSubmit, hooks/session-title.mjs): with "Also rename in Claude Code" on, sets the session's title with its project in front. It never blocks a prompt.hooks/register.js) keeps a record for each session in the plugin's shared store.
claude -p runs and SDK jobs are skipped.board/ (board/main.swift, built by board/build.sh). On Windows and Linux it's app/, a Tauri app (a small Rust side in app/src-tauri, the board as a web page in app/ui) that the release workflow builds.~/Library/Application Support/session-board on a Mac, %APPDATA%\session-board on Windows, ~/.local/share/session-board on Linux. It holds:
/session-board to show the window;status.json, which records what the highlight last saw.claude command. Claude Desktop's sidebar does, so the window reads it with the Accessibility permission the highlight uses. A cloud card shows the session's name, its group and whether it's running. Each time the session is open in Desktop, the window also reads its chat there, the latest exchanges Desktop has on the page, and the summary turns them into the card's task, done, under way and next lines, as for a local session. The card keeps that summary until the next time you open it. --open-chat prints the exchanges it reads. A row counts as cloud when its group has Desktop's cloud badge (or it's in the Cloud section) and it's no session this Mac knows. Only rows the sidebar shows are found: none in a collapsed group or behind "Show more". Clicking a card opens the session in Desktop.claude plugin uninstall session-board@session-board
Then quit Session Board from its menu bar item (right-click → Quit Session Board). Delete ~/Applications/Session Board.app and ~/Library/Application Support/session-board.
skills/feedback.You'll get GitHub's notifications when it's answered or fixed.
sh board/build.sh "$HOME/Applications/Session Board.app"status.json in the shared folder shows what the window saw."$HOME/Applications/Session Board.app/Contents/MacOS/SessionBoard" --desktop-sidebar prints the rows the window reads and which count as cloud. Desktop's sidebar isn't a documented interface, so an update can break this.claude --plugin-dir . # load your working copy
claude plugin test # the mod's tests
claude plugin validate --strict .
cd app && npm ci && npm test # the window's rules (node) ...
cargo test --manifest-path src-tauri/Cargo.toml # ... and its Rust side
npx tauri dev # run the window from source
SESSION_BOARD_SHARED_DIR=/tmp/sb npx tauri dev # with its own shared folder: silent, always shown
sh tests/check-all.sh runs every check before a change goes in: the mod's tests, the window's rules, and two sets of recorded cases.
tests/transcripts): real Claude Code conversations with every word replaced by filler of the same length (anonymise.mjs), each with the record and summary input the mod must make of it (cases.js). They cover a finished turn that asks you something after a long turn, a finished turn with nothing pending, a turn that ended with its background runs still going, a run that never reported back, one that failed, one from before the session was reopened, a permission prompt, and a finished turn that asks you to decide while its task list is still open.tests/cards): a home folder of sessions, records, Claude Desktop's session files and a cloud row (make-home.py), and the text of every card the Mac board draws from it, with the alert each calls for (expected.txt). They cover the same cases, plus a busy session working through its task list, a cloud session, a side session with its parent, a Desktop session renamed after it was resumed, and text too long for two lines.When you fix a bug, add its case to both first and check that it fails without the fix.
Open app/ui/index.html through any local web server to see the board with sample sessions (?theme=light, ?viewing=2, ?empty).
Don't load a working copy and an installed copy at the same time: both would run every hook.
Session Board can play a sound when a session needs you, when a turn ends with something for you, and (if you turn it on) when a session is done. Each moment can use any of its sounds, or a file of your own:
app/ui/sounds, MIT)./System/Library/Sounds, not bundled. Mac only.app/ui/sounds/KENNEY-LICENSE.txt.sounds.On a Mac, sounds that play on their own play at the alert volume you chose (50% unless you change it), then put your volume back (muted stays muted). On Windows and Linux they play at that share of your volume.
MIT. The bundled Kenney sounds are CC0.
hooks/session-title.mjs, on UserPromptSubmit) sets the name, since Claude Code lets only such hooks set a session's title.