@gonrocca/zero-pi-todo

zero-pi-todo — TODOs persistentes para pi, con tool, slash command y overlay aboveEditor.

Packages

Package details

extension

Install @gonrocca/zero-pi-todo from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:@gonrocca/zero-pi-todo
Package
@gonrocca/zero-pi-todo
Version
0.1.0
Published
May 23, 2026
Downloads
not available
Author
gonrocca
License
MIT
Types
extension
Size
26.3 KB
Dependencies
0 dependencies · 0 peers
Pi manifest JSON
{
  "extensions": [
    "./extensions/zero-pi-todo.ts"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

zero-pi-todo

TODOs persistentes para pi: crealos con el tool todo, miralos con /todos y tenelos a mano en un overlay arriba del editor.

Instalación

pi install @gonrocca/zero-pi-todo

Uso del tool todo

El tool todo acepta estas acciones:

  • create: crea un TODO pendiente. Requiere title y puede recibir blockedBy.
  • update: cambia title, status o blockedBy de un TODO existente.
  • list: lista TODOs agrupados; con includeDeleted: true incluye tombstones.
  • get: muestra un TODO por id.
  • delete: marca un TODO como deleted sin borrar historia.
  • clear: marca como deleted todos los TODOs activos, o sólo los de filterStatus.

Ejemplo:

{ "action": "create", "title": "Revisar el PR", "blockedBy": [] }

Después podés moverlo:

{ "action": "update", "id": "t-001", "status": "in_progress" }

Slash command /todos

/todos muestra una notificación con grupos en Rioplatense: En curso, Pendientes y Completadas.

/todos

Si querés ver también los eliminados:

/todos all

Los eliminados salen con prefijo 🗑.

Overlay aboveEditor

El overlay se actualiza cuando cambia el store y se oculta si no hay TODOs activos.

Screenshot placeholder: el widget muestra Tus TODOs (N) arriba del editor con los primeros ítems y … +N más cuando hay muchos.

Cómo persiste

Cada mutación exitosa llama a appendEntry("zero-pi-todo", op). En session_start, la extensión lee la rama actual con getBranch() y, si no existe, usa getEntries(). Después filtra entries custom de zero-pi-todo y hace replay de las operaciones en orden. Eso lo vuelve branch-aware y tolerante a compactaciones o recargas.

Sin dependencias

El paquete no declara dependencies: los runtime files son TypeScript directo para pi, y la suite corre con node --test --experimental-strip-types.