OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  topydo:基于 todo.txt 标准的 topydo 任务管理工具

topydo:基于 todo.txt 标准的 topydo 任务管理工具

 
  pipeline ·  2026-02-23 06:58:34 · 3 次点击  · 0 条评论  

名称: topydo
描述: 使用 topydo 命令行工具管理 todo.txt 任务。支持添加、列出、完成、设置优先级、打标签、组织任务,并处理依赖关系、截止日期、重复任务和项目。适用于任何任务管理、待办清单,或当用户提及任务、待办事项或 todo.txt 时。需要 Python 3 和 pip。支持 macOS、Linux 和 Windows。
许可证: MIT
元数据:
author: github.com/bastos
version: "2.0"


topydo - Todo.txt 任务管理器

topydo 是一个功能强大的命令行工具,用于管理符合 todo.txt 格式的任务。它支持依赖关系、截止日期、开始日期、重复任务、优先级、项目和上下文。

任务格式参考

(A) 2025-01-11 任务文本 +项目 @上下文 due:2025-01-15 t:2025-01-10 rec:1w star:1
│   │          │         │        │        │             │            │      │
│   │          │         │        │        │             │            │      └─ 星标标记
│   │          │         │        │        │             │            └─ 重复周期
│   │          │         │        │        │             └─ 开始/阈值日期
│   │          │         │        │        └─ 截止日期
│   │          │         │        └─ 上下文
│   │          │         └─ 项目
│   │          └─ 任务描述
│   └─ 创建日期
└─ 优先级 (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 "购买日用品"

带优先级(A 为最高):

topydo add "(A) 紧急任务"

带项目和上下文:

topydo add "撰写报告 +项目X @办公室"

带绝对截止日期:

topydo add "提交提案 due:2025-01-15"

带相对截止日期:

topydo add "给妈妈打电话 due:tomorrow"

带星期几截止日期:

topydo add "每周回顾 due:fri"

带开始/阈值日期:

topydo add "未来任务 t:2025-02-01"

带重复周期(每周):

topydo add "给植物浇水 due:sat rec:1w"

带严格重复周期(始终在每月 1 号):

topydo add "支付房租 due:2025-02-01 rec:+1m"

带依赖关系(必须在任务 1 之前完成):

topydo add "编写测试 before:1"

作为任务 1 的子任务:

topydo add "审查代码 partof:1"

列出任务

列出所有相关任务:

topydo ls

包含隐藏/被阻塞的任务:

topydo ls -x

按项目筛选:

topydo ls +项目X

按上下文筛选:

topydo ls @办公室

按优先级筛选:

topydo ls "(A)"

按优先级范围筛选:

topydo ls "(>C)"

筛选今天到期的任务:

topydo ls due:today

筛选已过期的任务:

topydo ls "due:<today"

筛选周五前到期的任务:

topydo ls "due:<=fri"

组合多个筛选条件:

topydo ls +项目X @办公室 due:today

排除特定上下文:

topydo ls -- -@等待中

按优先级排序:

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 "附加说明"

追加截止日期:

topydo append 1 due:friday

在文本编辑器中编辑任务:

topydo edit 1

编辑项目中的所有任务:

topydo edit -e +项目X

删除任务

按 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

相对日期

  • today(今天), tomorrow(明天), yesterday(昨天)
  • 星期:mon, tue, wed, thu, fri, sat, sun
  • 时间段:1d(天), 2w(周), 3m(月), 1y(年)
  • 工作日:5b(排除周末)

排序/分组字段

  • priority(优先级), due(截止日期), creation(创建日期), completed(完成日期)
  • importance(重要性), importance-avg(平均重要性)
  • project(项目), context(上下文), text(文本), length(长度)

使用 desc: 前缀表示降序。例如:desc:importance,due

使用技巧

  • 使用清晰、易于阅读的格式向用户呈现结果
  • 启用稳定的文本 ID:在配置中设置 identifiers = text
  • 为重要任务添加星标:使用 star:1 标签
  • 默认隐藏的标签:id, p, ical
  • 重要性 = 优先级 + 截止日期临近度 + 星标状态
3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor