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

sessio

v0.3.0

Published

Interactive terminal browser to find and resume past Claude Code sessions.

Readme

sessio

Find and resume your past Claude Code sessions from the terminal.

🌐 Website · 📦 npm

sessio is a fast, dependency-free TUI that reads your local Claude Code transcripts and lets you jump back into any past session — the right one, in the right directory — without hunting through claude --resume output. Project tabs, type-to-filter, full-text search, a live-updating list, and a preview of where each session left off.

The command you type is sessions. The npm package is named sessio (Latin for "a sitting / session") because sessions was taken.

←→ project · ↑↓ move · type to filter · ^f search-in-text · ^a archive · ⇥ expand-reply · ↵ resume · ^o same-window · ? help · esc quit · live

Install

npm install -g sessio

This puts a sessions command on your PATH (and sessio as an alias). Run it:

sessions

Optional: full-text search

^f searches inside every transcript body via ripgrep. Without rg installed, everything else works — only content search is disabled. Install it with brew install ripgrep / apt install ripgrep.

What it does

  • Project tabs — sessions grouped by their working directory; / to switch, or All.
  • ⏸ open tab — "pick up where you left off": surfaces unfinished sessions (Claude ended asking/proposing and you didn't answer, a prompt got no reply, or the folder has uncommitted git changes). Open sessions are marked with an amber in any view.
  • Type to fuzzy-filter — instantly narrows by title, project, or first prompt. Matching is fuzzy (subsequence) and ranked: exact substrings rank first, looser matches follow.
  • ^f full-text search — greps the full transcript body for a term, across all sessions on disk.
  • ^a archive — hides a session you're done with from every tab; press again to unarchive. Archived sessions collect in a 🗄 archived tab (you can still resume from there). This is a sessio-local declutter list only — the transcript files are never touched, so claude --resume still works and Claude's own cleanup still applies.
  • Live refresh — the list updates every 2s, so a session you're actively running floats to the top with a green dot (🟢 active <5 min, 🟠 recent <24h).
  • Preview — for the highlighted session: title, project, prompt count, git branch, the compact summary, first/last typed prompt, and Claude's last reply rendered as markdown (including fenced code blocks). expands the reply.
  • resume — runs claude --resume <id> in that session's original working directory. Under Ghostty, it opens the session in a new window (ghostty +new-window) and leaves sessio running as a launcher, so you can fire off several sessions; in any other terminal it hands over the current window as before. Press ^o instead to resume in this window (replacing sessio) even under Ghostty — the escape hatch when you don't want a new window.
  • ? help — a full keybinding overlay; any key closes it.
  • Auto-update — on launch, sessio checks npm for a newer version and updates itself in place (then re-launches). A root-owned global install prints the sudo command instead of prompting; a slow or offline network is a no-op. Opt out with NO_UPDATE_NOTIFIER=1 or SESSIO_NO_UPDATE=1.

Keys

| Key | Action | |---|---| | / | switch project tab | | / | move selection ( reveals more) | | type | fuzzy-filter (ranked) by name / project / first prompt | | ^f | full-text search the current query across all transcripts | | ^a | archive / unarchive the selected session (sessio-local hide only) | | / ^e | expand / collapse the reply preview | | | resume the selected session in its directory (Ghostty: new window) | | ^o | resume in this window, replacing sessio (Ghostty escape hatch) | | ? | toggle the help overlay | | esc | clear content search, then quit | | ^c | quit |

Requirements

  • Node.js ≥ 16
  • Claude Code installed, with a claude binary on your PATH (used to resume)
  • ripgrep (optional) for ^f full-text search
  • macOS or Linux

Keep your sessions muscle memory

If you already invoke the tool some other way, just alias:

alias sessions='sessio'   # or point it at the global install

How it works

sessio reads Claude Code's transcript files at ~/.claude/projects/**/*.jsonl, parsing each session's title, prompts, compact summary, and last reply. It caches per-file by mtime so refreshes are cheap, and only the 300 most-recent sessions are shown (full-text search still scans everything on disk).

⚠️ The .jsonl transcript format is undocumented and internal to Claude Code. It may change without notice. sessio parses defensively and degrades gracefully, but a format change on Anthropic's side can break fields until this tool is updated. This project is not affiliated with or endorsed by Anthropic.

Optional: back up your sessions to iCloud (macOS)

Claude transcripts are your work history and aren't backed up anywhere by default. scripts/backup-sessions.sh rsyncs ~/.claude/projects into iCloud Drive incrementally (no --delete, so a local wipe can't erase your backup).

Run it manually, or schedule it with the included LaunchAgent template:

cp scripts/com.sessio.backup.plist ~/Library/LaunchAgents/
launchctl load ~/Library/LaunchAgents/com.sessio.backup.plist

Edit the paths in both files first if your setup differs. On Linux, run the script from cron instead.

License

MIT © 2026 theanhgen