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.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "topydo" with this command: npx skills add github.com/bastos/topydo

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.conf or .topydo (current directory)
  • ~/.topydo or ~/.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, 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

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

Feishu Agent

Feishu (Lark) CLI agent - Provides calendar, todo, and contact management capabilities for AI assistants

Registry SourceRecently Updated
0204
Profile unavailable
Coding

Microsoft To Do

Manage Microsoft To Do tasks via the `todo` CLI. Use when user wants to add, list, complete, remove tasks, manage subtasks (steps), notes, or organize task lists.

Registry SourceRecently Updated
11.5K
Profile unavailable
Coding

Todoist CLI

Manage Todoist tasks, projects, labels, and sections via the `todoist` CLI. Use when a user asks to add/complete/list tasks, show today's tasks, search tasks, or manage projects.

Registry SourceRecently Updated
72.6K
Profile unavailable