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

@danjho/envy

v0.1.0

Published

CLI for managing third-party package versions across multi-repo projects

Downloads

9

Readme

envy

Environment and version management for multi-repo projects.

envy enforces consistent dependency versions across multiple projects by using a central repository as the source of truth. Instead of each team managing their own versions independently, everyone pulls from the same reference.

How it works

  1. A dependencies repository (git or local) defines the approved versions for all packages
  2. Each project has an envy.config.yaml pointing to that repository
  3. envy check compares the project's installed versions against the central reference
  4. Any mismatch or untracked package is flagged

Installation

npm install -g @danjho/envy

Getting started

envy init

Runs interactively and asks for:

  • Repository type (git URL or local path)
  • Branch or tag (for git repos)
  • Technology (Node, Flutter, or auto-detect)
  • Strict mode

Or use flags directly:

envy init --repo https://github.com/org/deps-repo --ref main
envy init --repo ../deps --technology node --strict

This creates an envy.config.yaml in the current directory:

version: 1
technology: node
strict: false
repository:
  type: git
  url: https://github.com/org/deps-repo
  ref: main

Commands

envy check

Compares project dependencies against the central repository.

envy check
Package                         Expected      Installed     Type      Status
────────────────────────────────────────────────────────────────────────────
dartz                           0.10.1        0.10.0        prod      mismatch
get                             —             ^4.7.3        prod      untracked
get_it                          9.2.1         9.2.1         prod      ok

1 mismatch(es), 1 untracked found.

| Status | Meaning | |---|---| | ok | Version matches the central repository | | mismatch | Version differs from the central repository | | untracked | Package is not present in the central repository |

With --json:

envy check --json

Strict mode

When strict: true in the config, envy check exits with code 1 if any issues are found — useful for blocking CI pipelines.


envy add <package>

Installs a package using the version defined in the central repository.

envy add get_it
envy add mockito -D

envy update [package]

Updates packages to the versions defined in the central repository.

# Update all mismatches at once
envy update

# Update a specific package
envy update dartz

envy audit

Outputs a full JSON report of the dependency audit, including config and summary.

envy audit
envy audit > audit.json
{
  "timestamp": "2026-03-17T00:00:00.000Z",
  "config": {
    "technology": "node",
    "strict": false,
    "repository": {
      "type": "git",
      "url": "https://github.com/org/deps-repo",
      "ref": "main"
    }
  },
  "summary": {
    "total": 3,
    "ok": 1,
    "mismatches": 1,
    "untracked": 1
  },
  "dependencies": [...]
}

Exits with code 1 if any mismatches or untracked packages are found.

Supported technologies

| Technology | Detection | |---|---| | Node | package.json | | Flutter | pubspec.yaml |

CI/CD

Use envy check with strict: true to block pipelines on version drift:

# GitHub Actions example
- run: envy check

The envy audit command is useful for generating reports as pipeline artifacts.

License

MIT