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

kodocodes

v0.1.3

Published

The Kodo CLI. Turns the coding sessions you run with AI agents into a Recap: what you built, how, and at what cost.

Readme

kodocodes

The Kodo CLI. Kodo turns the coding sessions you run with AI agents into a Recap: what you built, how, and at what cost. It reads the transcripts already on your disk, keeps metadata only, stores events in a local SQLite database, and syncs them idempotently to your account.

npm i -g kodocodes@latest && kodo daemon start
kodo today                 # what you and your agents did today
kodo recap last            # the Recap card for the most recent session

Needs Node 22.14 or newer. npm install runs nothing in the background; kodo daemon start scans every session already on your disk (once, with progress), then installs the daemon and starts it — now, at every login, and again on the new version within a minute of npm i -g kodocodes@latest. Prefer to look first? npx kodocodes scan backfills without installing anything, and asks once whether to keep it current. Nothing leaves your machine until you run kodo login.

Develop

pnpm install
pnpm -F kodocodes build          # dist/kodo.mjs
pnpm -F kodocodes kodo doctor    # runs bin/kodo.js against the bundle
pnpm -F kodocodes test

Point the CLI at a scratch home while developing so your real ~/.kodo stays untouched: KODO_HOME=/tmp/kodo pnpm -F kodocodes kodo scan.

Commands

| Command | Status | | ---------------------------------------------------- | ---------------------------------- | | kodo scan [--source] [--since] [--full] | works; readers land in #55 and #56 | | kodo doctor | works | | kodo config get\|set\|unset\|path | works | | kodo sessions, recap, today, stats, export | #57 | | kodo daemon … | #58 | | kodo login, logout, whoami, sync | #59 |

Global flags: --json, --no-color, --db <path>, --verbose. Exit codes: 0 ok, 1 user error, 2 environment, 3 sync.

Layout

bin/kodo.js          Node ≥ 22.14 check, silences the node:sqlite warning, loads dist/kodo.mjs
src/cli/             argv parsing, output, command registry, dispatcher
src/commands/        one file per command, exporting <name>Command
src/core/            errors + exit codes, hashing, ~/.kodo paths
src/config/          ~/.kodo/config.json (mode 0600)
src/store/           node:sqlite store and migrations
src/readers/         one folder per tool; _shared/ has JSONL slicing and helpers
src/scan/            reader-agnostic ingest loop
src/derive/          store glue around @turbo/kodo-core (Step 3)
src/daemon/          background watcher (Step 4)
src/sync/            upload to the API (Step 5)

Privacy

Readers never open the source files a transcript refers to. file.edited carries a repo-relative path and line counts only. Prompt text stays in the local prompt_text table and never leaves the machine unless you run kodo config set sync.prompts titles. Fixtures under __fixtures__/ are produced by scripts/kodo/redact-fixture.mjs and contain no text.