SLOPSHOPPER

chat-roster

A floating Mac window with your Claude chats as an org chart of dots (filled = working, hover for the title)

newprocess
v0.2.0no licenseupdated 2026-10-10bhargava-gumpula/claude-mods/chat-roster
A shopper browsing a rack in a slop shop
README

claude-mods

Mods for Claude Code (terminal and the desktop Code tab).

ModWhat it does
usage-bandA band above the prompt: 5h and 7d limits as bars with time to reset, session cost with a mood emoji, total session tokens, and a pacing hint
chat-rosterA floating org-chart window for the sidebar group of the chat you're in: the orchestrator on top, the group's chats below, running subagents under their chat. Filled = working, hover a dot for its title, a flash runs along the lines when messages pass. Shown only while Claude is in front; opens when a chat starts
cube/cube, /cube 2, /cube 4: random-state scrambles (the WCA method, via cubing.js)
handoff/handoff [focus]: runs the project's checks, writes the dev log entry and HANDOFF.md update, commits (never pushes), and summarizes
streakYour streak of days in a row using Claude Code in the status line (streak ๐Ÿ”ฅ 3 days); /streak adds your longest streak and total days
prompt-cleanupFixes typos in what you type before Claude reads it (Haiku; skips commands, code and long pastes)
 5h โ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘ 52% (1h 30m)     7d โ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘ 23% (3d 5h)     $1.23   ๐Ÿ’ฉ     6.1M tokens     ๐Ÿ‘Œ on pace

Cost emoji: ๐Ÿ’ฉ $0โ€“$5 ยท ๐Ÿ˜’ >$5 ยท ๐Ÿฅฑ >$10 ยท ๐Ÿ˜ฎโ€๐Ÿ’จ >$25 ยท ๐Ÿซช >$50 ยท ๐Ÿ˜› >$100 ยท ๐Ÿค‘ >$500 ยท ๐Ÿ™€ >$1000. Pacing: ๐Ÿš€ spend freely (under an hour to reset, 70% or less used) ยท ๐Ÿข slow down (15+ points ahead of the clock) ยท ๐Ÿ‘Œ on pace ยท ๐Ÿ›‘ nearly out (90%+).

Needs: python3 (usage-band tokens, chat-roster, streak), Xcode command line tools for swiftc (chat-roster builds its window on first use, macOS only), node and npm (cube installs cubing.js on first use).

Install

In a Claude Code terminal session, one line per mod you want:

/plugin install usage-band --marketplace bhargava-gumpula/claude-mods
/plugin install chat-roster --marketplace bhargava-gumpula/claude-mods
/plugin install cube --marketplace bhargava-gumpula/claude-mods
/plugin install handoff --marketplace bhargava-gumpula/claude-mods
/plugin install prompt-cleanup --marketplace bhargava-gumpula/claude-mods
/plugin install streak --marketplace bhargava-gumpula/claude-mods

Answer y to add the marketplace, then pick the user scope.

Source 1 files
hooks/register.ts 22 lines
1import type { EngineInterface, Register } from 'claude-code'
2
3// The org chart lives in its own floating Mac window (dashboard/OrgChart.app), built on
4// first use and started once: a window already running from any copy of the mod is kept.
5const openDashboard = async ($: EngineInterface) => {
6  const running = await $.process.run(['pgrep', '-f', 'OrgChart.app/Contents/MacOS/OrgChart'])
7  if (running.exitCode === 0) return
8  const dir = `${$.plugin.root}/dashboard`
9  if (!(await $.fs.exists(`${dir}/OrgChart.app/Contents/MacOS/OrgChart`))) {
10    await $.process.run(['sh', `${dir}/build.sh`], { timeoutMs: 180_000 })
11  }
12  await $.process.run(['open', '-g', `${dir}/OrgChart.app`])
13}
14
15export const register: Register = on => {
16  on('session.start', async ($, e, next) => {
17    const ran = await next(e)
18    await openDashboard($).catch(() => {})
19    return ran
20  })
21}
22