taskstaka

Install

Homebrew

macOS and Linux. It builds from source, so the first install takes a few minutes.

brew install a6wright/taskstaka/taskstaka
taskstaka init                 # creates ~/todo (or $TASKSTAKA_DIR)

taskstaka add "Renew the cert" then taskstaka next; the daemon starts itself on the first command.

From source

Rust 1.89 or newer.

git clone https://github.com/a6wright/taskstaka
cd taskstaka
cargo install --path crates/taskstaka
taskstaka init

macOS menu bar and ⌥Space

The menu bar item shows the task in hand, its notes, and what you can do now. ⌥Space drops a Spotlight-style quick-add panel over whatever you are doing: type, press Enter, and the panel closes.

cargo install --path crates/tray      # taskstaka-tray (Homebrew installed it for you)
taskstaka setup macos                 # launchd agents for the daemon and the tray

taskstaka setup macos --hotkey ctrl+alt+space picks another key. --no-tray installs the daemon agent only. --uninstall stops and removes both. Logs go to ~/Library/Logs/taskstaka.log and taskstaka-tray.log.

Claude Code

taskstaka setup claude

Installs the taskstaka skill under ~/.claude/skills/, adds a managed block to ~/.claude/CLAUDE.md, and registers the MCP server. Restart Claude Code or run /mcp, then ask "what should I work on?". Run it again after an upgrade; it rewrites the same files. --project installs into the current repo instead; --dry-run shows the commands.

Always on

The first command starts the daemon in the background and later commands reuse it. To bring it back at login:

brew services start taskstaka                 # Homebrew: the daemon only
taskstaka setup macos                         # macOS: the daemon and the menu bar item
systemctl --user enable --now taskstaka       # Linux, with a user unit running `taskstaka serve`

taskstaka status, stop and restart know when launchd or brew services owns the daemon and go through it, so a restart keeps the daemon supervised.

Updating

brew upgrade taskstaka
taskstaka restart              # the old daemon keeps serving old code until you do this

From a checkout: cargo install --path crates/taskstaka (and --path crates/tray), then taskstaka restart. On macOS, run taskstaka setup macos again so the menu bar item reloads too. Each command warns while the daemon is older than the binary.