A small Node daemon that takes the lifecycle events claude code
already fires — and pipes them into the Discord Rich Presence (RPC) card on
your profile. Your friends see what you're building, your future self gets
lifetime stats. Zero polling between sessions.
one command — installs globally, wires Claude Code's hooks, and starts the daemon. No Node? grab the desktop app ↓
Built with Node SEA — the CLI is a single executable with Node baked in. No
runtime install, no npm install, no PATH gymnastics. The desktop
app bundles the same binary plus a config GUI.
.exe you can drop on a USB stick..dmg. Drag, drop, done. Auto-updates from GitHub releases.git clone, npm install, npm link. Linux / *BSD / WSL./plugin marketplace add rar-file/claude-rpc. A thin plugin that runs the same npx claude-rpc@latest setup for you, then gets out of the way.
also: brew install rar-file/claude-rpc/claude-rpc
·
curl -fsSL https://claude-rpc.com/install | sh
— every path ends at the same claude-rpc setup.
The card text follows whatever claude is doing right now — not a generic rotation that cycles through the same six stats forever. Lifetime numbers only show up when you're actually idle.
Every aggregate below is computed locally by walking
~/.claude/projects. Incremental, cached, no telemetry, no
network beyond the discord IPC itself.
Hours, prompts, tokens, sessions, streaks, hotspot files, lines added/removed, languages, bash commands, web domains, subagent runs — pulled from your transcripts and cached at ~/.claude-rpc/aggregate.json.
Per-model spend (Opus / Sonnet / Haiku) at public list prices. Edit one file to override.
src/pricing.jsHeatmap, hour histogram, top tools / files / projects / languages.
$ claude-rpc statusSSE-pushed updates, range selector (7d/30d/90d/1y/all), day-detail modal, project drilldown.
$ claude-rpc serve · :47474Shields-style SVG generator and a live endpoint when the daemon's up.
Electron config editor: presence (drag-reorder, variable autocomplete, presets), discord, assets, timing, daemon controls, stats.
claude-rpc insights prints 3–5 contextual lines about your week — trend, peak weekday, hotspot, cost pace, streak progress. Useful for stand-ups, useful for self-awareness, useful for nothing — up to you.
The first setup seeds a config, registers the lifecycle hooks
with claude code, and copies the binary into a stable per-user location so
future manual updates can never break your hook entries.
Claude Code fires lifecycle events on its own clock
(SessionStart, PreToolUse,
Notification, SessionEnd…). Each event
updates a small JSON file on disk; the daemon watches that file and
pushes a frame to discord within a second.
When you close claude code, the presence clears immediately. No 5-minute "is it still running?" timeout. Shipped with v0.3.5.
No database, no message bus, no background polling when claude code isn't
running. The file-based IPC is intentional — it makes the whole system
inspectable with cat and jq.
Claude fires lifecycle events. Each one runs a tiny script that updates a shared state file.
~/.claude/settings.jsonLong-running. Connects to discord's local IPC. Watches the state file, builds the card, pushes a frame.
src/daemon.jsWalks transcripts incrementally for the lifetime aggregates. Feeds the dashboards and the idle rotation frames.
~/.claude-rpc/aggregate.json
claude-rpc serve — range selector, heatmap, languages stack, leaderboards.
Shipping small. Each release tag is a real artifact you can download — no nightlies, no marketing-driven version numbers. Read the source on your way through.
claude-rpc recap — the standup answer: yesterday's projects, ships, churn, and cost in one paste-ready summary (--md), plus a get_recap MCP tool.claude-rpc.vercel.app links redirect.VERSIONING.md.claude-rpc insights — ~20 rotating generators (chronotype, personal-best day, weekend rhythm, model mix, cache-reuse, tenure milestones) with a fresh mix each run.GET /card/<handle>.svg, the bigger sibling of the badge. Paste once, refreshes itself.GET /badge/<handle>.svg, no gist, no gh; claude-rpc readme prints the markdown.status dashboard — tabbed TUI with live histograms, sparklines, and status-aware accents.
Download, run claude-rpc setup,
paste your discord application id into the config, start the daemon. That's the whole flow.