用 GitHub Issues 当 TODO 追踪器
执行力低所以一直没法坚持用市面上复杂且割裂感强的 TODO 软件。某天突发奇想,试着把 GitHub Issues 当作自己的 TODO 追踪器后,发现它竟然还不错。
我是那种执行力巨低,但是不停给自己安排新任务的人。
这种特性让我一直有维护 TODO List 的需求 —— 但很奇怪,从这个想法出现以来,我从来就没有想过使用现有的 TODO List 解决方案,光是想象打开它们的界面就觉得累。它们太复杂了,而且和我平时的工作流完全是两个世界。
我最早的方案:一个 Telegram 频道
不想用现成的,那就哪个舒服用哪个吧。
最初的解决方案是开了一个只有自己的 Telegram 频道,想到什么任务就发一条消息。听起来很合理:反正 Telegram 生活中常用,随手就能记,跨平台同步也完全没压力。
但用了一段时间后,它的缺点就很快暴露出来了。
- 太乱。 记的 TODO 多了,旧的很快就石沉大海了。听起来像是给自己创建一个 “建 TODO -> 忘掉 -> 建 TODO -> ...” 的恶性循环工作流。
- 没法跟进进度。 一件事有了新的进展,除了回复消息来让整个消息流更混乱外,没有任何更好的方式去更新它。
- 没有优先级系统。 优先度处理纯靠大脑想到什么做什么。
本质上就是:消息流完全不适合管 TODO。
某天突发奇想
没有任何特别的契机。一天写项目开 Issue 的时候突然想到:用 GitHub Issues 管 TODO,怎么样?
乍一看很像什么 nerd final boss 之类的东西,但仔细想了一下,好像还挺合理的。Issues 天生就是一个用来追踪“有什么事情要做”的工具,该有的标题、正文、标签、开关状态都有。而且我本来就一直用 GitHub,不会给日常工作流引入任何新平台。
于是就去试了。
我现在的实现方法
新建了一个专门的空仓库,就叫 todo。
每一条 TODO 就是一个 Issue。标题尽量写得“信息密集”,让我就算隔了一大段时间也能理解当时在想什么。如果需要更多上下文,就用正文补充,Closed as completed/not planned 也符合我平时做事的态度。
标签系统设计成了很适合自己的二维标签:priority 优先度和 effort 耗力程度。
命名上稍微 neta 了一下人类学的 effort level 命名:low、medium、high、xhigh 和 max。[^1] 这一整套 workflow 下来,一眼就能知道这个任务的全貌啦。
另外有一个小巧思:GitHub 的标签按照字母顺序排序,且无法覆盖。所以把标签从 effort:low 和 effort:medium 换成 effort:00-low 和 effort:01-medium 这样会更舒服。
一个预览

为什么我喜欢它
用下来发现,这个方案对我来说几乎完美无缺。
- 完美的跨平台。 市面上的 TODO Tracker 要么要求注册一亿个可疑平台的账号来进行云同步,要么过于麻烦或者根本没有。GitHub 无疑在这方面是优秀的。[^2]
- 不破坏我的现有工作流。 这一点对我来说很重要。GitHub 本来就是我日常工作流的一个重要部分,没有任何“在所有设备上都另外下一个 App”的负担。
- 足够结构化。 有富文本、有标签系统、能用评论跟进进度。刚刚好卡在“够但不特别多”的 sweet point。
- 有 API。 这个算一个加分点。有 API 意味着可以把 TODO 和很多东西集成,虽然我目前还没有这么做,但是有绝对比没有好。[^3]
- 看起来很 geek。 听起来不像什么正经理由,但是,呃,对。
适合谁
如果你和我一样:天天泡 GitHub 或喜欢它的设计美学、觉得现有的 TODO 追踪器太重或者太割裂、不需要和别人协作管理任务并喜欢自己设计工作流,那这个方案可能值得一试。
但是如果你需要一些听起来很针对 TODO Tracker 特化的功能(例如日历集成),那 GitHub Issues 大概不是你要找的东西。
碎碎念
“记 TODO 该用什么”这个问题困扰了我两年多了。从来没想过最后是这个半夜三点钟冒出的想法,会用得这么顺。看来有时,最好的工具还得是“刚好嵌入工作流”的那一个啊。
转载自 https://blog.24a.fun/post/todo-tracker-with-github-issues ,CC-BY-SA 4.0。
[^1]: 人类学即 Anthropic, PBC 的直译。我知道这个名字不该翻译但是听起来很好笑。命名参考: https://platform.claude.com/docs/en/build-with-claude/effort
[^2]: 基于云的 App 怎么可能上不了云
[^3]: 无聊的话可以让 Coding Agent 用 GH CLI 规划今天做什么