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

@themuuln/memento

v1.1.0

Published

Memento — local-first persistent memory system for AI coding agents

Readme

Memento

Local-first persistent memory system for AI coding agents.

Memento gives Pi (and other coding agents) durable memory that survives session restarts. It captures, stores, and retrieves knowledge using a hybrid FTS5+grep search — no cloud, no dependencies, just local files.

Quick Start

git clone [email protected]:themuuln/memento.git ~/.agent-memory
pip3 install -e ~/.agent-memory
bash ~/.agent-memory/setup.sh

Restart Pi — you'll see memory recalled automatically when you ask questions.

Features

For Day-to-Day Use

| What | How | |---|---| | Auto-recall | When you ask a question, relevant memories are injected as context — no manual search needed | | Store memories | memory_remember LLM tool or remember this: ... in chat | | Search | memory_recall <query> tool or /memory-recall <query> slash command | | Status | memory_status tool or /memory-status slash command | | Session cleanup | Compaction messages captured automatically; learnings consolidated on quit |

For Power Users — CLI

memory status          # Health check + entry count
memory recall <query>  # Hybrid search (FTS5+grep via RRF)
memory ingest <text>   # Capture with pattern detection
memory doctor          # Diagnostics + --repair
memory inbox           # Pending compaction items
memory consolidate     # LLM-powered session analysis
memory forget <query>  # Remove entries
memory index --rebuild # Rebuild FTS5 index
memory sync push|pull  # Sync across devices

Multi-Device Sync

Sync your memory data across machines via git:

memory sync init        # One-time: creates private themuuln/memento-data repo
memory sync push        # Upload local memories to remote
memory sync pull        # Download and merge remote memories
memory sync status      # Check sync state

Uses a separate private GitHub repo (themuuln/memento-data) that stores only your global/memories.md and graph/memory-graph.jsonl. Each machine pushes/pulls independently — merge conflicts are resolved by keeping the latest version.

Requires gh auth on each machine (gh auth login).

Under the Hood

~/.agent-memory/
├── memory                   # CLI entry point
├── memory_cli/              # Python package (26 files, 7 commands)
│   ├── cli.py               # Argparse CLI
│   ├── adapters/             # Flat file, graph, search backends
│   ├── commands/             # ingest, recall, consolidate, forget, etc.
│   └── core/                 # parser, dedup, hybrid search, FTS5 index
├── extensions/               # Pi TypeScript extensions
│   ├── memory-tools.ts              # 3 LLM tools, 4 slash commands, auto-recall, shutdown hook
│   └── memory-compaction-capture.ts  # Captures messages before compaction
├── global/memories.md        # Source of truth (durable markdown)
├── graph/memory-graph.jsonl  # Knowledge graph (MCP compatible)
├── config.json               # Triggers, patterns, LLM settings
├── tests/                    # 105 pytest tests
├── setup.sh                  # One-command installer
└── INSTALL.md                # Full installation guide

Search Architecture

Hybrid retriever combining:

  • FTS5 — SQLite full-text search with Porter stemming
  • Grep — Line-by-line regex fallback
  • RRF ranking — Reciprocal Rank Fusion merges both results
  • OR fallback — If AND query returns 0 results, auto-retry with OR
  • Alias expansionnextjsnext.js, tailwindtailwindcss, etc.

Storage

Dual-write to flat markdown + MCP knowledge graph JSONL. FTS5 index is auto-rebuilt after every write.

CLI Commands

| Command | Description | |---|---| | status | Health check, entry count, section breakdown | | ingest | Capture memory from stdin/file with trigger detection | | recall | Search memories (hybrid by default, --no-hybrid for grep-only) | | forget | Remove entries (--apply to confirm) | | index | Rebuild FTS5 search index | | inbox | Show/process pending compaction items | | consolidate | LLM-powered session transcript analysis | | parse | Parse and validate memories.md | | doctor | Deep diagnostics with --repair |

Environment

| Variable | Default | Purpose | |---|---|---| | AGENT_MEMORY_DIR | ~/.agent-memory | Root directory | | MEMORY_CLI | memory | CLI binary override | | OPENCODE_GO_API_KEY | (required) | For LLM consolidation via pi --print |

License

MIT