tilldone-bd
Work-till-it's-done task discipline for pi, backed by the beads (bd) issue tracker: define a task before using tools, and get nudged to finish it.
Package details
Install tilldone-bd from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:tilldone-bd- Package
tilldone-bd- Version
0.1.1- Published
- Aug 13, 2026
- Downloads
- 201/mo · 13/wk
- Author
- bandepanu
- License
- MIT
- Types
- extension
- Size
- 51.6 KB
- Dependencies
- 0 dependencies · 4 peers
Pi manifest JSON
{
"extensions": [
"./extensions"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
tilldone-bd
A work-till-it's-done task-discipline extension for pi, backed by the beads issue tracker (bd).
The agent must define an in-progress task (tilldone toggle) before it can use blocking tools, and gets nudged on completion to finish or close whatever remains. Tasks persist across sessions in the project's beads store, so the list survives a restart — no more losing track mid-task.
Requirements
- pi coding agent
- The beads CLI (
bd) on$PATH— this is the@beads/bdnpm package, installed globally:
Onlynpm install -g @beads/bdbdfrom@beads/bdis used (this extension shells out to it). There are several other beads-named packages on npm (beads-ui,@herbcaudill/beads-ui,pm-beads, thebeadspackage, and AI-tool integrations likeopencode-beads) — none of those provide thebdCLI and none are required. If in doubt, check:bd --versionshould print a version number.
Install
As a pi package (once published):
pi install npm:tilldone-bd
Or drop it into your global extensions folder:
cp extensions/tilldone-bd.ts ~/.pi/agent/extensions/
Then restart pi (or run /reload).
Usage
| Action | Command |
|---|---|
| Start a themed list | tilldone new-list --text "Title" --description "..." |
| Add a task | tilldone add |
| Mark a task in progress | tilldone toggle <id> |
| Finish a task | tilldone toggle <id> (again) |
| Clear the list | tilldone clear |
Task lifecycle: idle → inprogress → done. While no task is in progress, write/execute tools are gated until one is started.
A /tilldone interactive overlay, a footer task list, and a status-line summary are provided as TUI surfaces.
How storage works
One beads label per list (f_slug(listTitle), default tilldone); the active-list pointer lives in <project>/.beads/tilldone.json. Statuses map to beads states: idle ↔ open, inprogress ↔ in_progress, done ↔ closed (blocked/deferred read as idle).
License
MIT