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

@pandi-coding-agent/pandi-local-memory

v0.2.7

Published

Extensión de Pi que inyecta una carpeta local `.pi/memory/` del proyecto (índice `MEMORY.md` capado más archivos de topic bajo demanda) en el system prompt.

Readme

@pandi-coding-agent/pandi-local-memory

Dale a Pi una carpeta de memoria local del proyecto (.pi/memory/) que sobreviva entre sesiones. Sin ella, cada sesión nueva arranca desde cero y vuelve a descubrir tus convenciones y decisiones previas; con ella, un índice MEMORY.md capado se inyecta en el system prompt en cada turno, y Pi puede persistir notas durables por su cuenta con la tool remember. Usala cuando quieras que preferencias, convenciones y decisiones estables queden guardadas sin editar archivos a mano.

Ejemplo

Pi llama a remember por su cuenta cuando vale la pena guardar algo:

{ "note": "Este repo usa pnpm, no npm." }

Eso agrega una viñeta fechada dentro de un bloque gestionado de .pi/memory/MEMORY.md:

<!-- pi:remember:begin -->

## Memoria del agente (gestionada automáticamente por la tool remember)

- 2026-07-04: Este repo usa pnpm, no npm.
<!-- pi:remember:end -->

En la próxima sesión, ese archivo se inyecta automáticamente en el system prompt — sin pasos extra.

Qué incluye

  • .pi/memory/MEMORY.md — el índice, inyectado automáticamente en cada turno (capado a las primeras 200 líneas o 25 KB, lo que llegue primero).
  • .pi/memory/<topic>.md — archivos de topic, nunca inyectados; el bloque inyectado lista sus rutas para que Pi los lea bajo demanda.
  • remember model tool — le permite a Pi guardar preferencias estables, convenciones del proyecto y decisiones clave para sesiones futuras.
  • Compatibilidad hacia atrás — cae al legado .pi/MEMORY.md cuando el índice de la carpeta no existe.

Instalación

Desde npm:

pi install npm:@pandi-coding-agent/pandi-local-memory

Desde este repositorio:

pi install ./extensions/pandi-local-memory          # global (tu usuario)
pi install -l ./extensions/pandi-local-memory       # local al proyecto
pi --no-extensions -e ./extensions/pandi-local-memory   # prueba puntual, sin cargar nada más

Uso

| Superficie | Qué hace | | ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------- | | remember (sin topic) | Tool del modelo: agrega una nota durable al índice inyectado .pi/memory/MEMORY.md. | | remember con topic | Tool del modelo: agrega la nota a .pi/memory/<topic>.md (el topic se convierte en slug, así que el path traversal es imposible). | | Inyección por turno | Inyecta el índice (o el legado .pi/MEMORY.md) como un bloque etiquetado en el system prompt y lista las rutas de los archivos de topic. |

Cómo funciona

  • remember agrega solo dentro de un bloque gestionado (<!-- pi:remember:begin --><!-- pi:remember:end -->), así que las notas curadas por humanos nunca se tocan.
  • Volver a guardar la misma nota es un no-op, y los errores de lectura/escritura fallan en forma segura: nada se pisa si el destino no pudo leerse.
  • La primera escritura del índice se inicializa desde cualquier .pi/MEMORY.md legado sin borrarlo; la nota vuelve al contexto en la próxima sesión gracias a la inyección de arriba.

Notas de limitaciones y seguridad

  • Solo proyectos confiables. Cuando se carga (por ejemplo, de forma global), la extensión auto-inyecta .pi/memory/MEMORY.md (o el legado .pi/MEMORY.md) del proyecto que abras — sin prompt, allowlist ni chequeo de procedencia. Un repositorio que no controlás podría traer un índice committeado para influir en el asistente.
  • Los archivos de topic tienen menor riesgo: se listan, pero nunca se inyectan automáticamente.
  • Los tags literales </local_memory> en el índice se escapan, y el índice tiene un límite de longitud, así que el cuerpo inyectado no puede salir estructuralmente de su bloque. Esto no cubre todo el tag, sin embargo: el atributo path="${shownPath}" del tag de apertura <local_memory path="..."> se construye desde ctx.cwd (vía indexPathOf/legacyPathOf) y no se escapa (extensions/pandi-local-memory/index.ts:157), así que un path de proyecto malicioso podría romper estructuralmente el valor del atributo.
  • Lado de escritura (anti-inyección). remember escribe en un canal que se reinyecta en futuros system prompts como contexto confiable — un límite de autoridad. El asistente debería persistir solo hechos que haya verificado por su cuenta, con sus propias palabras, y nunca copiar a la memoria contenido no confiable recuperado de tools/web o pegado por el usuario (ni instrucciones embebidas en ese contenido). Los delimitadores no son un límite de seguridad semántico; la defensa real es no ingerir contenido no confiable desde el inicio.
  • Usalo solo para notas locales del proyecto que sean confiables.

Relacionados

Para obtener el paquete completo de extensiones y skills, instalá la raíz del repositorio.