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

@samfp/pi-memory

v0.1.1

Published

Persistent memory for pi — learns corrections, preferences, and patterns from sessions and injects them into future conversations.

Readme

pi-memory

Persistent memory for pi. Learns corrections, preferences, and project patterns from sessions and injects them into future conversations.

Features

  • Automatic learning — Extracts preferences, project patterns, and corrections from conversations at session end via LLM consolidation
  • Context injection — Automatically adds relevant memory into every new session's system prompt
  • Corrections stick — Mistakes you correct once become permanent lessons (e.g. "use sed for daily notes, not echo >>")
  • Complements session-search — session-search finds what you did, pi-memory remembers what you learned

Install

pi install pi-memory

Or add to ~/.pi/agent/settings.json:

{
  "packages": ["npm:pi-memory"]
}

Memory Types

| Type | Key prefix | Example | |------|-----------|---------| | Preferences | pref.* | pref.commit_style → "conventional commits" | | Project patterns | project.* | project.rosie.di → "Dagger dependency injection" | | Tool preferences | tool.* | tool.sed → "use for daily note insertion" | | User identity | user.* | user.timezone → "US/Pacific" | | Lessons | (table) | "DON'T: use echo >> for vault notes, use sed" |

Tools

| Tool | Description | |------|-------------| | memory_search | Search semantic memory by keyword | | memory_remember | Manually store a fact or lesson | | memory_forget | Delete a fact or lesson | | memory_lessons | List learned corrections | | memory_stats | Show memory statistics |

Commands

| Command | Description | |---------|-------------| | /memory-consolidate | Manually trigger memory extraction from current session |

How It Works

  1. session_start — Opens the SQLite store, shows memory stats briefly in the status bar
  2. before_agent_start — Builds a <memory> context block from stored facts and lessons, appends it to the system prompt
  3. agent_end — Collects conversation messages for later consolidation
  4. session_shutdown — Runs LLM consolidation (via pi -p --print) to extract structured knowledge, then closes the store

Consolidation

At session end, if there were ≥3 user messages, the extension sends the conversation to an LLM and asks it to extract:

  • Preferences — coding style, workflow habits, tool choices
  • Project patterns — languages, frameworks, architecture decisions
  • Corrections — things you corrected, mistakes to avoid

Only facts with confidence ≥ 0.8 are stored. Lessons are deduplicated using exact match and Jaccard similarity (≥ 0.7 threshold).

Injection

At session start, stored memory is organized into sections (preferences, project context scoped to cwd, tool preferences, lessons, user identity) and injected as a <memory> block in the system prompt. The block is capped at 8KB.

Storage

SQLite database at ~/.pi/memory/memory.db (WAL mode). Three tables:

  • semantic — key-value facts with confidence scores
  • lessons — learned corrections with dedup
  • events — audit log of all memory operations

License

MIT