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

denvig

v0.6.1

Published

A CLI tool to consistently manage cross-discipline projects

Downloads

457

Readme

Denvig - Developer Environment Invigorator

npm version install size

Denvig is a concept of simplifying development environments across multiple languages and frameworks by creating a small set of consistent wrappers to avoid muscle memory and configuration headaches.

Installation

NPM

You can install the CLI tool globally using npm:

npm install -g denvig

After installation, the denvig command will be available in your terminal.

Commands

Actions

Executes an action inside the project. Defaults are detected for common languages/frameworks, but you can also specify your own actions in the .denvig.yml file.

denvig run build
denvig run install
denvig run test
denvig run dev

Some actions are common to many frameworks so they have quick access for convenience:

denvig build
denvig test
denvig install
denvig lint

Dependencies

Inspect and manage project dependencies across multiple ecosystems (npm, pnpm, yarn, Ruby/Bundler, Python/uv):

denvig deps.                           # List all dependencies
denvig deps list --depth 1             # Include subdependencies
denvig deps list --ecosystem npm       # Filter to specific ecosystem
denvig deps outdated                   # Show outdated dependencies
denvig deps outdated --semver patch    # Filter by semver level (patch or minor)
denvig deps outdated --no-cache        # Force fresh data
denvig deps why <package>              # Show why a dependency is installed

Services

Manage background services defined in .denvig.yml. Services run via launchctl on macOS:

denvig services                 # List all services and their status
denvig services start api       # Start a service
denvig services stop api        # Stop a service
denvig services restart api     # Restart a service
denvig services status api      # Check status of a service
denvig services logs api        # View service logs
denvig services logs api -n 50  # View last 50 lines
denvig services logs api -f     # Follow logs in real-time
denvig services teardown        # Stop all services in current project
denvig services teardown --global --remove-logs  # Full cleanup

Manage services from other projects using the full path:

denvig services start marcqualie/denvig/dev    # Start 'dev' service in marcqualie/denvig project
denvig services status marcqualie/denvig/hello # Check status of 'hello' in marcqualie/denvig project

See docs/configuration.md for service configuration options.

Projects

Discover and manage projects across your system:

denvig projects                  # List all projects
denvig projects --with-config    # Only show projects with .denvig.yml

Configuration

View and validate configuration:

denvig config                    # Display current configuration
denvig config verify             # Verify .denvig.yml against schema
denvig config verify path/to/file.yml

Utilities

denvig info                      # Show information about current project
denvig plugins                   # List available plugins and their actions
denvig version                   # Show version
denvig zsh completions --install # Install shell completions

Most commands accept --json for programmatic output and --project to target a different project.

Languages / Frameworks

There is a set of core languages and frameworks that Denvig will support out of the box. Any language or framework can be supported by using the per project configs.

  • [x] Node.js (npm, pnpm, yarn)
  • [ ] Bun
  • [ ] Vite
  • [ ] Deno
  • [x] Ruby (rubygems)
  • [x] Python (uv)

Goals

  • [x] CLI tool to simplify environment setup
  • [x] YAML configuration at ~/.denvig.yml
  • [x] Per project configuration via ./.denvig.yml
  • [x] Consistent API for all languages/frameworks
  • [x] Dependency management across multiple ecosystems
  • [x] Background service management

Troubleshooting

For troubleshooting guides including service management, resource identification, and log browsing, see docs/troubleshooting.md.

SDK

Denvig can be used programmatically in TypeScript projects:

import { DenvigSDK } from 'denvig'

const denvig = new DenvigSDK()

// Services
const services = await denvig.services.list()
await denvig.services.start('api')
await denvig.services.stop('api')

// Dependencies
const deps = await denvig.deps.list()
const outdated = await denvig.deps.outdated({ semver: 'minor' })

// Execute in context of another project
await denvig.deps.outdated({ project: 'marcqualie/denvig' })

All response types are exported for TypeScript consumers:

import type { ServiceResponse, Dependency, OutdatedDependency } from 'denvig'

Building from source

You can build from source instead of using the provided methods above:

pnpm install
pnpm build

After building, the CLI will be available at dist/cli.cjs. You can link it globally:

npm link