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

@dbx-tools/core

v0.3.20

Published

Node-only core helpers for process execution and project discovery.

Readme

@dbx-tools/core

Node-only core helpers for process execution and project discovery.

Import this package when code needs node:child_process, node:fs, or node:path. Browser-safe utilities live in @dbx-tools/shared-core.

Key features:

  • Async and sync process execution with consistent stdio handling.
  • AbortSignal support for long-running subprocesses.
  • Small shell-like argument splitting for command strings that must become argv arrays.
  • Workspace/project root discovery from package-manager files, git metadata, and the current working directory.
  • Safe filesystem stat and project naming helpers for CLIs and projen synth.
  • YAML/JSON brand-context discovery and loading with shared Zod validation.

Load Brand Context

import { brand } from "@dbx-tools/core";

const context = await brand.loadBrandContext();

loadBrandContext() searches known npm/git project roots for branding/brand.yaml, .yml, or .json, followed by equivalent root-level files. Missing files return the complete dbx tools default context; malformed files fail validation. Use loadBrandContextFile(path) for an explicit file and resolveBrandAssetPath(path, asset) for relative asset references.

Run Commands

import { exec } from "@dbx-tools/core";

const result = await exec.spawn("git", ["status", "--short"], {
  stdout: "capture",
  stderr: "capture",
});

if (result.exitCode !== 0) {
  throw new Error(result.stderr);
}

exec.spawn() supports inherited, piped, ignored, captured, and line-callback stdio. It accepts string stdin and abort signals, making it useful for CLIs and watch tasks.

Prefer spawn() over ad hoc child_process calls when command output needs to be captured, streamed line-by-line, or aborted consistently from higher-level tooling.

Run Synchronously

const rev = exec
  .spawnSync("git", ["rev-parse", "HEAD"], {
    stdout: "capture",
  })
  .stdout.trim();

Use spawnSync() during projen synthesis or config discovery where async control flow is not available.

Split Shell-Like Commands

const argv = exec.shlex('pnpm exec prettier --write "README.md"');

shlex() is a small parser for command strings that need to become argv arrays. Prefer explicit argv arrays when possible.

Discover Project Roots

import { project } from "@dbx-tools/core";

const root = project.root();
const name = project.name();
const origins = [...project.resolveProjectRoots(process.cwd())];

project.root() checks npm/pnpm workspace roots, git top-level, and cwd. project.name() prefers package metadata, then git remote name, then directory basename. project.stat() returns undefined instead of throwing.

Modules

  • exec - async/sync process spawning, stdio handling, abort wiring, and shlex.
  • project - root discovery, project naming, git-remote parsing, and safe filesystem stat.
  • brand - YAML/JSON discovery, parsing, validation, and asset path resolution.