While you wait·terminal·MIT
claude-who
Live presence and token leaderboards for a private group of friends, via your own relay.

claude-who opens a Claude Who pane in Claude Code that shows which of your friends are working with Claude right now and ranks the group by tokens used today, this week and this month. The group is private and small: everyone connects to a relay that one of you deploys on Cloudflare Workers, so the usage data lives in that person’s Cloudflare account, not on a server run by the author or by us. The pane, the /who commands and the background sync never call the model, so the mod costs zero tokens.
What it does
- Leaderboard.
/whoopens Today, Week and Month boards with ranks, bars, each person’s working, idle or offline state, a group selector and paging. The board refreshes every 30 seconds. Work tokens are input plus output; cache tokens are not counted. - Groups.
/who create <group>starts one. The creator copies an invitation that contains the relay URL and a/who join CODE NAMEcommand, can replace the invitation at any time, and can remove a member, which deletes that member’s usage, revokes their key and issues a new invitation. If the creator leaves, the whole group is deleted. - Private messages.
/who messagesopens an inbox for one-to-one notes of up to 1,000 characters to someone in the same group. Each message has Reply and Dismiss, expires after 24 hours and leaves no history. - Text board.
/who text todayprints the leaderboard as plain text instead of drawing the pane.
Install
Needs Claude Code 2.1.287 or later, Bun 1.3 or later, an interactive terminal and the HTTPS URL of a relay (see below). The author tested it on Claude Code 2.1.272 and 2.1.273 and warns that other builds may need API updates.
claude plugin marketplace add SaharCarmel/claude-who
claude plugin install claude-who@claude-who
Then point the mod at the relay: set pluginConfigs["claude-who"].options in your Claude settings to { "relayUrl": "https://YOUR-RELAY.workers.dev", "displayName": "sam" }.
Run /who and choose Create group or Join group.
Deploy the relay
Someone in the group runs the relay. It needs Bun, Node 22.12 or later, a Cloudflare account and Wrangler, Cloudflare’s command-line tool for Workers and D1:
git clone https://github.com/SaharCarmel/claude-who.git
cd claude-who
bun install --frozen-lockfile
cp relay/wrangler.example.toml relay/wrangler.toml
bunx wrangler login
bunx wrangler d1 create claude-who
Paste the returned database_id into relay/wrangler.toml, set GROUP_CREATION_ENABLED = "true" under [vars], then apply the migrations and deploy:
bunx wrangler d1 migrations apply claude-who --remote --config relay/wrangler.toml
bunx wrangler deploy --config relay/wrangler.toml
Configure the plugin with the printed Worker URL and create your group. Then set GROUP_CREATION_ENABLED = "false" and deploy again, so nobody else with the URL can create groups on your Worker.
The README describes the relay running within D1’s daily free-tier quota. When the quota runs out the relay returns a quota error, clients pause for a minute, and access resumes at midnight UTC unless the operator upgrades to Workers Paid; that upgrade is never automatic.
How it works
The mod uploads usage metadata to a server and stores messages there, so this section lists everything it sends and keeps. The difference from claude-roulette, the other social mod in this directory, is who runs the server: there it is the author’s hosted service with a closed-source backend; here the relay code is in the same MIT repository and you or a friend deploy it, so the data sits in a Cloudflare account that belongs to someone in your group.
Hooks and timers. On session.start the mod registers /who and starts three timers: a presence heartbeat every 30 seconds, a message-count poll every 10 seconds while the pane is open, and a usage sync every 5 minutes. turn.start marks you working and turn.complete marks you idle; subagent turns are ignored.
What it sends. Joining a group uploads your last 30 days of assistant usage metadata, then each sync sends the new records. Each record carries your display name, your working or idle state, a hashed session identifier, the message and request identifiers, a timestamp, the model, and the input, output, cache-write and cache-read token counts. The README states, and the module confirms, that conversation text, file and project names, paths, commands, tool inputs and environment variables are not uploaded. Private messages are the exception: their text travels to the relay as plaintext. The token counts come from your local Claude Code transcripts, which is why the README calls this an honor-system leaderboard: editing a transcript falsifies the board.
Authentication. The invitation is the only secret needed to join; a new code holds 160 random bits. On joining, the relay issues you a random 256-bit member key that Claude Code keeps in the plugin store, and the relay keeps only its hash.
What the relay keeps and who sees it. The Worker writes to a D1 database: raw usage records for up to 60 days and pending messages for 24 hours, both purged by an hourly cron. Group members see names, presence and aggregate token totals. The relay operator can read all stored metadata and the plaintext message bodies, and Cloudflare backups may keep deleted rows under the operator’s backup settings. Members removed from a group lose access at once and their records are deleted.
What it stores locally. The relayUrl and displayName options, the member keys, a flag saying whether the pane was open, and, on the creator’s machine, the current invitation; the only local process it runs is the clipboard tool for Copy invite. Messages and drafts live in memory and are cleared when the pane closes.
Nothing the mod sends or receives enters Claude’s conversation or invokes the model.
Limitations
- The pane is drawn in the terminal; the code skips the mobile surface and needs at least 34 columns to show the board. Nothing appears in
claude -p. - Group creation on the relay is a deploy-time switch. While it is on, anyone who knows the URL can create a group.
- There are no verified accounts or permanent bans: a removed member can rejoin with the new invitation.
- The repository is two days old with no releases, tested only on Claude Code 2.1.272 and 2.1.273.
Similar Claude Mods
roll-credits
Movie-style credits for your session in a pane: top file, tools, turns and plot twists.
mindful-claude
Guided breathing above the prompt while Claude works. Four techniques, zero tokens.
Storytime
A 260K-parameter transformer inside the mod writes a story about what Claude is doing.
subway-surfer
Subway Surfers from headless Chrome, drawn and played in a pane. Videos too.
Popular Claude Mods
The whole directory →replay-theater
A /replay pane that walks through the last turn's file edits, one diff per step.
Agent Time Machine
Every tool call on a branching timeline with snapshots: inspect, restore, branch, rerun.
source-control
Git status above the prompt and a VS Code-style panel to commit, sync and resolve.
token-weather
Context window fill as a weather forecast above the prompt, with a chart of recent turns.





