your claude code session,
live on discord.

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.

$ npx claude-rpc@latest setup

one command. It installs globally, wires Claude Code's hooks, and starts the daemon. No Node? grab the desktop app ↓

while a tool is running: project, tool, file, live tokens
34 seconds

see it move.

the whole thing, no sound needed · grab the mp4
grab the binary

one file. drop it anywhere.

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.

windows
NSIS installer with auto-update, or a portable .exe you can drop on a USB stick. Unsigned (solo project). If SmartScreen warns, it's More info → Run anyway.
x64 · ~45 MB
get .exe installer → or the portable build
macos
Apple Silicon .dmg. Unsigned (solo project) — on first open use System Settings → Privacy & Security → Open Anyway, or xattr -cr "/Applications/Claude RPC.app".
arm64 · ~95 MB
get .dmg → intel? build from source
vs code
Status bar companion: live Claude status in the editor, pause the Discord card, open the dashboard. Pairs with the CLI.
marketplace · 10 KB
get the extension → or read the source
from source
Any OS with Node 18+. git clone, npm install, npm link. Linux / *BSD / WSL.
node 18+ · any arch
install guide → github.com/rar-file/claude-rpc
claude code
Install from inside Claude Code: /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.
plugin · macOS / Linux / WSL
plugin guide → browse the plugin source
terminal
Homebrew tap, or the installer script that detects Node and falls back to a prebuilt binary: brew install rar-file/claude-rpc/claude-rpc · curl -fsSL claude-rpc.com/install | sh
brew · curl · macOS / Linux
install guide → read install.sh before piping it
beyond the card

it's also a personal dashboard for your claude history.

Every aggregate below is computed locally by walking ~/.claude/projects. Incremental, cached, no telemetry, no network beyond the discord IPC itself.

all-time aggregates

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.

clawd typing

cost estimate

Per-model spend (Fable / Opus / Sonnet / Haiku) at public list prices. Edit one file to override.

src/pricing.js

cli & tui

Heatmap, hour histogram, top tools / files / projects / languages.

$ claude-rpc status

local web dashboard

SSE-pushed updates, range selector (7d/30d/90d/1y/all), day-detail modal, project drilldown.

$ claude-rpc serve · :47474

live readme cards

A 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.

see an example →

seven-tab settings gui

Electron config editor: presence (drag-reorder, variable autocomplete, presets), discord, assets, timing, daemon controls, privacy, stats.

auto-generated insights

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.

clawd sleeping
architecture

three small pieces, glued by json files.

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.

01

hook

Claude fires lifecycle events. Each one runs a tiny script that updates a shared state file.

~/.claude/settings.json
02

daemon

Long-running. Connects to discord's local IPC. Watches the state file, builds the card, pushes a frame.

src/daemon.js
03

scanner

Walks transcripts incrementally for the lifetime aggregates. Feeds the dashboards and the idle rotation frames.

~/.claude-rpc/aggregate.json
building in public

the recent history.

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.

changelog
latest first · all releases →
  • v1.7.2 PowerShell hooks fixed on Windows; lifetime totals no longer shrink when Claude Code prunes old transcripts
  • v1.7.1 New claude-rpc share (poster + caption on your clipboard), and setup asks once about the Discord.
  • v1.7.0 Auto-update (claude-rpc update), a Discord server, and an install page at /get.
  • v1.6.0 Tab completion for every shell, one claude-rpc statcards command for every shareable card (live link, PNG or SVG), and a rebuilt help.
  • v1.5.4 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.
  • v1.5.2 keeps up with Claude Code 2.1: failed tool calls and API-error turns no longer leave the card stuck on “working”, plus cost estimates for the 5.x models.
  • v1.5.1 lighter: tool calls no longer wait on claude-rpc (async hooks), and the daemon idles at ~55MB instead of 120–290MB.
  • v1.5.0 a live stats + heatmap card for your README: 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.
  • v1.4.3 GitHub connects that failed during the Aug–Sep worker outage now finish on their own: the daemon retries the verification in the background, no command to run.
  • v1.4.2 Windows reliability: the dashboard stays live, toasts render, Discord reconnects faster, and Windows now runs in CI.
  • v1.4.1 presence no longer vanishes on Vesktop / Equibop / web clients: the daemon re-asserts the card, and doctor names the client that answered.
  • v1.4.0 setup ends with one question, connect GitHub? [y/N]. Asked once; n sends nothing.
  • v1.3.1 an open-but-quiet Claude Code keeps the card up (OS-level process detection, thanks @Teksya), and the token count stops sticking at 0 after a cd.
  • v1.3.0 one-line onboarding from /wrapped: sign in with GitHub, copy one setup --link command, done.
  • v1.2.0 Claude Wrapped on the web, the new /docs page, plus projects, project and compare commands.
  • v1.1.3 the macOS .dmg opens now: the bundle is ad-hoc signed, and CI verifies the seal every release.
  • v1.1.2 the Windows installer finally does its job: the desktop app auto-runs setup on first launch.
  • v1.1.0 claude-rpc recap, the standup answer: yesterday's projects, ships, churn, and cost in one paste-ready summary.
  • v1.0.3 the project moved home to claude-rpc.com.
  • v1.0.1 first stable release. The public surface is now a semver-governed contract. See VERSIONING.md.

get it on your profile in two minutes.

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.