| name | td-tasks |
| description | Manage project tasks using the `td` CLI tool. Use when a `.td/` directory exists in the project (or needs to be created), when the user mentions tasks, todos, focus, or work items, or when starting a session and needing to understand what to work on. Also use when the user says "td" or references task states (focus, active, later, done). |
td — Task State Manager
td is a local CLI tool for tracking task state and focus. Tasks are YAML files in .td/tasks/. States represent intent: focus (working now), active (taken on), later (parked), done (finished).
Starting a Session
Check current project state before doing anything:
td ls --json
td status
td ls --state focus
Commands
Create and manage tasks
td init
td add "Build login form"
td add "Fix bug" --state focus
td add "Login UI" --parent auth
td add "Thing" --id custom-id
Change state
td focus <id>
td active <id>
td later <id>
td done <id>
View tasks
td ls
td ls --all
td ls --state focus
td ls --json
td tree
td tree <id>
td show <id>
td status
Modify and remove
td edit <id> --title "New title"
td edit <id> --notes "Updated info"
td edit <id> --parent other-task
td edit <id> --parent ""
td mv <id> <parent-id>
td rm <id> --force
Conventions
- Mark tasks
done when finishing work, not just when asked to.
- When starting work on something,
td focus <id> it.
- After completing a task, run
td status to stay oriented.
- Use
td ls --json when you need to reason about task data programmatically.
- IDs are slugs derived from titles. They are immutable after creation.
- Tasks can be nested via
--parent for hierarchical structure.