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

@k3_2o/pi-chrollo

v0.1.3

Published

Agentic memory for Pi — verbatim session capture + grep retrieval

Readme

Chrollo — Agentic Memory for Pi

npm

A philosophy, not a database. Zero-cost memory that teaches your agent to remember.


The Thesis

"Every other memory system was designed for non-agentic retrieval. They optimize benchmark scores. But in agentic systems, the agent is always there — it can grep, read, reason, iterate, search again. This changes everything."

Chrollo trusts the agent. It doesn't compress, embed, summarize, or index at write time. It stores everything verbatim in plain markdown files and lets the agent do the work at query time.

No LLM calls. No vector embeddings. No compression pipelines. No background daemon. Just grep + a thesaurus.

The PwC paper "Is Grep All You Need?" (arXiv:2605.15184, May 2026) proved that grep is competitive with vector search in agentic contexts — because the agent is always in the loop and can iterate. Chrollo pushes that further: no vectors, no BM25, no embeddings. Just ripgrep + WordNet thesaurus + an agent that knows how to think.


How It's Different

| | agentmemory / Mem0 / others | Chrollo | |---|---|---| | Write-time cost | LLM compression on every observation — $0.46–$5/mo | $0 — just append to a file | | Storage | Binary KV store (unreadable) | Plain markdown — cat, grep, open in Obsidian | | Search | BM25 + vector + graph (RRF fusion) | ripgrep + WordNet thesaurus | | Architecture | Background daemon, 4 ports, Rust runtime | Lives inside Pi's extension system | | Dependencies | iii-engine binary + npm deps | Zero. Just Node.js + ripgrep | | What it is | An external database the agent queries | The agent learning to remember |


What You Get

  • Verbatim capture — every turn saved to .chrollo/memories/*.md automatically (project-scoped by default, falls back to ~/.chrollo/memories/)
  • Zero information loss — no compression, no summarization, no extraction
  • Auto-inject — relevant past memories silently injected as context before every response
  • read_memory tool — the agent searches across sessions using ripgrep + thesaurus
  • Recency scoring — line-level timestamps so recent context ranks higher
  • WordNet thesaurus — 606 words, 3,357 synonym pairs, 46KB. Zero runtime deps. Ships with the extension, no build step needed.
  • Grep-compatiblerg "python" .chrollo/memories/ works on any machine
  • Zero cost — no API keys, no LLM calls, no server to maintain

Quick Install

# Prerequisites
sudo apt install ripgrep          # Linux
brew install ripgrep              # macOS

# Install via npm (recommended)
pi install npm:@k3_2o/pi-chrollo

# Or via GitHub
pi install git:github.com/k3-2o/pi-chrollo

# Or clone manually
cd ~/.pi/agent/extensions
git clone https://github.com/k3-2o/pi-chrollo.git

Memories are stored globally under ~/.chrollo/memories/ by default. For project-scoped storage, create a .chrollo/memories/ directory in your project root — Chrollo will prioritise it over the global one. You can always copy a project's .chrollo/ folder back to ~/.chrollo/ if you want those memories available globally.

Version your memories. Your .chrollo/memories/ files are plain markdown — they belong in git (or whatever backup you use). Commit them, push them, clone them with your project. If you use project-scoped storage, your memories travel with the repo. If you use global storage, back up ~/.chrollo/ the same way you back up your dotfiles.



Philosophy (Not Features)

Chrollo is built on four axioms that everything else follows from:

  1. Don't decide what's important at write time. Store everything verbatim. Let the agent figure out relevance at query time.

  2. The agent is always in the loop. It can read, reason, iterate, and search again. Vector search optimizes for perfect first-shot retrieval, which solves the wrong problem.

  3. Plain text is the universal interface. Markdown files that cat, grep, rg, less, and Obsidian can all read. No binary formats, no proprietary stores.

  4. Zero-cost infrastructure. The engine is file I/O + string operations + calling rg. No APIs, no LLMs, no background servers. It costs nothing to run and nothing to maintain.

Get the full scope — the design choices, trade-offs, and philosophy that went into building Chrollo: docs/ARC.md.