topydo技能使用说明
topydo - Todo.txt 任务管理器
topydo 是一款强大的命令行工具,用于管理 todo.txt 格式的任务。它支持依赖关系、截止日期、开始日期、重复任务、优先级、项目和上下文。
任务格式参考
(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)
安装
Homebrew (macOS,推荐方式)
brew install topydo
pip (所有平台)
pip3 install topydo
包含可选功能:

pip3 install 'topydo[columns,prompt,ical]'
apt (Ubuntu/Debian)
sudo apt install python3-pip && pip3 install topydo
配置
配置文件位置(按优先级顺序):
topydo.conf或.topydo(当前目录)~/.topydo或~/.config/topydo/config/etc/topydo.conf
示例~/.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
添加任务
基本任务:
topydo add "Buy groceries"
按优先级(A为最高):
topydo add "(A) Urgent task"
按项目和情境:
topydo add "Write report +ProjectX @office"
按截止日期(绝对日期):
topydo add "Submit proposal due:2025-01-15"
按截止日期(相对日期):
topydo add "Call mom due:tomorrow"
按截止日期(工作日):
topydo add "Weekly review due:fri"
按开始/阈值日期:
topydo add "Future task t:2025-02-01"
按循环周期(每周):
topydo add "Water plants due:sat rec:1w"
按严格循环周期(始终在每月1日):
topydo add "Pay rent due:2025-02-01 rec:+1m"
按依赖关系(必须在任务1之前完成):
topydo add "Write tests before:1"
作为任务1的子任务:
topydo add "Review code partof:1"
列出任务
列出所有相关任务:
topydo ls
包含隐藏/被阻止的任务:
topydo ls -x
按项目筛选:
topydo ls +ProjectX
按情境筛选:
topydo ls @office
按优先级筛选:
topydo ls "(A)"
按优先级范围筛选:
topydo ls "(>C)"
筛选今日截止的任务:
topydo ls due:today
筛选逾期任务:
topydo ls "due:<today"
筛选周五前截止的任务:
topydo ls "due:<=fri"
组合多个筛选条件:
topydo ls +ProjectX @office due:today
排除情境:
topydo ls -- -@waiting
按优先级排序:
topydo ls -s priority
按截止日期降序排序,然后按优先级排序:
topydo ls -s desc:due,priority
按项目分组:
topydo ls -g project
限制为5个结果:
topydo ls -n 5
自定义输出格式:
topydo ls -F "%I %p %s %{due:}d"
输出为JSON格式:
topydo ls -f json
完成任务
按ID完成任务:
topydo do 1
完成多个任务:
topydo do 1 2 3
完成今天到期的所有任务:
topydo do -e due:today
使用自定义日期完成任务:
topydo do -d yesterday 1
优先级管理
设置优先级A:
topydo pri 1 A
为多个任务设置优先级:
topydo pri 1 2 3 B
移除优先级:
topydo depri 1
任务标记
设置截止日期:
topydo tag 1 due tomorrow
标记任务为重要:
topydo tag 1 star 1
移除标签:
topydo tag 1 due
设置带相对日期的自定义标签:
topydo tag -r 1 review 2w
修改任务
向任务追加文本:
topydo append 1 "additional notes"
追加截止日期:
topydo append 1 due:friday
在文本编辑器中编辑任务:
topydo edit 1
编辑项目中的所有任务:
topydo edit -e +ProjectX
删除任务
按ID删除:
topydo del 1
批量删除:
topydo del 1 2 3
按表达式删除:
topydo del -e completed:today
依赖关系
添加依赖(任务2依赖于任务1):
topydo dep add 2 to 1
任务2是任务1的一部分:
topydo dep add 2 partof 1
列出依赖于任务1的内容:
topydo dep ls 1 to
列出任务1依赖的内容:
topydo dep ls to 1
移除依赖:
topydo dep rm 2 to 1
可视化依赖关系(需要graphviz):
topydo dep dot 1 | dot -Tpng -o deps.png
推迟任务
推迟一周:
topydo postpone 1 1w
推迟三天:
topydo postpone 1 3d
推迟包括开始日期:
topydo postpone -s 1 1w
其他命令
排序todo.txt文件:
topydo sort
撤销上一条命令:
topydo revert
显示撤销历史:
topydo revert ls
列出所有项目:
topydo lsprj
列出所有上下文:
topydo lscon
归档已完成任务:
topydo archive
相对日期
今天,明天,昨天- 工作日:
周一,周二,周三,周四,周五,周六,周日 - 时间段:
1天(日),2周(周),3个月(月),1年(年) - 工作日:
5b(不包括周末)
排序/分组字段
优先级,截止日期,创建日期,完成日期重要性,平均重要性项目,上下文,文本,长度
前缀用desc:表示降序。示例:desc:重要性,截止日期
提示
- 使用清晰、易于理解的格式向用户展示结果
- 启用稳定的文本ID:设置
标识符 = 文本在配置中 - 标记重要任务:添加
星标:1标签 - 默认隐藏的标签:
id,p,ical - 重要性 = 优先级 + 截止日期临近度 + 星标状态


微信扫一扫,打赏作者吧~