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

@sonnechasser/ntrp

v2.4.0

Published

GTM Health Diagnostic CLI — local pipeline analysis tool

Readme

NTRP

GTM health diagnostic CLI — listen to your pipeline, report what you hear.

NTRP sits on top of your CRM exports and activity data, computes five vital signs (freshness, flow rate, drop rate, signal-to-noise, thread depth), and helps you investigate issues in plain English.

Requirements

  • Node.js 22+

Install

npm install -g @sonnechasser/ntrp

License & trial

NTRP requires a license key from Lemon Squeezy. Customer keys are UUID format (e.g. 36150FCC-711E-4BCA-...) delivered by email after checkout. NTRP- prefixed keys are a git-checkout/CI path only and are not accepted by the published npm build.

Use is governed by the proprietary LICENSE in this package. Activating a key accepts those terms.

On first launch, ntrp opens the signup checkout (free trial or Pro), then prompts you to paste your key.

| Flow | Command | Checkout | |------|---------|----------| | New signup (trial or Pro) | First launch, /checkout | Signup | | Trial → Pro upgrade | /upgrade | Pro only |

Trial policy: 11 days full access, then grace through day 30. After day 30, run /upgrade and paste your Pro key.

Activate manually if you already have a key:

ntrp activate <your-license-key>

In the REPL: /activate <your-license-key>

Test as a new user

npm uninstall -g @sonnechasser/ntrp
rm -rf ~/.ntrp
npm install -g @sonnechasser/ntrp@latest
ntrp

Quick start

Launch the interactive REPL (license prompt runs first if needed):

ntrp

Verify setup:

ntrp setup check

On first run, complete /onboard to set up your company profile, or load sample data:

  • Type use demo data in the REPL, or
  • Run ntrp demo --scenario hidden_crisis --no-profile

Then ask questions naturally — e.g. "is our pipeline healthy?" or "what's stuck?"

Setup check

See license, profile, LLM keys, and local paths:

ntrp setup check

Headless / JSON output:

ntrp setup check --json

Common commands

| Command | Description | |---------|-------------| | ntrp | Open the interactive REPL | | /home | Status dashboard (license, profile, dataset, progress) | | /progress | Usage stats and milestone ladder (no license required) | | /checkout | Open signup checkout in browser | | /upgrade | Trial → Pro checkout + paste key | | /onboard | Company profile wizard | | /demo | Load demo scenario data | | /handoff | Export or agent prompts | | /update | Upgrade to the latest npm version | | ntrp setup check | Validate local configuration |

Type /help inside the REPL for shortcuts.

AI features (optional)

For AI-powered findings and /ask, store API keys in ~/.ntrp/config.json:

ntrp config set api-key <anthropic-key>
ntrp config set openai-api-key <openai-key>

Core vital-sign computation works without AI keys.

Update

Inside the REPL:

/update

Or reinstall:

npm install -g @sonnechasser/ntrp@latest

Data & config

Local state lives in ~/.ntrp/ (config, sessions, DuckDB datasets). Override with NTRP_HOME if needed.

Progress (usage tracking) — install-scoped, separate from pipeline data:

| File | Purpose | Survives /scratch? | |------|---------|----------------------| | install.json | Stable install identity on this machine | Yes (default) | | progress.json | Hours saved, milestones, usage stats | Yes (default) |

  • ntrp reset --force — clears DuckDB pipeline data only; progress unchanged
  • /scratch — wipes config, profile, sessions, datasets; preserves progress by default
  • /scratch --include-progress — also wipes install.json and progress.json
  • /progress reset — clears hours/milestones; keeps install.json
  • rm -rf ~/.ntrp — removes everything (nuclear option)

Checkout URL overrides (optional):

  • NTRP_CHECKOUT_URL — signup / first-run
  • NTRP_UPGRADE_URL — Pro upgrade (/upgrade)

Release Process

How a new version of @sonnechasser/ntrp reaches npm today. This is a reference for release review — it does not change how releases work.

What triggers a release

A maintainer (or their assistant, acting on the maintainer's explicit version approval) runs node scripts/release-ntrp.mjs X.Y.Z. That script:

  1. Bumps package.json / package-lock.json to X.Y.Z.
  2. Commits Release X.Y.Z on main and pushes it.
  3. Creates and pushes the git tag vX.Y.Z.
  4. Waits for GitHub Actions and reports the result.

Pushing that v* tag is the trigger. The script never runs npm publish itself.

What must be true first

  • main is green and the release commit is on main — a tag publishes with the workflow file as of the tagged commit, so any workflow fix has to land on main before the tag is cut.
  • The version does not already exist on npm. The script stops rather than republish.
  • X.Y.Z is higher than the current package.json version (unless the tag already exists and only the publish needs retrying).
  • The working tree is clean.

The exact version number is Dan's call. Naming the version is the approval to ship; nothing publishes without it.

What GitHub Actions does automatically

.github/workflows/publish-npm.yml runs on any pushed v* tag (and can be re-dispatched manually for a tag that was pushed but never published, without moving the tag). It:

  • Checks out the tagged commit.
  • Uses Node 22 — pinned because DuckDB's native binding has no Node 24 prebuild.
  • Upgrades the npm CLI to >= 11.5.1, which trusted publishing requires.
  • Runs npm ci, confirms the DuckDB binding loads, and builds.
  • Runs the pre-publish checks npm run test:publish-pack (tarball contents) and npm run test:publish-workflow (workflow contract).
  • Publishes with npm publish --access public using npm trusted publishing over OIDC. There is no NPM_TOKEN secret in this repo, and none should ever be added.

CI is the DuckDB test gate; the publish job does not repeat the full smoke suite.

Publishing never happens outside GitHub Actions

npm publish must never be run from Slack, Cursor, Devin, any agent shell, or a laptop. The only path to npm is the tag-triggered GitHub Actions workflow, after Dan has approved the exact version.

One-time npm Trusted Publisher setup

This flow depends on one piece of configuration outside the repo. On npmjs.com@sonnechasser/ntrpSettingsTrusted PublisherGitHub Actions:

| Field | Value | |---|---| | Organization or user | sonnechasser | | Repository | ntrp-cli-v2 | | Workflow filename | publish-npm.yml (filename only, not the full path) | | Allowed actions | npm publish |

The workflow must also exist on the default branch. These are configuration identifiers, not secrets.

If a release fails

Do not create a second tag. Check whether the tag was pushed and whether npm has the version, then look at the two most likely causes:

  • DuckDB / Node version mismatch — the publish run fails installing or loading duckdb. The tagged commit is running an old workflow that used Node 24. Get the Node 22 workflow onto main, then ship the next version.
  • Missing or misconfigured npm Trusted Publisher — the publish step fails with a 404 or an authentication error. Re-check the four Trusted Publisher values above; the workflow filename in particular must match publish-npm.yml exactly.

If a tag exists but npm does not have that version, either re-dispatch the workflow for that tag from main (gh workflow run publish-npm.yml --ref main -f ref=vX.Y.Z) or ship the next version so the tagged commit includes the current workflow.

Links

License

Proprietary commercial software. See LICENSE. A valid Lemon Squeezy key is required to use the published CLI. The npm package does not grant rights to copy, modify, redistribute, or extract the software to build a competing product.