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. It 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. Unsigned (solo project). If SmartScreen warns, it's More info → Run anyway..dmg. Unsigned (solo project) — on first open use System Settings → Privacy & Security → Open Anyway, or xattr -cr "/Applications/Claude RPC.app".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.brew install rar-file/claude-rpc/claude-rpc · curl -fsSL claude-rpc.com/install | sh
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 (Fable / 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 · :47474A stats card with a 12-month heatmap, plus badges. Paste once and it refreshes itself. claude-rpc statcards prints the markdown, or saves a PNG.
Electron config editor: presence (drag-reorder, variable autocomplete, presets), discord, assets, timing, daemon controls, privacy, 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.
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.jsonShipping 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 share (poster + caption on your clipboard), and setup asks once about the Discord.claude-rpc update), a Discord server, and an install page at /get.claude-rpc statcards command for every shareable card (live link, PNG or SVG), and a rebuilt help.claude-rpc works after installing the exe or desktop app (setup puts it on PATH), faster hooks and scans, community totals no longer inflate after reboots, plus a long list of fixes.GET /stats/<handle>.svg, a GitHub-style grid of your last year shaded against your own year. Linked machines add up. Opt out with profile.heatmap: false. Also: the Windows dashboard opens again, and Claude Desktop on Linux no longer counts as Claude Code.doctor names the client that answered.setup ends with one question, connect GitHub? [y/N]. Asked once; n sends nothing.cd.setup --link command, done.projects, project and compare commands.setup on first launch.claude-rpc recap, the standup answer: yesterday's projects, ships, churn, and cost in one paste-ready summary.VERSIONING.md.
Download, run claude-rpc setup,
and you're done. It wires the hooks, starts the daemon, and asks once whether to connect GitHub for the leaderboard.