Oualid0/claude-mods/tree/main/plugins/session-board
이 mod 소개
Claude Code 플러그인으로, 컴퓨터에서 다른 Claude 세션이 실행 중일 때 프롬프트 위에 “sessions” 칩을 표시합니다. 세션마다 한 줄(● running, 종료 후 60초 동안 ✓ done)을 보여 주고, 자신의 줄(○ ready 또는 ● running)에는 ←를 표시합니다. 실행 중인 다른 세션이 없으면 보드가 숨겨집니다. usage-ring과 함께 claude-mods marketplace에 포함됩니다. function-hook 플러그인을 지원하는 Claude Code 버전이 필요하며 2.1.288로 테스트했습니다. 세션은 5초마다 ListAgents 도구에서 폴링하고, 이름이 없는 세션은 숨깁니다. busy/idle 상태만 알 수 있으며 “needs input” 상태는 없습니다.
설치
먼저 작성자의 README에서 marketplace와 플러그인 이름을 확인하세요. 저장소 구조에 따라 명령어가 달라질 수 있습니다.
claude plugin marketplace add Oualid0/claude-mods claude plugin install session-board
원문 / README
claude-mods
Mods for the Claude Code terminal: a band of rings above the prompt that shows your limits, this chat's usage and the prompt cache, plus a board of your running Claude sessions.
Quick install
Copy this prompt into Claude Code:
Install the Claude Code plugins from https://github.com/Oualid0/claude-mods:
add the repo as a plugin marketplace, then install every plugin listed in its
.claude-plugin/marketplace.json, and tell me to run /reload-plugins when done.
Manual install
claude plugin marketplace add Oualid0/claude-mods
claude plugin install usage-ring@claude-mods
claude plugin install session-board@claude-mods
Then run /reload-plugins in Claude Code, or start a new session. From a local clone,
./install.sh does the same (it needs python3) and is safe to run again.
Update
Auto-update is off by default. Update by hand with /plugin marketplace update claude-mods
in a session, or claude plugin update usage-ring@claude-mods and
claude plugin update session-board@claude-mods in the shell. You can also turn on
Enable auto-update for the marketplace under Marketplaces in /plugin.
Mods
| Plugin | What it does |
|---|---|
| usage-ring | Two chips right above the prompt: limits and chat, with a pixel Claude beside them that hammers while a turn runs and sleeps otherwise, and the model in grey next to it, e.g. Opus 5.5 (mid) (effort low, mid, high, xhigh or max, known from the first request on). |
| session-board | A sessions chip above that while other Claude sessions on this machine are running: one row each (● running, ✓ done for 60 s after it finished), plus your own row (○ ready or ● running) marked ←. With no other session running, the board is hidden. |
What the labels mean
| Label | Chip | Meaning |
|---|---|---|
| Wk | limits | Weekly limit used, in percent. |
| Se | limits | Session limit (the 5-hour window) used, and the time until it resets: 4:50h, or 33m under an hour. Once the window is over it shows 0% 5:00h until the next reading. |
| Cx | chat | Context window used, in percent. |
| Td | chat | Todos done out of all, e.g. 3/5. Only while the chat has a todo list. |
| Tk | chat | Tokens this chat used since the session started (input, output, cache reads and writes, subagents included). Grows after every model request. |
| Co | chat | What the session cost so far, in US dollars. |
| Ca | chat | Time left on the prompt cache (33m), expired once it lapsed. |
When the terminal is narrow, the least important goes first: the model label, the words limits and chat, Ca, Co, Tk, Td, Wk, the pixel Claude, then Cx. Se stays longest; if not even it fits, the band is hidden. Nothing is squeezed or wrapped.
Limits
- Needs a Claude Code version with mods (function-hook plugins); tested with Claude Code 2.1.288. The mod API is early access and may change between versions.
- Rings are pixel images in kitty and Ghostty; other terminals show a glyph instead.
- Rings for the week, session and context turn red from 95%, and the cache time
Caturns red in its last 3 minutes. Cais an estimate. Claude Code does not tell plugins how long the cache lives (5 minutes or 1 hour), so the band assumes 1 hour and learns from what each request read from the cache: a hit after a pause of more than 5 minutes means 1 hour, a miss means 5 minutes. A miss can also come from a changed system prompt, which the band cannot see.Tkstarts at 0 when a session starts or resumes; earlier tokens of a resumed session are not available.Costarts with the session's cost.TdcountsTaskCreate/TaskUpdate/TaskListandTodoWrite. Newer models only have these tools withCLAUDE_CODE_ENABLE_TODO_TOOLS=1(docs).- The board knows other sessions only as busy or idle; "needs input" is not available. Sessions without a name are hidden.
- The board reads the session list from the
ListAgentstool every 5 s. Its output is text for the model, not a fixed format: if a Claude Code update changes it, the board stays empty instead of showing an error.
Options
usage-ring has one option, off by default:
| Option | Meaning |
|---|---|
| limitsFile | Write the session and weekly limits to $CLAUDE_CONFIG_DIR/usage-limits.json (default ~/.claude) for other tools to read. |
Set it with /plugin configure usage-ring@claude-mods in Claude Code, or:
echo '{"limitsFile":"true"}' | claude plugin configure usage-ring@claude-mods --values-stdin
Development
- Each plugin lives in
plugins/<name>/:.claude-plugin/plugin.json,hooks/hooks.json,hooks/register.tsxwith the hooks, pure logic in files beside it,types/index.d.ts(the state contract) andtests/. - Check:
claude plugin validate ., thenclaude plugin validate plugins/<name>andclaude plugin test plugins/<name>. - Installed from a local clone, Claude Code reads the files in place: changes apply with
/reload-pluginsor the next session. - Both mods draw into the same band above the prompt; each render hook calls
next(e)and keeps what is beneath (session-boardon top,usage-ringnext to the prompt).
License
MIT, see LICENSE.
