Topydo OpenClaw Skill - ClawHub
Do you want your AI agent to automate Topydo workflows? This free skill from ClawHub helps with productivity & tasks tasks without building custom tools from scratch.
What this skill does
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. Requires Python 3 and pip. Works on macOS, Linux, and Windows.
Install
npx clawhub@latest install topydoFull SKILL.md
Open original| name | description | license |
|---|---|---|
| topydo | 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. Requires Python 3 and pip. Works on macOS, Linux, and Windows. | MIT |
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)
brew install topydo
pip (all platforms)
pip3 install topydo
With optional features:
pip3 install 'topydo[columns,prompt,ical]'
apt (Ubuntu/Debian)
sudo apt install python3-pip && pip3 install topydo
Configuration
Config file locations (in order of precedence):
topydo.confor.topydo(current directory)~/.topydoor~/.config/topydo/config/etc/topydo.conf
Example ~/.topydo:
[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:
topydo add "Buy groceries"
With priority (A is highest):
topydo add "(A) Urgent task"
With project and context:
topydo add "Write report +ProjectX @office"
With due date (absolute):
topydo add "Submit proposal due:2025-01-15"
With due date (relative):
topydo add "Call mom due:tomorrow"
With due date (weekday):
topydo add "Weekly review due:fri"
With start/threshold date:
topydo add "Future task t:2025-02-01"
With recurrence (weekly):
topydo add "Water plants due:sat rec:1w"
With strict recurrence (always on 1st of month):
topydo add "Pay rent due:2025-02-01 rec:+1m"
With dependency (must complete before task 1):
topydo add "Write tests before:1"
As subtask of task 1:
topydo add "Review code partof:1"
Listing Tasks
List all relevant tasks:
topydo ls
Include hidden/blocked tasks:
topydo ls -x
Filter by project:
topydo ls +ProjectX
Filter by context:
topydo ls @office
Filter by priority:
topydo ls "(A)"
Filter by priority range:
topydo ls "(>C)"
Filter tasks due today:
topydo ls due:today
Filter overdue tasks:
topydo ls "due:<today"
Filter tasks due by Friday:
topydo ls "due:<=fri"
Combine multiple filters:
topydo ls +ProjectX @office due:today
Exclude context:
topydo ls -- -@waiting
Sort by priority:
topydo ls -s priority
Sort descending by due date, then priority:
topydo ls -s desc:due,priority
Group by project:
topydo ls -g project
Limit to 5 results:
topydo ls -n 5
Custom output format:
topydo ls -F "%I %p %s %{due:}d"
Output as JSON:
topydo ls -f json
Completing Tasks
Complete task by ID:
topydo do 1
Complete multiple tasks:
topydo do 1 2 3
Complete all tasks due today:
topydo do -e due:today
Complete with custom date:
topydo do -d yesterday 1
Priority Management
Set priority A:
topydo pri 1 A
Set priority for multiple tasks:
topydo pri 1 2 3 B
Remove priority:
topydo depri 1
Tagging Tasks
Set due date:
topydo tag 1 due tomorrow
Star a task:
topydo tag 1 star 1
Remove a tag:
topydo tag 1 due
Set custom tag with relative date:
topydo tag -r 1 review 2w
Modifying Tasks
Append text to task:
topydo append 1 "additional notes"
Append due date:
topydo append 1 due:friday
Edit task in text editor:
topydo edit 1
Edit all tasks in project:
topydo edit -e +ProjectX
Deleting Tasks
Delete by ID:
topydo del 1
Delete multiple:
topydo del 1 2 3
Delete by expression:
topydo del -e completed:today
Dependencies
Add dependency (task 2 depends on task 1):
topydo dep add 2 to 1
Task 2 is part of task 1:
topydo dep add 2 partof 1
List what depends on task 1:
topydo dep ls 1 to
List what task 1 depends on:
topydo dep ls to 1
Remove dependency:
topydo dep rm 2 to 1
Visualize dependencies (requires graphviz):
topydo dep dot 1 | dot -Tpng -o deps.png
Postponing Tasks
Postpone by 1 week:
topydo postpone 1 1w
Postpone by 3 days:
topydo postpone 1 3d
Postpone including start date:
topydo postpone -s 1 1w
Other Commands
Sort the todo.txt file:
topydo sort
Revert last command:
topydo revert
Show revert history:
topydo revert ls
List all projects:
topydo lsprj
List all contexts:
topydo lscon
Archive completed tasks:
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,completedimportance,importance-avgproject,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 = textin config - Star important tasks: add
star:1tag - Hidden tags by default:
id,p,ical - Importance = priority + due date proximity + star status