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-nomad

v0.44.1

Published

Sync Claude Code config (~/.claude/) across machines via a private Git repo, with path remapping and per-host settings overrides.

Readme

claude-nomad

tests codeql codecov NPM Version node license

claude-nomad - Sync your Claude Code setup. Same environment. Any machine.

Your entire Claude Code setup, on every machine. History included, every push secret-scanned.

Open Claude Code on a second machine and it is a blank slate: none of your custom agents, slash commands, tuned settings, or past conversations. claude-nomad keeps all of it in sync through a private Git repo you control. nomad push on one machine, nomad pull on the next, and everything is there, conversations included.

Not dotfiles, not rsync. claude-nomad understands Claude Code's state, so your session history survives different file paths and your secrets never ride along.

Full documentation: https://funkadelic.github.io/claude-nomad/

Features

  • Sessions follow you across machines. Start a conversation on your desktop, run claude --resume on your laptop, and it is there. claude-nomad rewrites the machine-specific file paths Claude Code embeds in every transcript, so history survives projects living at different paths on different hosts.
  • One shared setup, per-machine exceptions. Agents, skills, slash commands, rules, hooks, and your CLAUDE.md live in one place and follow you everywhere. Settings merge a shared base with a per-host override, so one machine can run a different model or MCP URL without forking the rest.
  • Every push is secret-scanned. Only an explicit allow-list of paths ever leaves the machine, credentials never sync, and gitleaks scans the exact files about to be published. The push aborts on any hit, with an interactive menu to redact, allow, or drop the finding.
  • Preview before you trust it. nomad diff shows offline what a pull would change, and --dry-run on pull and push prints the plan without writing anything.
  • One command tells you what is wrong. nomad doctor is a read-only health check: wedged sync repo, broken hook references, hooks that would crash on session start because of a missing --preserve-symlinks-main flag, version drift, oversized backup cache, each with a fix hint.
  • Self-healing sync. Every overwrite is backed up first, and nomad pull --force-remote recovers a sync repo stuck mid-rebase while parking your stranded work on a branch, refusing entirely if shared config is at risk.
  • Easy off. nomad eject replaces every managed ~/.claude/ symlink with a real copy in one step, so your setup keeps working after you delete the sync checkout and uninstall the CLI.

See the full feature tour for the rest: opt-in per-project sync, transcript redaction, backup pruning, and more.

Quickstart

First host (once, ever):

# 1. Install the CLI.
$ npm i -g claude-nomad

# 2. Create your private sync repo and scaffold it.
$ nomad init                   # prompts for a repo name (default: claude-nomad-config)
$ nomad init --repo my-config  # non-interactive

# 3. Add a stable host label to ~/.zshrc or ~/.bashrc, then reload.
export NOMAD_HOST=<your-host-label>

# 4. Publish the scaffold to your private repo.
$ nomad push

Each additional host:

$ npm i -g claude-nomad
$ gh repo clone <your-username>/claude-nomad-config ~/claude-nomad
export NOMAD_HOST=<your-host-label>   # add to ~/.zshrc or ~/.bashrc
$ nomad pull

Everyday loop on any host:

$ nomad doctor   # confirm setup
$ nomad pull     # apply config to ~/.claude/
$ nomad push     # publish local changes (sessions, settings)

During nomad push and nomad pull, long-running steps (rebase, secret scan, git push, session sync) show an animated progress indicator on an interactive terminal so the CLI does not look hung. In CI and when output is piped, only plain text lines are printed, with no ANSI control codes, so log output remains grep-stable.

When nomad push detects a potential secret, it drops into an interactive menu (TTY) or aborts with a recovery hint (non-TTY/CI). Three non-interactive recovery paths are available without the menu:

  • nomad push --redact-all -- scrub every finding from the local transcript in place, then push.
  • nomad push --allow <rule> -- record findings matching one gitleaks rule id as false positives (appends their fingerprints to .gitleaksignore), then re-scan and push.
  • nomad push --allow-all -- record every current finding as a false positive, then re-scan and push.
  • nomad allow <fingerprint>... -- pre-record specific fingerprints in .gitleaksignore without going through a push cycle.

All allow paths always re-scan after writing the allowlist; a surviving finding still aborts the push. See Recovery flows for the full decision tree.

If a previous nomad pull left the sync repo stuck mid-rebase or mid-merge, run nomad pull --force-remote to auto-recover. It aborts the in-progress operation, parks stranded commits on a nomad/stranded-<ts> branch, and resets to origin/main, then re-pulls. It refuses if any stranded or dirty tracked changes touch synced config (shared/, hosts/, path-map.json), so config you care about is never silently discarded.

Requirements

  • Node.js 22.22.1 or newer (24 LTS recommended)
  • Git
  • gitleaks (required for nomad push)
  • gh (GitHub CLI), required by nomad init

Optional: curl or wget for the version-staleness check and nomad doctor --check-schema. The CLI works without them.

Learn more