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

@muthuishere/crossmem

v0.1.6

Published

Portable context memory across local agent tools.

Readme

crossmem

Portable context memory across local agent tools.

crossmem discovers your local Claude Code, Codex, Devin, Copilot (VS Code and CLI), and OpenCode session stores, lists available sessions, and emits a clean context bundle that can be loaded into another agent session — so context follows you across tools and repos.

It is primarily a fast, local-first context CLI. It sends no telemetry; everything is local reads.

Install

npm install -g @muthuishere/crossmem

This package is a thin launcher that resolves a prebuilt native binary for your platform (darwin-arm64, darwin-x64, linux-arm64, linux-x64, windows-x64) via optional dependencies — no compiler or Go toolchain required.

Also available via:

go install github.com/muthuishere/crossmemcli/cmd/crossmem@latest   # Go
brew install muthuishere/tap/crossmem                               # Homebrew

Resume across tools

The core flow: Codex hits its usage limit, you reopen the same folder in Claude Code, and pick up where you left off.

# 1. From the folder, load the latest session for it (summary by default)
crossmem load . --limit 1

# 2. Prefer to choose? List the recent sessions for THIS folder, newest first
crossmem list . --limit 5
#   2026-06-29T14:27  codex   /Users/you/.codex/sessions/.../rollout-….jsonl
#   2026-06-29T04:10  devin   devin:narrow-action
#   2026-06-28T21:02  claude  /Users/you/.claude/projects/.../<id>.jsonl

# 3. Load the one you picked, by the handle in the last column
crossmem load --session <handle>            # e.g. a .jsonl path, or devin:<id>
crossmem load --session <handle> --full     # fuller excerpt instead of the summary

crossmem matches a session to a folder by the real working directory recorded in each transcript — so it works even when the folder name contains a dash, and across every tool. The handle from list is uniform (--session takes a transcript path or devin:<id>), so loading is the same whether the session lived in a JSONL file or a SQLite database.

summary vs full — by default load emits a compact, summary-friendly excerpt per session; add --full for a larger, more verbatim excerpt.

Usage

crossmem scan                                  # discover known local context stores
crossmem list . --limit 5                      # recent sessions for THIS folder
crossmem list --provider claude --limit 20     # recent Claude sessions everywhere
crossmem load .                                # portable context bundle for this repo
crossmem load --session <handle> --full        # one chosen session, fuller excerpt
crossmem update .                              # write durable .crossmem/ context files

Every command has built-in help: crossmem help load, crossmem --version.

Commands

| Command | What it does | | --- | --- | | scan | Discover known local stores without reading transcript contents. | | list / sessions | List recent sessions; pass a folder to scope to it, or filter with --provider. | | load / context | Print a context bundle for a folder, or one session via --session; --full for more. | | update | Write durable <folder>/.crossmem/ files (context.md, guardrails.md, sessions.json, sources.json). | | guardrails | Print the repo instruction files an agent should read first. | | install --skills | Install the optional global crossmem-loader skill that drives this flow. |

Local stores

crossmem reads these on-disk stores (read-only):

| Tool | Store | | --- | --- | | Claude Code | ~/.claude/projects/<encoded-workspace>/*.jsonl (+ per-project memory/) | | Codex | ~/.codex/sessions/YYYY/MM/DD/*.jsonl, ~/.codex/history.jsonl | | Copilot (VS Code) | ~/Library/Application Support/Code/User/workspaceStorage/<id>/.../*.jsonl | | Devin CLI | ~/.local/share/devin/cli/sessions.db (SQLite) |

Bundles & guardrails

crossmem load prints a bundle; crossmem update . writes it durably under .crossmem/. A bundle separates two things on purpose:

  • Guardrails — repo instruction files (AGENTS.md, CLAUDE.md, .agents/AGENTS.md, .claude/CLAUDE.md) treated as authoritative instructions.
  • History — recent session excerpts, treated as context only.

How much to summarize is left to the consuming agent (or the crossmem-loader skill), since different tasks need different amounts of history.

Safety

crossmem reads other tools' private stores, so it is deliberately conservative:

  • It never reads *.env, credential files, auth databases, or vault/ directories (e.g. Devin's credentials.toml is skipped).
  • Secret values are never written into generated context.

Debugging

Observability is local and opt-in:

CROSSMEM_DEBUG=1 crossmem scan
CROSSMEM_LOG=/tmp/crossmem.log crossmem load . --limit 5

Debug logs include command flow and local read/query failures — never transcript contents.

Links

  • Source & full docs: https://github.com/muthuishere/crossmemcli
  • Issues: https://github.com/muthuishere/crossmemcli/issues

MIT © Muthukumaran Navaneethakrishnan