--- name: topydo description: Manage todo.txt tasks using topydo CLI. Add, list, complete, prioritize, tag, and organize tasks with dependencies, due dates, recurrence, and projects. Use for any task management, todo lists, or when the user mentions tasks, todos, or todo.txt. license: MIT compatibility: Requires Python 3 and pip. Works on macOS, Linux, and Windows. metadata: {"clawdbot":{"requires":{"bins":["topydo"]},"install":[{"id":"brew","kind":"brew","formula":"topydo","bins":["topydo"],"label":"Install topydo (brew)"},{"id":"pip","kind":"pip","package":"topydo","bins":["topydo"],"label":"Install topydo (pip)"}]}} --- # topydo - Todo.txt Task Manager topydo is a powerful CLI for managing tasks in the todo.txt format. It supports dependencies, due dates, start dates, recurrence, priorities, projects, and contexts. ## Task Format Reference ``` (A) 2025-01-11 Task text +Project @Context due:2025-01-15 t:2025-01-10 rec:1w star:1 │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Star marker │ │ │ │ │ │ │ └─ Recurrence │ │ │ │ │ │ └─ Start/threshold date │ │ │ │ │ └─ Due date │ │ │ │ └─ Context │ │ │ └─ Project │ │ └─ Task description │ └─ Creation date └─ Priority (A-Z) ``` ## Installation ### Homebrew (macOS, preferred) ```bash brew install topydo ``` ### pip (all platforms) ```bash pip3 install topydo ``` With optional features: ```bash pip3 install 'topydo[columns,prompt,ical]' ``` ### apt (Ubuntu/Debian) ```bash sudo apt install python3-pip && pip3 install topydo ``` ## Configuration Config file locations (in order of precedence): - `topydo.conf` or `.topydo` (current directory) - `~/.topydo` or `~/.config/topydo/config` - `/etc/topydo.conf` Example `~/.topydo`: ```ini [topydo] filename = ~/todo.txt archive_filename = ~/done.txt colors = 1 identifiers = text [add] auto_creation_date = 1 [sort] sort_string = desc:importance,due,desc:priority ignore_weekends = 1 ``` ## Adding Tasks Basic task: ```bash topydo add "Buy groceries" ``` With priority (A is highest): ```bash topydo add "(A) Urgent task" ``` With project and context: ```bash topydo add "Write report +ProjectX @office" ``` With due date (absolute): ```bash topydo add "Submit proposal due:2025-01-15" ``` With due date (relative): ```bash topydo add "Call mom due:tomorrow" ``` With due date (weekday): ```bash topydo add "Weekly review due:fri" ``` With start/threshold date: ```bash topydo add "Future task t:2025-02-01" ``` With recurrence (weekly): ```bash topydo add "Water plants due:sat rec:1w" ``` With strict recurrence (always on 1st of month): ```bash topydo add "Pay rent due:2025-02-01 rec:+1m" ``` With dependency (must complete before task 1): ```bash topydo add "Write tests before:1" ``` As subtask of task 1: ```bash topydo add "Review code partof:1" ``` ## Listing Tasks List all relevant tasks: ```bash topydo ls ``` Include hidden/blocked tasks: ```bash topydo ls -x ``` Filter by project: ```bash topydo ls +ProjectX ``` Filter by context: ```bash topydo ls @office ``` Filter by priority: ```bash topydo ls "(A)" ``` Filter by priority range: ```bash topydo ls "(>C)" ``` Filter tasks due today: ```bash topydo ls due:today ``` Filter overdue tasks: ```bash topydo ls "due: