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

pi-capspulse

v0.2.1

Published

Pulse the built-in MacBook Caps Lock LED while the Pi coding agent is working

Readme

CapsPulse

See your Pi agent working at a glance.

CapsPulse turns the built-in MacBook Caps Lock indicator into a physical status light for the Pi coding agent. The light pulses while the agent is working and glows steadily when Pi is ready.

CapsPulse writes directly to the keyboard's HID LED output. It does not emit keyboard events or change the logical Caps Lock state, so your typing remains unaffected.

Behavior

| Pi state | Caps Lock light | | --- | --- | | Starting or ready | Solid | | Thinking, using tools, or responding | Pulsing | | Agent asked a question and is waiting for user input | Fast blinking | | Agent finished without requesting input | Solid | | Pi exits or reloads | Restored to the logical Caps Lock state |

Requirements

  • macOS
  • A MacBook with a built-in Caps Lock indicator
  • Pi
  • Xcode Command Line Tools (xcode-select --install)
  • Input Monitoring permission for the terminal application running Pi

Installation

Install from npm:

pi install npm:pi-capspulse

Or install the latest source directly from GitHub:

pi install git:github.com/ssk090/CapsPulse

Restart Pi or run:

/reload

CapsPulse compiles its small native helper locally on first use and caches it under ~/Library/Caches/pi-capspulse/. This produces the correct binary for both Apple Silicon and Intel Macs.

macOS permission

Direct HID access requires Input Monitoring permission:

  1. Open System Settings → Privacy & Security → Input Monitoring.
  2. Enable the terminal application that runs Pi, such as Terminal, iTerm2, Ghostty, or cmux.
  3. Restart that application if macOS requests it.

CapsPulse reports an error in Pi if the built-in LED is unavailable or access is denied.

Safety and privacy

CapsPulse runs entirely on your Mac. It does not:

  • synthesize Caps Lock key presses;
  • change capitalization state;
  • read or record keystrokes;
  • access the network; or
  • control the camera privacy indicator.

The helper watches its parent process through standard input. If Pi exits or the helper is terminated, it makes a best-effort restoration of the LED to the current logical Caps Lock state.

Multiple Pi sessions

When multiple Pi sessions are open, CapsPulse only lets the selected cmux surface drive the LED. Ownership transfers directly when you select another cmux tab, without the previous tab restoring or overwriting the new tab's LED state. The selected surface remains the owner when another application is opened or macOS is locked, so the light continues to show the state of the last cmux tab you selected. Activity or completion in background tabs cannot replace its LED state.

Outside cmux, CapsPulse uses the frontmost terminal application when focus can be detected. If focus cannot be detected, it falls back to single-session behavior.

Development

git clone https://github.com/ssk090/CapsPulse.git
cd CapsPulse
npm install
npm test
pi -e ./index.ts

npm test runs strict TypeScript checking and warning-free native compilation.

Publishing

CapsPulse includes the pi-package keyword and Pi package manifest required for discovery on the Pi package gallery. Publishing a public npm release makes it eligible for the gallery:

npm login
npm publish

The prepublishOnly check prevents publication if TypeScript or native compilation fails.

License

MIT