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

@claudekit-app/cli

v0.1.10

Published

Local-first context, continuity, and session tracking for terminal AI agents.

Downloads

1,563

Readme

ClaudeKit CLI

ClaudeKit CLI is a local-first continuity layer for developers using terminal AI agents. It records the work you explicitly launch through it, keeps a compact project memory on your machine, and prepares a portable handoff when you need to continue in another agent.

It does not upload your repository, prompts, project memory, or session data.

What it does

  • Launch and track normal Claude Code, Codex, Antigravity CLI, Gemini CLI, and OpenCode sessions.
  • Track another local command unchanged with ck run <command>.
  • Keep sessions in local SQLite with a stable project ID, provider, timestamps, duration, exit status, changed files, and any provider-reported usage fields.
  • Keep deterministic project memory in .claudekit-local/memory.json.
  • Prepare a local Markdown handoff and safely inject it when switching among supported agents.
  • Show current activity with ck sessions, ck stats, and ck stats --week.
  • Preserve manual Markdown checkpoints for explicit long-task recovery.
  • Record one anonymous installation metric on global npm install, with optional daily-batched usage telemetry.
  • Map static imports across sibling Git repositories and flag conservative unused-file candidates.

ClaudeKit reports unavailable token fields as . It never invents token savings, quota remaining, or billing numbers.

Human-readable CLI output uses color to distinguish commands, ready states, notices, and errors. Local scanning commands show a compact spinner in an interactive terminal. JSON output is always plain. Set NO_COLOR=1, pass --no-color, or pass --no-animations to reduce terminal output.

Install

ClaudeKit CLI supports Node.js 24 or later.

npm install --global @claudekit-app/cli
ck doctor
ck verify

Install and sign in to your preferred terminal agent through its own provider. ClaudeKit does not install, update, or receive credentials for third-party agents. Run ck doctor to see which supported local commands are available, then use ck setup <agent> to set a repository default.

From any repository:

ck init
ck context "Add a checkout receipt"
ck claude
ck stats

ck init creates private local state in .claudekit-local/. You can use the tool without init; the first wrapped session will create the same state.

Daily workflow

Launch the agent you normally use. ClaudeKit passes your command-line arguments through unchanged and tracks the session locally.

ck claude
ck codex
ck antigravity
ck claude --model sonnet

Track a different terminal tool without asking ClaudeKit to understand or modify it:

ck run aider --message "Review the authentication middleware"

Before beginning a focused task, prepare a compact local context pack. It scans the repository locally, selects relevant source files, and prints a Markdown brief you can paste into any supported terminal agent.

ck context "Add a checkout receipt" --budget 4000
ck impact src/checkout.ts

ck impact reports local static-import dependents for review before a change. Both commands refresh the local code map first; no repository content leaves your machine.

Each context pack records the estimated source context it excluded compared with the indexed repository at that moment. Run ck status to see the cumulative estimatedContextAvoidedTokens total. This is a local character-count estimate of context not included in ClaudeKit packs, not a provider billing or guaranteed token-savings figure.

Inspect activity after an agent exits:

ck sessions
ck stats
ck stats --week
ck status

Workspace graph and unused-file candidates

For a directory containing sibling Git repositories, build a local workspace graph. ClaudeKit scans local source files, reads package names, and connects only static JavaScript or TypeScript imports that match another workspace package name.

cd ~/projects
ck workspace scan .
ck workspace graph .
ck workspace dead-code .

For a single repository:

ck dead-code

The detector reports unused-file candidates, not confirmed dead code. It excludes conventional entry points, package exports, test and config files. A repository imported by another workspace package is skipped entirely from candidate output to avoid unsafe cross-package deletion advice. Dynamic imports, framework routing, generated files, and runtime loading require human review.

Anonymous verification metrics and optional telemetry

The first successful ck verify opens a short-lived browser verification link. ClaudeKit records one anonymous installation ID, CLI version, coarse operating-system details, locale, and timezone only after that browser check completes. Automated package checks and non-interactive commands cannot create an installation record. To opt out before verification, run:

CK_DISABLE_INSTALL_METRICS=1 ck verify

Daily aggregate usage telemetry is disabled by default. When a developer explicitly enables it, ClaudeKit sends at most one automatic daily aggregate after a 24-hour boundary. ck telemetry sync can send the current aggregate immediately.

ck telemetry status
ck telemetry enable
ck telemetry sync
ck telemetry disable

The verification metric includes a random installation ID, CLI version, coarse operating-system details, locale, and timezone. The opt-in aggregate adds sessions launched, agent-provider counts, active time, project count, and aggregate feature usage. Country is deliberately left blank because a machine locale is not reliable location data.

It never includes source code, prompts, repository paths, file names, command arguments, handoff text, raw IP addresses, email addresses, or account details. Disabling telemetry discards all unsent local aggregates.

Switch agents

When you want to continue work in another supported agent, ClaudeKit creates a short local Markdown handoff from its project memory. The handoff includes recent sessions, files observed and changed, and any explicit local notes.

ck switch codex
ck switch antigravity
ck switch claude --print

--print writes the handoff locally and prints it without launching an agent. Otherwise, ClaudeKit launches the target agent with the handoff only where that adapter supports a documented normal first-prompt workflow. Antigravity's first-prompt command-line input is not yet documented, so ClaudeKit saves the handoff, opens no agent, and tells you exactly where to paste it. ClaudeKit never sends a message or performs work outside the agent process you explicitly launched.

Commands

ck init [path] [--agent <agent>] [--command <binary>]
ck claude [args...]
ck codex [args...]
ck antigravity [args...]
ck gemini [args...]
ck opencode [args...]
ck run <command> [args...]
ck switch <claude|codex|antigravity|gemini|opencode> [--print]
ck context <task> [--budget <tokens>] [--json]
ck impact <path> [--depth <count>] [--json]
ck dead-code [--json]
ck workspace scan [path] [--json]
ck workspace graph [path] [--json]
ck workspace dead-code [path] [--json]
ck sessions [--limit <count>] [--json]
ck stats [--week] [--json]
ck status [--json]
ck agents [--json]
ck doctor [--json]
ck checkpoint <task> --note "..."
ck resume [task]
ck dashboard [--port <number>]
ck guide

Local data and privacy

Each project stores ClaudeKit data here:

.claudekit-local/
  config.json        stable project ID and optional default agent
  local.sqlite       local session records and legacy local utilities
  memory.json        deterministic project continuity state
  handoffs/          generated local cross-agent handoffs
  checkpoints/       explicit Markdown checkpoints

The directory and its files are created with user-only permissions where the operating system supports them. A global npm install sends the anonymous installation metric described above unless you opt out. Daily usage telemetry remains opt-in. Your chosen AI agent has its own authentication, network behavior, and privacy terms.

The only exception is the anonymous installation metric and optional telemetry described above. They use a separate Supabase ingestion endpoint and cannot read the local project database.

Scope of this release

This release intentionally does not include a hosted dashboard, billing, accounts, cloud sync, a vector database, IDE extensions, background codebase watching, symbol-level reference analysis, or automatic claims of token savings.

Development

pnpm test
pnpm release:check