pi-todo.txt
v0.1.1
Published
Pi extension for tracking multi-step work as standard todo.txt entries
Maintainers
Readme
pi-todo.txt
Pi extension for tracking multi-step work as standard todo.txt entries.
Install
pi install npm:pi-todo.txtOr from the GitLab repository:
pi install git:gitlab.com/jarkkojs/pi-todo.txtTool
The model-facing todo tool keeps entries in memory and stores snapshots in Pi
session history, so branch navigation and reloads restore the corresponding
list. It supports create, update, complete, list, and delete. After
compaction, the extension restores the current todo.txt state to agent context
as hidden, explicitly structured task data so progress is not lost or mistaken
for new instructions. The widget above the editor shows open and completed
tasks, priorities, +project tags, @context tags, and key:value metadata.
Each entry is one line with optional priority (A)-(Z) at the start, optional
creation date, +project tags, @context tags, and key:value metadata such
as due:YYYY-MM-DD. Completed tasks are written as x YYYY-MM-DD ...;
completion preserves priority as pri:A.
Command
/todo.txt opens a rounded interactive dialog. Use the arrow keys to move the
cursor and Space to select tasks (shown with a ✓ mark). Press a to add a
free-form todo.txt line, or e to edit the entry under the cursor. Both prompts
validate the line with the same rules as the tool before accepting it. Press
Enter to open an implementation confirmation, then Enter again to implement
the selected tasks (or the task under the cursor when none are selected). Press
Ctrl+D to open the equivalent deletion confirmation. Press s to save the list
to todo.txt in the session working directory, with open tasks sorted by
priority and completed tasks last.
No project file is read or written automatically. Completing a prioritized task
uses the todo.txt pri:A metadata convention to preserve its former priority.
Development
npm install
npm run allScripts:
| Script | Purpose |
| ------- | ------------------------------------- |
| build | Bundle the extension entry to dist/ |
| fmt | Format sources with oxfmt |
| lint | Lint with oxlint |
| check | Typecheck with tsc --noEmit |
| test | Build, then run vitest |
| all | Format, lint, typecheck, and test |
Release:
./scripts/release.sh <next-version>License
Apache-2.0. See LICENSE.
