topydo
CautionProductivity & Tasks
Manage todo.txt tasks using topydo CLI. Add, list, complete, prioritize, tag.
SKILL.md
# 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:<today"
```
Filter tasks due by Friday:
```bash
topydo ls "due:<=fri"
```
Combine multiple filters:
```bash
topydo ls +ProjectX @office due:today
```
Exclude context:
```bash
topydo ls -- -@waiting
```
Sort by priority:
```bash
topydo ls -s priority
```
Sort descending by due date, then priority:
```bash
topydo ls -s desc:due,priority
```
Group by project:
```bash
topydo ls -g project
```
Limit to 5 results:
```bash
topydo ls -n 5
```
Custom output format:
```bash
topydo ls -F "%I %p %s %{due:}d"
```
Output as JSON:
```bash
topydo ls -f json
```
## Completing Tasks
Complete task by ID:
```bash
topydo do 1
```
Complete multiple tasks:
```bash
topydo do 1 2 3
```
Complete all tasks due today:
```bash
topydo do -e due:today
```
Complete with custom date:
```bash
topydo do -d yesterday 1
```
## Priority Management
Set priority A:
```bash
topydo pri 1 A
```
Set priority for multiple tasks:
```bash
topydo pri 1 2 3 B
```
Remove priority:
```bash
topydo depri 1
```
## Tagging Tasks
Set due date:
```bash
topydo tag 1 due tomorrow
```
Star a task:
```bash
topydo tag 1 star 1
```
Remove a tag:
```bash
topydo tag 1 due
```
Set custom tag with relative date:
```bash
topydo tag -r 1 review 2w
```
## Modifying Tasks
Append text to task:
```bash
topydo append 1 "additional notes"
```
Append due date:
```bash
topydo append 1 due:friday
```
Edit task in text editor:
```bash
topydo edit 1
```
Edit all tasks in project:
```bash
topydo edit -e +ProjectX
```
## Deleting Tasks
Delete by ID:
```bash
topydo del 1
```
Delete multiple:
```bash
topydo del 1 2 3
```
Delete by expression:
```bash
topydo del -e completed:today
```
## Dependencies
Add dependency (task 2 depends on task 1):
```bash
topydo dep add 2 to 1
```
Task 2 is part of task 1:
```bash
topydo dep add 2 partof 1
```
List what depends on task 1:
```bash
topydo dep ls 1 to
```
List what task 1 depends on:
```bash
topydo dep ls to 1
```
Remove dependency:
```bash
topydo dep rm 2 to 1
```
Visualize dependencies (requires graphviz):
```bash
topydo dep dot 1 | dot -Tpng -o deps.png
```
## Postponing Tasks
Postpone by 1 week:
```bash
topydo postpone 1 1w
```
Postpone by 3 days:
```bash
topydo postpone 1 3d
```
Postpone including start date:
```bash
topydo postpone -s 1 1w
```
## Other Commands
Sort the todo.txt file:
```bash
topydo sort
```
Revert last command:
```bash
topydo revert
```
Show revert history:
```bash
topydo revert ls
```
List all projects:
```bash
topydo lsprj
```
List all contexts:
```bash
topydo lscon
```
Archive completed tasks:
```bash
topydo archive
```
## Relative Dates
- `today`, `tomorrow`, `yesterday`
- Weekdays: `mon`, `tue`, `wed`, `thu`, `fri`, `sat`, `sun`
- Periods: `1d` (days), `2w` (weeks), `3m` (months), `1y` (years)
- Business days: `5b` (excludes weekends)
## Sort/Group Fields
- `priority`, `due`, `creation`, `completed`
- `importance`, `importance-avg`
- `project`, `context`, `text`, `length`
Prefix with `desc:` for descending. Example: `desc:importance,due`
## Tips
- Use a clean, human-readable format to present results to the user
- Enable stable text IDs: set `identifiers = text` in config
- Star important tasks: add `star:1` tag
- Hidden tags by default: `id`, `p`, `ical`
- Importance = priority + due date proximity + star status
More in Productivity & Tasks
clawd-docs-v2
SafeSmart ClawdBot documentation access with local search index, cached snippets, and on-demand fetch.
clickup-mcp
SafeManage ClickUp tasks, docs, time tracking, comments, chat, and search via official MCP.
dex
SafeTask tracking for async/multi-step work.
dexcom
UnboundMonitor blood glucose via Dexcom G7/G6 CGM.