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.

Packages

Package details

extension

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/bd npm package, installed globally:
    npm install -g @beads/bd
    
    Only bd from @beads/bd is used (this extension shells out to it). There are several other beads-named packages on npm (beads-ui, @herbcaudill/beads-ui, pm-beads, the beads package, and AI-tool integrations like opencode-beads) — none of those provide the bd CLI and none are required. If in doubt, check: bd --version should 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