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

claudekits

v0.1.4

Published

ClaudeKit CLI — install AI teams for Claude Code. Every token accounted for.

Readme

claudekit (ck)

Install AI teams for Claude Code. Every token accounted for.

The ClaudeKit CLI downloads your entitled kits (agents + skills + slash commands) into Claude Code's .claude/ directory and shows the context token cost of every skill — the thing no other tool measures.

npm i -g claudekits
ck auth <license-key>
ck install seokit
ck tokens

claudekit and ck are the same binary. Requires Node.js >= 18 (built-in fetch). No runtime config files needed; state lives under ~/.claudekit/.


Install

npm  i -g claudekit
pnpm add -g claudekit
yarn global add claudekit

Then authenticate with the license key from your dashboard (https://claudekit.dev/dashboard/licenses):

ck auth ks_live_xxxxxxxxxxxx

Commands

Global flags work in either position (ck --json doctor or ck doctor --json):

| Flag | Effect | | ------------ | ----------------------------------------------------------------- | | --json | machine-readable JSON output (for scripting / CI) | | --no-color | disable ANSI colors (also auto-disabled when NO_COLOR is set) | | -v, --version | print the CLI version | | -h, --help | help for the CLI or a subcommand |

ck auth <license-key>

Validates the key against ${CLAUDEKIT_API}/api/license/validate with activation (x-ck-activate: 1), then saves credentials to ~/.claudekit/config.json (mode 0600). Prints your masked email, entitled kits + versions, and activation usage.

ck auth ks_live_xxxxxxxxxxxx
  • Invalid key → exit 1.
  • Activation limit reached → exit 2 (deactivate an old machine in the dashboard).
  • Network / API unreachable → exit 3.

ck whoami

Offline. Prints the signed-in account (masked email, key last-4), last-validated time, activation count, and entitled kits from the saved config. Suggests ck auth if you aren't signed in.

ck list (alias ck ls)

Joins your entitled kits with local install receipts: slug, entitled version, installed version + target (or ), and an update-available marker. --json supported.

ck install <kit> [-g] [--force] (alias ck add)

Re-validates your license (no activation consumed), downloads the signed release zip to a temp file, and extracts it into the target's .claude/ directory, preserving agents/, skills/<slug>/SKILL.md, and commands/ paths. Writes an install receipt to ~/.claudekit/installs.json and prints the per-skill token ledger (tokens, kind, % of the 200k context window, total, and the always-loaded note), plus a next-step hint like /seo audit.

| Flag | Effect | | -------------- | ---------------------------------------------------------------- | | -g, --global | install into ~/.claude instead of the current directory | | -f, --force | reinstall even if the same version is already present |

  • Reinstalling the same version requires --force.
  • Unknown kit → lists what you do own, exit 1.
  • Zip entries with absolute paths or .. are rejected (zip-slip guard).

ck tokens [kit] [--live]

THE EDGE. Reads each installed kit's bundled manifest.json and prints a token table grouped by kit — skill files sorted high → low, a kind column, total, % of 200k, and the always-loaded subtotal. With --live it recounts every file from disk (≈ 4 chars/token) and shows the drift vs the shipped manifest. --json supported. No installs → a friendly hint. Counts are labeled ~estimated, 4 chars/token.

ck update [kit] [--force] (alias ck upgrade)

Re-validates your license, compares each install receipt against the entitled version, and reinstalls those that are newer (no arg = all installed kits). --force reinstalls even when not newer. Reports per kit; prints the token ledger for anything it upgrades.

ck uninstall <kit> [-g] (alias ck remove)

Removes only the files recorded in that kit's receipt, prunes now-empty directories under .claude/, and drops the receipt. Files you added or edited yourself are left untouched. Use -g to target the global (~/.claude) install when a kit is installed in multiple places.

ck doctor

Diagnoses your setup; each check prints ✓ / ! / ✗ with a fix hint:

  • Node.js >= 18
  • Claude Code CLI on PATH (missing = warning, not failure)
  • ~/.claude exists + writable (and ./.claude when present)
  • credentials readable + key present
  • API reachable (3s timeout; offline = warning)
  • installed-kit integrity (every tracked file exists)
  • total always-loaded token budget across installs (warns above 25,000)
  • orphaned claudekit files under .claude not tracked by any receipt

Exits 0 unless a hard failure (e.g. unwritable .claude, missing tracked files, a server-rejected key) is found. --json supported.


Exit codes

| Code | Meaning | | ---- | ----------------------------------------------------------------------- | | 0 | success (and doctor with only warnings) | | 1 | generic failure — invalid input, unknown/unowned kit, invalid license, doctor hard failure | | 2 | activation limit reached (manage activations in the dashboard) | | 3 | network / API unreachable |

Every command prints a red error line plus an actionable hint on failure. Stack traces are shown only when DEBUG=1.


Environment variables

| Variable | Purpose | | -------------- | ------------------------------------------------------------------------- | | CLAUDEKIT_API | Override the API base URL (default https://claudekit.dev). For local dev. | | NO_COLOR | Disable colored output (standard NO_COLOR convention; same as --no-color). | | DEBUG | Set to 1 to print stack traces on errors. |


Files on disk

| Path | Contents | | -------------------------------------- | --------------------------------------------------- | | ~/.claudekit/config.json | license key + entitlements (mode 0600) | | ~/.claudekit/installs.json | install receipts (kit, version, target, files) | | <target>/.claude/{agents,skills,commands}/ | installed kit content | | <target>/.claude/.claudekit/<kit>/manifest.json | bundled manifest used by ck tokens |

<target> is the current directory by default, or your home directory with -g/--global.

Known bin conflicts

The claudekit bin name is also used by the unrelated claudekit npm package, and ck by ClaudeKit.cc's claudekit-cli. Installing this package alongside either will fail with EEXIST on the conflicting bin — uninstall the other package or use npm i -g claudekits --force and invoke whichever bin survives.