shipped v1.0 — first stable release presence.byStatus is the new default built solo by archer in weekends MIT licensed — fork it, ship it node SEA single-file binary — no install required discord rich presence for claude code shipped v1.0 — first stable release presence.byStatus is the new default built solo by archer in weekends MIT licensed — fork it, ship it node SEA single-file binary — no install required discord rich presence for claude code
a weekend project, shipped publicly

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 — installs globally, wires Claude Code's hooks, and starts the daemon. No Node? grab the desktop app ↓

v1.1.0 · MIT · node 18+ · macos · windows · linux
Discord Rich Presence card showing Claude Code working in claude-rpc on Opus 4.7
discord profile · last tuesday
that's the whole pitch
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.
x64 · ~45 MB
get .exe installer or the portable build
macos
Apple Silicon .dmg. Drag, drop, done. Auto-updates from GitHub releases.
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

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

a different look for every state claude is in.

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.

v1.1.0 · presence.byStatus
working thinking notification idle
while a tool is running the card shows the project, the tool name, the file claude just touched, and the live token count for the session.
Playing a game
Claude Code
Working in claude-rpc
Edit · src/scanner.js · 2.3k tokens
00:14:32 elapsed
View on GitHub → Claude Code
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.

01

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
02

cost estimate

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

src/pricing.js
03

cli & tui

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

$ claude-rpc status
04

local web dashboard

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

$ claude-rpc serve · :47474
05

readme badges

Shields-style SVG generator and a live endpoint when the daemon's up.

06

six-tab settings gui

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

07

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
two-minute setup

three commands. that's it.

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-rpc setup
$ claude-rpc setup config seeded → ~/.config/claude-rpc/config.json exe installed → ~/.config/claude-rpc/bin/claude-rpc hooks → ~/.claude/settings.json ✓ done.   $ claude-rpc start ✓ daemon launched (pid 24871) logs: /tmp/claude-rpc/daemon.log   $ claude-rpc status ╰─ working in claude-rpc · Opus 4.7 8 prompts · 18 tools · 2.3k tokens
no polling

Hook-driven, not polling.

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.

SessionEnd is authoritative.

When you close claude code, the presence clears immediately. No 5-minute "is it still running?" timeout. Shipped with v0.3.5.

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
screens

browse the rest from a real desktop UI.

127.0.0.1:47474
Web dashboard
web dashboard
claude-rpc serve — range selector, heatmap, languages stack, leaderboards.
Claude RPC.app
Electron config editor
settings gui
six-tab electron editor — drag-reorder frames, variable autocomplete, daemon controls, live preview.
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.1.0 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.
  • v1.0.3 the project moved home to claude-rpc.com — every CLI hint, card footer, badge link, and page now points here; old claude-rpc.vercel.app links redirect.
  • v1.0.2 presence no longer blanks under bursty activity (hard sliding-window write cap, default 4/20s), and Windows child processes stop flashing a console window.
  • v1.0.1 first stable release — the public surface (worker API, CLI, config schema, template vars, data formats) is now a semver-governed contract. See VERSIONING.md.
  • v0.24.0 claude-rpc insights — ~20 rotating generators (chronotype, personal-best day, weekend rhythm, model mix, cache-reuse, tenure milestones) with a fresh mix each run.
  • v0.23.0 live auto-updating stat card for your README — GET /card/<handle>.svg, the bigger sibling of the badge. Paste once, refreshes itself.
  • v0.22.0 live paste-once README badgesGET /badge/<handle>.svg, no gist, no gh; claude-rpc readme prints the markdown.
  • v0.21.0 updates self-heal (re-wire hooks + migrate config on first run after update) and cross-platform login autostart (launchd + systemd, parity with Windows).
  • v0.20.4 redesigned full-screen status dashboard — tabbed TUI with live histograms, sparklines, and status-aware accents.

get it on your profile in two minutes.

Download, run claude-rpc setup, paste your discord application id into the config, start the daemon. That's the whole flow.