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

githate

v1.3.4

Published

A CLI tool to track who unfollowed you on GitHub.

Readme


Install

npm install -g githate

or if you prefer pnpm:

pnpm add -g githate

Then just run:

githate

That's it. You get an interactive REPL shell. Type /help to see all commands.


What It Does

GitHate fetches your current GitHub followers, compares them against your last saved list, and reveals:

  • Who unfollowed you (the haters)
  • Who started following you (the fans)

It stores everything locally on your machine. No server, no database, no third-party services.


Getting Started

1. Login

Run githate and type /login. It uses GitHub OAuth Device Flow — open the link in your browser, enter the code, done. No tokens to copy-paste.

2. Scan

Type /scan to check for changes. On the first run it saves your current followers as a baseline. On every run after that, it diffs and shows you who left and who joined.

3. View Hater History

Type /haters to see every person who has ever unfollowed you, with dates. Repeat offenders are flagged.


Commands

GitHate works in two modes:

REPL mode (run githate with no arguments):

| Command | Description | | ------------ | ----------------------------------------------- | | /scan | Check for new unfollowers and followers | | /haters | View the hall of shame (historical unfollowers) | | /followers | List your current followers | | /following | List who you are following | | /login | Authenticate with GitHub | | /logout | Remove stored credentials | | /start | Start background auto-tracking service | | /stop | Stop background service | | /status | Check if background service is running | | /why | The origin story | | /help | Show all commands | | /quit | Exit |

Direct CLI mode (single commands):

githate scan
githate login
githate haters
githate followers
githate following
githate follow <username>
githate unfollow <username>
githate start --interval 60
githate stop
githate status
githate clearcache
githate logout

Background Tracking

Start a background service that polls GitHub on an interval and sends you a desktop notification when someone unfollows you.

githate start

Default interval is 720 minutes (12 hours). Change it with:

githate start --interval 60

Check status or stop it:

githate status
githate stop

How It Works

  1. On first /scan, GitHate fetches all your followers from the GitHub API and saves them locally.
  2. On subsequent scans, it fetches again and diffs against the saved list.
  3. New followers and unfollowers are displayed. Unfollowers are saved to a persistent "hater history."
  4. The background service (/start) does the same thing in a detached process and sends OS notifications.

Data is stored in your OS config directory:

  • macOS: ~/Library/Preferences/githate-cli-nodejs/config.json
  • Linux: ~/.config/githate-cli-nodejs/config.json
  • Windows: %APPDATA%/githate-cli-nodejs/config.json

Guest Mode

You can use GitHate without logging in. Just run /scan and enter any public GitHub username. Guest mode is limited to 60 API requests per hour. Login to get 5,000 requests per hour.



License

ISC