核心用法
通过 {baseDir}/scripts/todo.sh 脚本操作 SQLite 数据库(默认 ./todo.db),支持任务条目与分组管理,状态流转包含 pending/in_progress/done/skipped 四档。所有变更仅通过 CLI 完成,严禁直接操作文件。
显著优点
- 极简工作流:操作后仅返回单字确认(Done/Added/Updated 等),无冗余输出干扰
- 分组隔离:支持多项目/场景的任务分组,删除分组时默认归位至 Inbox 防误删
- 状态精简:默认隐藏已完成/跳过项,保持列表聚焦
- 零文件污染:禁止生成 markdown、txt 等导出文件,状态唯一存于数据库
潜在缺点与局限性
- 交互约束严格:非查询场景禁止打印列表,新用户可能困惑于"静默成功"
- 依赖外部二进制:需预装
sqlite3,环境兼容性受限 - 无可视化界面:纯 CLI 驱动,非技术用户门槛较高
- 模糊匹配兜底:删除/修改需显式 ID,描述匹配仅作二次确认用途
适合人群
开发者、CLI 重度用户、追求工具链极简主义的个人贡献者;不适合需要甘特图、协作同步或移动端访问的场景。
常规风险
- 误删不可逆:
entry remove无回收站机制,分组删除若附加--delete-entries将永久清除 - 并发写入隐患:SQLite 文件级锁在多进程同时写入时可能触发 busy 错误
- 环境变量依赖:
TODO_DB覆盖路径若指向非预期位置,可能导致数据散落