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

sidecarsync

v2.0.1

Published

A Git-backed sidecar inbox for repo-local development metadata.

Downloads

751

Readme

sidecar

CI npm license node

Sidecar is a child repo — not a submodule — for your repo. Gitignored, shared, auto-synced, and never a merge conflict: give your agents a scratchpad that's always up to date.

your-repo/
  |-- .sidecar        # committed config (points at the sidecar remote)
  |-- sidecar/        # gitignored, shared, auto-synced, no merge conflicts

Your agents' planning docs, research notes, and context files don't belong in your code's history. They shouldn't reset when you switch branches or worktrees, and the latest version is the only one that matters. sidecar keeps them in a separate git repo that lives inside your working tree, while a background daemon keeps every clone in sync.

  • It's just git. The scratchpad is a normal repo you own — clone it, grep it, read it on GitHub, build your own extensions with git hooks.
  • Zero merge conflicts. Each machine writes to its own inbox branch; sidecar merges them so a sync never stops you to resolve anything.
  • Zero ceremony. The daemon watches for changes and syncs automatically. You never commit, pull, or push it by hand.
  • Found by default. It lives inside your working tree, so agents and tools pick it up with no configuration at all.
  • Secrets stay home. Pasted API keys and tokens are redacted from pushes while your local files stay untouched; PII redaction is one flag away — how redaction works.

Quickstart

Requires Node.js 20+ and git, on macOS or Linux. (Windows is coming soon.)

npm install -g sidecarsync
cd ~/dev/your-repo
sidecar init

That's it. If the repo already has a committed .sidecar file, init joins the existing sidecar. If not, init walks you through it — pick where the checkout lives, then paste a remote URL, or leave it blank and init creates a private repo for you with the GitHub CLI (gh).

The daemon takes it from here. sidecar status shows what's happening; sidecar sync forces a sync right now. Once a second machine joins, sidecar health shows whether all of them are still syncing — a sync can fail on one laptop for reasons the others would otherwise never hear about.

Standalone repos

Some repos have no parent — a dotfiles or machine-setup repo you keep on every machine, that wants auto-sync for its own sake. Answer . when init asks for the checkout path (or pass --path .) and the repo becomes its own sidecar, syncing to its own remote:

cd ~/dev/setup
sidecar init --path .

Sidecar takes over branch management there — how standalone works.

Peers

A repo can carry more than one sidecar. .sidecar is the default; every .sidecar.<name> beside it is another, with its own remote and checkout, and the two never interact — so one can be committed for the team while another is gitignored and yours alone:

sidecar init [email protected]:you/your-repo-private.git --peer private --ignored

Every command acts on all peers unless --peer names one — how peers work.

Learn more

Inspiration