@inobit/pi-todo

Minimal-intrusion task list extension for the Pi coding agent: a `todo` tool, a `/todos` command, and a live panel above the editor. State is replayed from the session branch, so it survives /reload and compaction.

Packages

Package details

extension

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

$ pi install npm:@inobit/pi-todo
Package
@inobit/pi-todo
Version
0.1.1
Published
Aug 22, 2026
Downloads
412/mo · 15/wk
Author
inobit
License
MIT
Types
extension
Size
42.9 KB
Dependencies
0 dependencies · 4 peers
Pi manifest JSON
{
  "extensions": [
    "./src/index.ts"
  ]
}

Security note

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

README

@inobit/pi-todo

English | 中文

Minimal-intrusion task list extension for Pi coding agent: todo tool + /todos command + persistent panel above the editor.

  • Low prompt intrusion: 3 promptGuidelines, decision-tree style description, only 6 core schema params — ~1.1 KB prompt overhead per turn
  • State on the session branch: each tool call writes a slim snapshot (id/subject/status/activeForm) into the tool result details; automatically restored after /reload, context compaction, and branch switches — zero disk writes
  • Session isolation: state is partitioned by session id, child/parallel sessions never pollute each other

Installation

pi install npm:@inobit/pi-todo

Restart the Pi session to take effect. For local development, symlink to ~/.pi/agent/extensions/pi-todo (Pi auto-loads the entry declared in pi.extensions); run /reload after code changes.

Usage

  • Describe a multi-step task and the agent will call the todo tool to plan and track it, with live panel updates:
    • todo create <subject> [description] — create a task
    • todo update <id> <status> [activeForm] — advance status (in_progress / completed, optional running label like "writing tests")
    • todo list [status] / todo get <id> / todo delete <id> / todo clear
  • /todos: fullscreen grouped list (Pending / In Progress / Completed), Escape to close
  • Panel collapse shortcut: ctrl+shift+t

Task states pending → in_progress → completed; completed is only set explicitly by the model. Deletes use a tombstone to prevent id reuse. No config file in v1.

Development

pnpm --filter @inobit/pi-todo check   # tsc --noEmit
pnpm --filter @inobit/pi-todo test    # vitest
pnpm --filter @inobit/pi-todo pack:check
pi -ne -e ./packages/pi-todo

License

MIT