npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

claude-code-discord-status

v1.2.0

Published

Show what Claude Code is doing as a Discord Rich Presence activity card

Readme


Preview

Features

  • Live activity updates — Your Discord card reflects what Claude is doing right now (editing, searching, running commands, thinking)
  • MCP-powered custom messages — Claude can set its own status via set_discord_status, with a 30-second priority window over hook updates
  • Multi-session support — Running multiple Claude Code instances? The card escalates with quirky messages and aggregated stats
  • Activity mode detection — Dominant activity type (coding, terminal, searching, thinking) changes the card icon
  • Rotating tooltips — Hidden easter eggs on hover, rotating every 5 minutes
  • Auto-reconnect — Daemon handles Discord RPC disconnects gracefully

Quick Start

Prerequisites

  • Node.js >= 18
  • jq (brew install jq / apt install jq)
  • Discord desktop app running
  • Claude Code CLI installed

Setup

npx claude-code-discord-status setup

This will:

  1. Create a config at ~/.claude-discord-status/config.json
  2. Register the MCP server with Claude Code
  3. Add lifecycle hooks to ~/.claude/settings.json
  4. Start the daemon in the background

That's it. Your Discord status updates automatically whenever you use Claude Code.

How It Works

Three components work together:

  1. Hooks — Bash scripts fired by Claude Code lifecycle events (session start/end, tool use, prompt submit). They POST updates to the daemon's HTTP API.
  2. MCP Server — An MCP tool (set_discord_status) that Claude can call to set a custom, contextual status message — these take priority for 30 seconds.
  3. Daemon — Background process that holds the Discord RPC connection, tracks all sessions, resolves what to show, and pushes it to Discord.

See docs/architecture.md for the full deep dive.

CLI

npx claude-code-discord-status setup            # Interactive setup wizard
npx claude-code-discord-status status           # Check daemon status and active sessions
npx claude-code-discord-status start -d         # Start daemon in background
npx claude-code-discord-status stop             # Stop the daemon
npx claude-code-discord-status preset [name]    # Change message style
npx claude-code-discord-status uninstall        # Remove everything

Configuration

Config file: ~/.claude-discord-status/config.json

| Key | Env Override | Default | Description | | --- | --- | --- | --- | | discordClientId | CLAUDE_DISCORD_CLIENT_ID | 1472915568930848829 | Discord Application Client ID | | daemonPort | CLAUDE_DISCORD_PORT | 19452 | Local HTTP server port | | preset | CLAUDE_DISCORD_PRESET | minimal | Message style preset |

The default client ID works out of the box — it's a public app identifier, not a secret.

See docs/setup.md for all config options, timeouts, and how to use a custom Discord application.

Message Presets

Choose how your Discord status sounds. Set during setup, or change anytime:

npx claude-code-discord-status preset            # Interactive selection
npx claude-code-discord-status preset dev-humor   # Set directly

| Preset | Style | Example | | --- | --- | --- | | minimal | Terse, just the facts (default) | "Coding" | | professional | Clean, understated | "Actively developing" | | dev-humor | Classic programmer jokes | "// TODO: sleep" | | gen-z | Quirky, meme-flavored | "No thoughts just code" | | chaotic | Pushing to main, living dangerously | "Deploying on a Friday" |

Override via environment variable:

export CLAUDE_DISCORD_PRESET=professional

Multi-Session Fun

When you're running multiple Claude Code sessions, the card gets quirky:

  • 2 sessions"Dual-wielding codebases", "Pair programming with myself"
  • 3 sessions"Triple threat detected", "Three-ring circus"
  • 4 sessions"4 parallel universes deep", "One for each brain cell"
  • 5+ sessions"Send help (5 projects)", "Gone feral (6 projects)"

Plus aggregate stats like 23 edits · 8 cmds · 2h 15m deep and rotating hover tooltips like "Technically I'm one Claude in a trenchcoat".

See docs/multi-session.md for the full message pool and how the resolver works.

Development

git clone https://github.com/BrunoJurkovic/claude-code-discord-status.git
cd claude-code-discord-status
npm install
npm run build
npm test

See CONTRIBUTING.md for guidelines.

License

MIT