pi-native-todo
v0.2.0
Published
Native task planning and state tracking for Pi with branch replay and a live TUI widget
Maintainers
Readme
pi-native-todo
Native task planning and state tracking for Pi. Array-based, branch-replayable, and displayed in a live widget above the editor.
Philosophy
- One tool —
todoto read or replace the full task list - No IDs — no numbering, no
nextId, noblockedBy - No action verbs — no
create/update/delete. Pass the completetasksarray to set the list. Omit a task to remove it. - No background processes — no polling, no watchers, no timers
- No files — state lives in
toolResult.details, survives via session branch replay - Live widget — shows the current todo list above the editor with a progress bar
Install
pi install npm:pi-native-todoThen restart pi or run /reload.
Usage
Read current todo list:
todo({})Replace the full todo list:
todo({
"tasks": [
{ "content": "Do something", "status": "in_progress" },
{ "content": "Do something else", "status": "pending" }
]
})Clear all tasks:
todo({ "tasks": [] })Statuses
pending— not startedin_progress— actively workingcompleted— finished
Prompt guidelines
The tool injects guidelines that ask the agent to:
- Use todos only for non-trivial, multi-phase, dependent, or ambiguous work.
- Keep steps short, concrete, ordered, and easy to verify.
- Maintain exactly one
in_progresstask at a time. - Move tasks through
pending→in_progress→completedwithout skipping states. - Update the plan immediately when the task structure changes.
- Finish with every task completed or explicitly removed.
Development
npm install
npm run checkChangelog
0.2.0
- Optimized the widget UI: progress bar with percentage, overflow indicator, and long-line truncation
- Refined task rendering (strikethrough for completed, accent for in_progress)
- Compact tool call and result display
0.1.1
- Bug fixes and stability improvements
0.1.0
- Initial release
License
MIT
