这是一个本地优先的个人任务图管理器,适合配合 Codex 做长期维护。CLI 仍是稳定入口,同时提供一个可选的本地 Web UI,用于拖拽任务图、右键改状态和新建任务。
任务类型:
short:短期可执行任务,通常应该有截止日期。long:长期目标或学习方向,不强制要求截止日期。daily:每日重复任务,必须有 recurrence 元数据。milestone:阶段性检查点,常用于长期目标或项目。
任务状态:
todo:待办。doing:进行中。blocked:被阻塞。done:已完成。archived:已归档。
关系类型:
parent/children:目标拆解关系,例如长期目标下面拆出多个短期任务。depends_on:执行依赖关系,例如任务 A 必须等任务 B 完成后才能做。
依赖图必须是无环图。
任务数据存放在:
data/tasks.yaml
导出文件存放在:
exports/graph.mmd
exports/graph.dot
exports/tasks.md
exports/graph.html
exports/scoreboard.html
发布说明存放在:
RELEASE_NOTES.md
主要源码:
taskmgr/model.py # 任务模型
taskmgr/store.py # YAML 读写和 ID 分配
taskmgr/graph.py # 校验和环检测
taskmgr/analytics.py # 收获提取、经验、等级和产出量化
taskmgr/render.py # Mermaid / DOT / Markdown / HTML 导出
taskmgr/recurrence.py # 每日任务和简单日期解析
taskmgr/cli.py # CLI 入口
平时启动任务图 UI:
./start_ui.sh然后打开 http://127.0.0.1:8765/。这个入口是默认推荐方式;在浏览器里可以拖动任务块、右键任务块修改状态或编辑任务信息、在图上新建任务。服务运行时不要关闭启动它的终端;停止服务就按 Ctrl-C。
新增长期目标:
python -m taskmgr.cli add --kind long --title "学习 Triton" --tag triton新增短期任务,并挂到父任务下面:
python -m taskmgr.cli add --kind short --title "写 matmul demo" --parent T-0001 --due 2026-05-01 --tag triton新增每日任务:
python -m taskmgr.cli add --kind daily --title "每天复盘工程实验" --time "23:00" --tag daily建立执行依赖:
python -m taskmgr.cli link --task T-0002 --depends-on T-0001调整父任务:
python -m taskmgr.cli move --task T-0002 --parent T-0001
python -m taskmgr.cli move --task T-0002 --root查看任务:
python -m taskmgr.cli list
python -m taskmgr.cli list --blocked
python -m taskmgr.cli today
python -m taskmgr.cli scoreboard启动可写入任务库的本地 UI:
./start_ui.sh默认地址是 http://127.0.0.1:8765/。在这个页面里可以拖动任务块、右键任务块修改状态或编辑标题、类型、状态、截止、优先级、父任务、子任务、依赖、标签和备注,也可以在图上新建任务。写入后会复用任务库校验并自动重建全部导出文件;误操作后可按 Ctrl-Z 撤销最近一次 UI 写入。CLI 的 add、link、done、move 等命令仍然保留。
校验和导出:
python -m taskmgr.cli validate
python -m taskmgr.cli render --format mermaid
python -m taskmgr.cli render --format dot
python -m taskmgr.cli render --format markdown
python -m taskmgr.cli render --format html
python -m taskmgr.cli render --format scoreboard也可以一次完成校验和全部导出:
python -m taskmgr.cli syncHTML 输出是自包含文件:
exports/graph.html
exports/scoreboard.html
它们内嵌 SVG/HTML/CSS/JS,不需要浏览器插件。graph.html 现在是可交互任务图 UI:任务块可以手动拖动,连线会跟随重绘,支持搜索、类型/状态筛选、缩放、右侧任务详情和浏览器本地布局保存。静态打开 exports/graph.html 时只能查看和调整本地布局;要右键改状态或新建任务,需要使用 python -m taskmgr.cli serve 启动本地服务。scoreboard.html 侧重成长计分板、等级、经验、产出和已完成任务收获。
v0.1 会从任务库自动推导两个激励视图:
- 已完成任务收获:从
done/archived任务的标题、备注和标签中提取“我完成了什么、沉淀了什么”。 - 成长计分板:按任务类型、优先级、依赖复杂度、子任务数量、标签和产出类型计算 XP、等级、待领取经验、技能标签和产出数量。
add、done、link、unlink、move、apply-inbox 成功写入后会自动重建全部导出文件,保证计分板和任务图同步。默认任务库写到仓库 exports/;使用 --db 指向其他任务库时,写到该任务库旁边的 exports/。
v0.1.0rc1 调整成长计分板表现:
- 技能标签改成单根技能树,从“星核主干”展开到输出、推理、工程和工具分支。
- 技能描述改为更短的科技/魔幻风格短句。
- 等级增加字符段位标志,例如
{== V ==} Lv.5 任务图构建者。 - Markdown 和 HTML 导出都会在注脚列出完整等级谱和对应字符标志。
从收件箱导入自然语言任务:
python -m taskmgr.cli apply-inbox TASK_INBOX.md兼容入口仍然可用:
python task_appender.py validate当你让 Codex 更新任务时,推荐这样说:
先读 AGENTS.md,然后把 TASK_INBOX.md 里的任务应用到任务图。
使用 CLI,不要直接改 data/tasks.yaml。
完成后运行 validate、render 和测试。
Codex 应该优先通过 CLI 修改任务图。只有当 CLI 缺少必要能力时,才允许补充最小功能或直接编辑数据文件。
./start_ui.sh 现在会同时启动 Web UI 和提醒检查器。提醒检查器只在该进程运行期间工作:关闭终端或按 Ctrl-C 后,Web UI 与提醒都会停止;本项目不会安装 launchd 或其他系统常驻服务。
首次使用:
- 运行
./start_ui.sh并打开页面。 - 点击“通知设置”→“初始化通知 App”。macOS 如弹出通知权限请求,请允许。
- 点击“发送测试通知”。成功只表示 macOS 接受了请求,专注模式或通知设置仍可能抑制横幅。
- 打开“启用任务通知”并保存。
- 在有截止日期的任务中添加一条或多条“提前天数 + 时间”提醒。
每日任务继续使用 recurrence.time,每天提醒一次。有截止日期的任务可配置多条提醒,例如提前一天和截止当天。默认仅补发最近 120 分钟内错过的提醒,已完成或已归档任务不会提醒。
CLI 也可修改截止提醒:
conda run -n agent python -m taskmgr.cli add --kind short --title "交作业" --due 2026-07-04 --reminder 1d@09:00 --reminder 0d@09:00
conda run -n agent python -m taskmgr.cli reminders set --task T-0001 --rule 2d@20:00 --rule 0d@09:00
conda run -n agent python -m taskmgr.cli reminders clear --task T-0001本地设置保存在任务库旁的 settings.yaml,投递去重状态保存在 reminder_state.json。二者都不属于任务图导出物。
每次发布新版本都必须更新 RELEASE_NOTES.md,写清楚该版本的 release note。