taskstaka

A "what needs action next" task server, backed by markdown

Work is a tree: a story spawns subtasks, and the subtasks block the story. taskstaka keeps the tree, shows you the one task that is yours right now, and brings the story back the moment its last piece closes.

$brew install a6wright/taskstaka/taskstaka

then taskstaka init. macOS and Linux. Other ways to install.

The Next view: the task in hand on top with its notes, then each story as a stack of what you can do now

Work is a tree

Nesting means first this. A task with open subtasks is blocked and stays out of your way; you see the deepest open leaves.

The plate

The task in hand sits on top with its notes. Finish it and the next one in the same story takes its place. Put it back and a different one comes up.

Waiting on people

Each wait carries a follow-up date. Chase, record what they said. The subtask that depends on them is the one that waits, and the story shows their name and how long.

How a stack works

A story as a stack: ticking the plate in hand slides the next prerequisite into your hand, until the story itself is ready. Renew the cert ▶ in hand Ask Priya for the DNS record ▶ in hand Restart nginx ▶ in hand so that Ship the new site ↑ ready
Next shows the story as a stack. Tick the plate in hand and the next prerequisite moves into it.

A story is the base. Each subtask under it is a prerequisite, knocked out from the bottom. Tick the plate in hand and the next prerequisite moves into your hand. Close the last one and the story comes back to the top of Next, flagged resurfaced. You store one status per task; taskstaka computes which tasks are blocked, which are ready and which comes next. More in Help.

Everywhere you work

taskstaka next in a terminal, taskstaka tui as an always-on panel, the web outliner at http://127.0.0.1:7407/, the macOS menu bar item with ⌥Space quick add, and an MCP server so Claude can keep your list honest. One daemon, one folder of markdown files in ~/todo, and each surface shows the same tree. Your notes stay yours: open the folder in Obsidian, sync it with git.