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

vibebook

v0.7.0

Published

Cross-device sync + resume for AI coding sessions (Claude Code + Copilot Chat). Companion to the vibebook Claude Code plugin which provides digest + recall.

Readme

vibebook

Cross-device sync for your AI coding sessions.

vibebook is the npm CLI half of a two-package system. It collects Claude Code + VS Code Copilot Chat sessions on every machine you use, pushes them to a private git repo, and lets you resume a session on a different laptop than where it started.

For digest + recall (chronicles, topics, "what did past-me figure out" queries), install the Claude Code plugin:

/plugin marketplace add june9593/vibebook-plugin
/plugin install vibebook

The plugin is independent — install it without the npm CLI if you only work on one machine. Install both if you want sync + digest.

Install

npm install -g vibebook
vibebook init

The wizard walks you through:

  1. Sync to a remote git repo? (yes/no — local-only is also valid)
  2. Repo URL + local checkout path
  3. Encrypt raw sessions before commit? (git-crypt filter, transparent)
  4. Passphrase (saved at ~/.vibebook/passphrase mode 0600)
  5. Enable CI cross-device aggregation? (GitHub Actions merges device branches into main)
  6. Include assistant reasoning in synced markdown? (recommended ON for ≥400K-context models)

After init, push your sessions:

vibebook sync

Cross-device resume (NEW in 0.5.0)

Once you've sync'd from machine A, machine B can resume a session that started on A:

# On machine B (after `vibebook sync` pulls A's session-repo):
vibebook list-sessions --since 7d           # Find sessions from this week
vibebook resume <sessionId>                  # Copy jsonl + emit `claude --resume` hint

If A and B have different home dir layouts (e.g. /Users/yueA vs /Users/yueB), tell vibebook how to translate paths once:

vibebook config --map-path /Users/yueA=/Users/yueB

After that, vibebook resume rewrites all absolute paths in the jsonl during copy, so claude --resume lands in the right local cwd.

Each resume is a fork — B gets a fresh sessionId so you can continue on B without colliding with A if A also keeps chatting on the same source session. The fork's origin is recorded in ~/.vibebook/resume-forks.json and stamped onto the spool index entry on the next vibebook sync (as originSessionId), so plugin-side digest tooling can later reason about same-source threads.

Commands

| Command | What it does | |---|---| | vibebook init | Interactive wizard. One-time setup. | | vibebook sync | Extract local sessions, push to your device branch. | | vibebook list-sessions [--project --since --device] | List sessions in spool, sortable for resume. | | vibebook resume <sessionId> | Copy jsonl into ~/.claude/projects/, print claude --resume hint. | | vibebook config [--map-path FROM=TO] | Read or modify ~/.vibebook/config.json. | | vibebook upgrade | npm install -g vibebook@latest. | | vibebook doctor | Health check: CLI, config, spool state, plugin install status. | | vibebook crypt <init\|verify> | Wire up the git-crypt filter for encrypted raw sessions. | | vibebook workflow <init\|...> | Install GitHub Actions for cross-device aggregation. | | vibebook list | List sessions in spool (simple table). | | vibebook show <ref> | Print one session's markdown to stdout. | | vibebook cat <path> | Print one file from the spool to stdout. |

Files written

  • ~/.vibebook/config.json — your settings (mode 0600)
  • ~/.vibebook/passphrase — git-crypt passphrase if encryption enabled (mode 0600)
  • ~/.vibebook/session-repo/ — git working tree of your private memory repo
    • raw_sessions/<tool>/<project>/<date>/*.{md,raw.json,jsonl} — sync-rendered session copies plus the original jsonl (preserved for resume)
    • .vibebook/index.json — spool index (co-owned with the plugin)
    • book/ and .vibebook/index.book.json — written by the plugin if you have it installed

The npm CLI does not touch book/ or .vibebook/index.book.json — those are the plugin's domain. The plugin in turn does not touch .git/, config.json, passphrase, or repo-salt.json — those are sync's.

Migration from v0.4.x

If you upgraded from v0.4.x and miss vibebook prepare / publish / recall / serve / build-site — those moved to the Claude Code plugin. Install it as shown at the top of this README. Your existing ~/.vibebook/session-repo/ data is unchanged; the plugin reads it and writes its own additions there.

Note for v0.4.x upgraders: spool format adds original jsonl

Sync now preserves the original .jsonl from ~/.claude/projects/ into the spool alongside .md + .raw.json. This is required by vibebook resume. Existing pre-0.5 sessions in your spool only have .md + .raw.json — those cannot be resumed across machines. To enable resume retroactively:

rm -rf ~/.vibebook/session-repo/raw_sessions
vibebook sync

This re-renders all your local sessions and now also preserves their original .jsonl. Bookmarks (the book/ directory written by the plugin) are unaffected and stay intact.

If you don't care about resuming pre-0.5 sessions, do nothing — new sessions sync'd after the upgrade work for resume; old ones trigger a vibebook doctor warning but otherwise behave normally.

See CHANGELOG for the full breaking-change list.

Repo layout (for contributors)

  • src/ — TypeScript source
    • commands/ — one file per CLI subcommand
    • commands/resume/ — list-sessions, resume, path-rewrite, config-pathmap
    • digest/{project-filter,session-signal}.ts — sync-side filtering helpers (the rest of the dir was moved to the plugin)
    • sources/ — Claude Code + Copilot adapters (sync uses both)
  • tests/ — vitest, parallel structure to src/
  • assets/{workflows,scripts} — GitHub Actions YAML + cross-device aggregate script
  • bin/vibebook.ts — commander entry, built to dist/bin/vibebook.js

License

MIT