ClawSkills logoClawSkills

topydo

使用 topydo CLI 管理 todo.txt 任务。添加、列出、完成、确定优先级、标记和组织具有依赖关系、截止日期、周期和项目的任务。用于

介绍

# topydo - Todo.txt Task Manager

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, 推荐) ```bash brew install topydo ```

### pip (所有平台) ```bash pip3 install topydo ```

包含可选功能: ```bash pip3 install 'topydo[columns,prompt,ical]' ```

### apt (Ubuntu/Debian) ```bash sudo apt install python3-pip && pip3 install topydo ```

## 配置

配置文件位置(按优先级顺序): - `topydo.conf` 或 `.topydo`(当前目录) - `~/.topydo` 或 `~/.config/topydo/config` - `/etc/topydo.conf`

示例 `~/.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 ```

## 添加任务

基本任务: ```bash topydo add "Buy groceries" ```

设置优先级(A 为最高): ```bash topydo add "(A) Urgent task" ```

添加项目和上下文: ```bash topydo add "Write report +ProjectX @office" ```

添加截止日期(绝对日期): ```bash topydo add "Submit proposal due:2025-01-15" ```

添加截止日期(相对日期): ```bash topydo add "Call mom due:tomorrow" ```

添加截止日期(星期几): ```bash topydo add "Weekly review due:fri" ```

添加开始/阈值日期: ```bash topydo add "Future task t:2025-02-01" ```

添加重复周期(每周): ```bash topydo add "Water plants due:sat rec:1w" ```

添加严格重复周期(总是在每月 1 号): ```bash topydo add "Pay rent due:2025-02-01 rec:+1m" ```

添加依赖关系(必须在任务 1 之前完成): ```bash topydo add "Write tests before:1" ```

作为任务 1 的子任务: ```bash topydo add "Review code partof:1" ```

## 列出任务

列出所有相关任务: ```bash topydo ls ```

包含隐藏/被阻止的任务: ```bash topydo ls -x ```

按项目筛选: ```bash topydo ls +ProjectX ```

按上下文筛选: ```bash topydo ls @office ```

按优先级筛选: ```bash topydo ls "(A)" ```

按优先级范围筛选: ```bash topydo ls "(>C)" ```

筛选今天到期的任务: ```bash topydo ls due:today ```

筛选已过期的任务: ```bash topydo ls "due:<today" ```

筛选周五之前到期的任务: ```bash topydo ls "due:<=fri" ```

组合多个筛选条件: ```bash topydo ls +ProjectX @office due:today ```

排除上下文: ```bash topydo ls -- -@waiting ```

按优先级排序: ```bash topydo ls -s priority ```

按截止日期降序,然后按优先级排序: ```bash topydo ls -s desc:due,priority ```

按项目分组: ```bash topydo ls -g project ```

限制为 5 条结果: ```bash topydo ls -n 5 ```

自定义输出格式: ```bash topydo ls -F "%I %p %s %{due:}d" ```

输出为 JSON: ```bash topydo ls -f json ```

## 完成任务

通过 ID 完成任务: ```bash topydo do 1 ```

完成多个任务: ```bash topydo do 1 2 3 ```

完成今天到期的所有任务: ```bash topydo do -e due:today ```

使用自定义日期完成: ```bash topydo do -d yesterday 1 ```

## 优先级管理

设置优先级 A: ```bash topydo pri 1 A ```

为多个任务设置优先级: ```bash topydo pri 1 2 3 B ```

移除优先级: ```bash topydo depri 1 ```

## 任务标签

设置截止日期: ```bash topydo tag 1 due tomorrow ```

标记重要任务(加星标): ```bash topydo tag 1 star 1 ```

移除标签: ```bash topydo tag 1 due ```

设置带相对日期的自定义标签: ```bash topydo tag -r 1 review 2w ```

## 修改任务

追加文本到任务: ```bash topydo append 1 "additional notes" ```

追加截止日期: ```bash topydo append 1 due:friday ```

在文本编辑器中编辑任务: ```bash topydo edit 1 ```

编辑项目中的所有任务: ```bash topydo edit -e +ProjectX ```

## 删除任务

通过 ID 删除: ```bash topydo del 1 ```

删除多个: ```bash topydo del 1 2 3 ```

通过表达式删除: ```bash topydo del -e completed:today ```

## 依赖关系

添加依赖关系(任务 2 依赖于任务 1): ```bash topydo dep add 2 to 1 ```

任务 2 是任务 1 的一部分: ```bash topydo dep add 2 partof 1 ```

列出依赖于任务 1 的任务: ```bash topydo dep ls 1 to ```

列出任务 1 依赖的任务: ```bash topydo dep ls to 1 ```

移除依赖关系: ```bash topydo dep rm 2 to 1 ```

可视化依赖关系(需要 graphviz): ```bash topydo dep dot 1 | dot -Tpng -o deps.png ```

## 推迟任务

推迟 1 周: ```bash topydo postpone 1 1w ```

推迟 3 天: ```bash topydo postpone 1 3d ```

推迟(包括开始日期): ```bash topydo postpone -s 1 1w ```

## 其他命令

对 todo.txt 文件进行排序: ```bash topydo sort ```

撤销上一次命令: ```bash topydo revert ```

显示撤销历史: ```bash topydo revert ls ```

列出所有项目: ```bash topydo lsprj ```

列出所有上下文: ```bash topydo lscon ```

归档已完成的任务: ```bash 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` - 重要性 = 优先级 + 截止日期临近程度 + 加星标状态

更多产品