@arhen/pi-core-todo
v1.0.7
Published
Minimalist pi todo extension: todo tool with 4-state machine and blockedBy dependencies, /todos command, persistent tree widget. Fork of @juicesharp/rpiv-todo, cut to the core.
Maintainers
Readme
@arhen/pi-core-todo
Install
Requires the pi coding agent — install it first: npm install -g @earendil-works/pi-coding-agent.
pi install npm:@arhen/pi-core-todoRegisters the
todotool — conflicts with other todo extensions (@juicesharp/rpiv-todo). Run one at a time.
Minimalist pi todo extension: todo tool with a 4-state machine and blockedBy dependencies, /todos command, persistent tree widget. Fork of @juicesharp/rpiv-todo, cut to the core — no i18n, no branch replay, no config, no lazy-loading machinery.
Widget

Above-editor tree: ● Todos (2/5) heading, ✓ strikethrough for completed, ◐ for in-progress with activeForm in parens, ○ for pending.
What's kept
todotool: create / update / list / get / delete / clear- 4-state machine:
pending → in_progress → completed,deletedtombstone (legal-transition validation) blockedBydependencies: create with initial set,addBlockedBy/removeBlockedByadditive updates, self-block and cycle rejection/todoscommand: grouped status listing- Tree widget above the editor:
● Todos (n/m)heading,├─/└─rows, status glyphs,#id+⛓deps when present, completed rows hide one turn after completion - Per-session state isolation (detached/child sessions never clobber each other)
- Sidecar persistence (
~/.pi/agent/pi-todo-state.json, debounced) — survives restarts
What's cut (vs rpiv-todo)
- i18n/locales — inline English
- Branch/fork replay — replaced by sidecar persistence (no replay of history across forked sessions)
- Config dialog, collapse shortcut, guidance validation — fixed behavior
- Lazy overlay loader + stale-module detection — direct import, register-once widget
Tool contract
Same LLM-facing schema as rpiv-todo: action (required) + per-action fields (subject, status, id, blockedBy, addBlockedBy, removeBlockedBy, activeForm, description, owner, metadata, includeDeleted). Prompt guidelines preserved verbatim (never batch completions, one task in_progress at a time, keep it in_progress on failure).
Development
bun install
npx tsc --noEmit
bun test # pure-logic: reducer, transitions, cycles, sanitizeLicense
MIT.
Notes
- Sidecar persistence assumes a single pi process per agent dir; concurrent processes overwrite each other's todo state.
