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

@procrastivity/clast

v0.0.4

Published

Capture, curate, and surface Claude Code session history across all your projects.

Downloads

610

Readme

clast

Capture, curate, and surface Claude Code session history across all your projects.

🚧 Pre-1.0 — APIs may change before v1.0.

What it does

  • CLI — two binaries, porcelain over plumbing:
    • clast — porcelain (LLM-aware): clast wake, clast brief. See run without Claude Code.
    • clast-plumbing — deterministic core: snapshot, browse, and query your Claude Code session JSONL history.
  • Plugin — installs skills (/day-wakeup, /wakeup) that surface recent session context.
  • SessionStart hook — quietly snapshots active sessions in the background each time Claude Code starts.

Capture your sessions

clast-plumbing snapshot                       # copy any new sessions into the journal
clast-plumbing snapshot --dry-run --json | jq # preview what would be captured

clast-plumbing snapshot is idempotent and silent on no-op, safe to run from cron or a SessionStart hook. See docs/reference/cli.md#clast-snapshot for the full flag reference.

Read your sessions

clast-plumbing projects                        # which projects had activity today
clast-plumbing sessions --since -7d            # sessions captured in the last week
clast-plumbing show <session-uuid> --full      # metadata + first/last turns

Window flags (--day, --since, --until) accept ISO dates and relative keywords. See docs/reference/cli.md#clast-projects, docs/reference/cli.md#clast-sessions, and docs/reference/cli.md#clast-show for the full flag and output schemas.

Curate an entry

clast-plumbing entries                                            # list curated entries
clast-plumbing entries read 2026-05-30-1430-xesapps-foo.md        # cat a single entry
printf 'Notes...\n' | clast-plumbing entries write \
  --session <session-uuid> --slug short-slug --body-stdin          # write a new entry

clast-plumbing entries write looks up the session in the manifest, composes the documented frontmatter from the captured snapshot + registry, and writes entries/YYYY-MM-DD-HHMM-<project-slug>-<session-slug>.md atomically. See docs/reference/cli.md#entry-frontmatter for the full frontmatter schema and docs/reference/cli.md#clast-entries for the flag reference.

Leave a breadcrumb

clast-plumbing breadcrumb --project xesapps 'check migration before deploy'
clast-plumbing breadcrumb --global 'remember to bump the cache version'

clast-plumbing breadcrumb --read --project xesapps
clast-plumbing breadcrumb --read --global

Breadcrumbs are append-only one-line notes for /wakeup and /day-wakeup. See docs/reference/cli.md#clast-breadcrumb for the full command contract.

Inspect and audit the journal

clast-plumbing stats                          # one-line activity summary for today
clast-plumbing stats --since -7d              # rollup over the last week

clast-plumbing doctor                         # check manifest, registry, snapshots
clast-plumbing doctor --fix                   # rebuild a broken manifest, prune orphans

See docs/reference/cli.md#clast-stats and docs/reference/cli.md#clast-doctor for the contract reference, and clast-plumbing stats --help / clast-plumbing doctor --help for the current set of flags.

Install to a prefix

./install.sh installs to /usr/local by default; for a non-root local install, run:

./install.sh ~/.local

make install wraps the same script; make install-local installs the working tree to ~/.local with no sudo (and make uninstall-local removes it). Use ./uninstall.sh ~/.local (or make uninstall for the default prefix) to remove the installed files. See docs/reference/repo-bootstrap.md#installsh--uninstallsh for the rationale.

Install with Nix

With Nix flakes enabled, you can use clast directly from the public flake:

nix profile install github:procrastivity/clast
nix build .#default && ./result/bin/clast --version       # porcelain
nix build .#default && ./result/bin/clast-plumbing --help # plumbing

For Home Manager or nix-darwin users, overlays.default exposes pkgs.clast. See docs/reference/repo-bootstrap.md#nix-flake for the full overlay wiring.

Install via npm

npm install -g @procrastivity/clast
npx -p @procrastivity/clast clast --version

The npm package ships the same install set as install.sh and Nix: bin/, lib/, .claude-plugin/, hooks/, examples/, README.md, and LICENSE. After a global install, register the plugin with claude plugin install $(npm root -g)/@procrastivity/clast.

Install as a Claude Code plugin

For a local checkout, install the plugin with:

claude plugin install <path-to-clast-checkout>

The plugin can be installed from any local checkout, or via npm install -g (which puts .claude-plugin/ under npm root -g); a centralized marketplace listing is a separate distribution channel deliberately not pursued for v1. Today the plugin ships a single SessionStart hook: every time a Claude Code session starts it backgrounds clast-plumbing snapshot, so your journal stays current with zero manual effort. The hook is best-effort and silent: if the clast-plumbing CLI isn't on your PATH yet, sessions still start cleanly. See docs/reference/plugin.md#hook-sessionstart for the hook's design rationale.

/day-wakeup

At the start of each day, run /day-wakeup inside any Claude Code session after the plugin is installed. It performs once-per-day cross-project curation of yesterday's sessions into durable journal entries, walking each uncurated session through a draft you can accept, edit, skip, or mark for in-entry promotion. See docs/reference/plugin.md#skill-1-day-wakeup.

/wakeup

When starting work on a specific project, run /wakeup (or /wakeup <slug> from anywhere) to get a per-project read-only briefing synthesized from recent curated entries, today's breadcrumbs, and any sessions already started today. /wakeup never writes — it only reads. See docs/reference/plugin.md#skill-2-wakeup.

Development

With Nix (recommended). Run direnv allow (or nix develop) at the repo root. The dev shell provides bash, jq, git, shellcheck, and pre-commit — everything clast needs at runtime plus the dev tooling.

Without Nix. Install bash 5+, jq, git, and shellcheck via your package manager, then run make deps-check to verify they're on PATH.

CI / Release

Pull requests run lint, tests, version sync, npm pack shape, Nix smoke, flake check, and Nix build automatically. Releases trigger on v* tags, and the tag version must match package.json exactly. The release workflow publishes to npm with provenance and creates a GitHub Release with the npm tarball attached. Publishing to npm uses Trusted Publishing (OIDC) — no NPM_TOKEN secret. Configure the trusted publisher for @procrastivity/clast on npmjs.com before the first release tag; see docs/reference/releasing.md.

Documentation

Start at docs/README.md for the full index. Highlights:

License

MIT — see LICENSE.