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

dotghost

v1.0.1

Published

Ghost your AI agent config into any repo. Symlinks, invisible to Git, reversible.

Readme

dotghost

Ghost your AI agent config into any repo. Leave no trace.

AI coding agents (Cursor, Claude Code, Copilot, Codex) need context files -- AGENTS.md, .cursorrules, .github/copilot-instructions.md. But copy-pasting these across repos means fragmented context, and committing them pollutes shared codebases.

dotghost fixes both. It symlinks your global agent config into any project root, hides everything from Git using local-only exclusion, and restores originals when you unmount.

How it works

  1. Symlinks, not copies. Edits flow back to your global registry instantly.
  2. Invisible to Git. Uses .git/info/exclude -- never touches .gitignore, never commits anything.
  3. Stash/restore. If a file already exists, dotghost backs it up and restores it on unmount.

Install

npm install -g dotghost

Usage

# Set up your global registry (or clone an existing one)
dotghost init
dotghost init https://github.com/yourname/dotagent.git

# Mount into any git repo
cd my-project
dotghost mount

# Check what's mounted
dotghost status

# Unmount and restore originals
dotghost unmount

# Sync registry with git
dotghost pull
dotghost push
dotghost diff

Release

This repo publishes to npm when a GitHub Release is published. The workflow is defined in .github/workflows/publish.yml.

If you use just, you can automate the local release steps with:

just release

What it does:

  1. Checks that git, npm, node, and gh are installed.
  2. Refuses to run unless you are on main.
  3. Refuses to run if your working tree is dirty.
  4. Runs npm version patch by default, which creates the version commit and tag.
  5. Pushes main and tags.
  6. Creates a published GitHub Release with generated notes, which triggers npm publishing.

Before releasing, commit your changes normally:

git add -A
git commit -m "your change"
just release

You can choose a different semver bump or commit message:

just release minor
just release patch "chore: release prep"

Your registry

Populate ~/.dotghost with the files you want available everywhere:

~/.dotghost/
├── AGENTS.md
├── CLAUDE.md
├── .cursorrules
├── .github/
│   └── copilot-instructions.md
└── skills/
    ├── debugging.md
    └── code-review.md

Collision handling

When a file already exists in the project, dotghost prompts you:

⚠ AGENTS.md already exists in this project.
   Local:    1284 bytes
   Registry: 3502 bytes
   [o]verwrite (stash original)  [s]kip  [d]iff  >

Or use flags for CI/automation:

dotghost mount --force           # Overwrite all, stash originals
dotghost mount --skip-conflicts  # Skip all conflicts

Status

🟢 3 files mounted:
   AGENTS.md -> ~/.dotghost/AGENTS.md
   CLAUDE.md -> ~/.dotghost/CLAUDE.md
   .cursorrules -> ~/.dotghost/.cursorrules
📦 1 original stashed:
   AGENTS.md (2026-03-17)
ℹ Registry git: main (clean)

Roadmap

See ROADMAP.md for planned features: selective mounting, profiles, project context generation, drift detection, multi-source registries.

License

MIT