TUI 概览
┌─────────────────────────────────────────────────────┐│ [Today] [Week] [Month] [Inbox] mutsumi ~ │ ← 头部 (1 行)├─────────────────────────────────────────────────────┤│ ││ v HIGH ───────────────────────────────────────── │ ← 优先级分组│ [ ] 重构 Auth 模块 dev,backend *** │ ← 任务行│ [x] 修复缓存穿透 Bug bugfix *** ││ ││ v NORMAL ─────────────────────────────────────── ││ [ ] 写周报 life ** ││ [ ] Review PR #42 dev ** ││ └─ [ ] 检查类型安全 (1/2) │ ← 嵌套子任务│ └─ [x] 跑通测试 ││ ││ v LOW ────────────────────────────────────────── ││ [ ] 更新 README docs * ││ │├─────────────────────────────────────────────────────┤│ 6 tasks · 2 done · 4 pending .. quiet │ ← 底部 (1 行)└─────────────────────────────────────────────────────┘| 区域 | 内容 |
|---|---|
| 头部 | 视图标签页 (Today/Week/Month/Inbox) + 品牌标识 |
| 任务列表 | 按优先级分组的任务行,支持子任务嵌套 |
| 底部 | 任务统计 + 通知模式状态 |
| 标签 | 显示内容 |
|---|---|
| Today | scope == "day" 或自动推导为今天到期的任务 |
| Week | scope == "week" 或本周到期的任务 |
| Month | scope == "month" 或本月到期的任务 |
| Inbox | scope == "inbox" 或无 scope 无 due_date 的任务 |
Mutsumi 会自动适配终端窗口大小。
| 终端宽度 | 行为 |
|---|---|
| ≥ 80 列 | 完整布局:标题 + 标签 + 优先级星标 |
| 60-79 列 | 省略标签,只显示标题 + 优先级 |
| 40-59 列 | 极简模式:仅复选框 + 标题 |
| < 40 列 | 显示”终端太窄”警告 |
选中任务后按 Enter(或点击)展开底部详情面板:
├─────────────────────────────────────────────────────┤│ > 重构 Auth 模块 ││ ───────────────────────────────────────────────── ││ Status: pending ││ Priority: high ││ Scope: day ││ Tags: dev, backend ││ Due: 2026-03-25 ││ Created: 2026-03-21 08:00 ││ ───────────────────────────────────────────────── ││ Description: ││ 把 session-based auth 改成 JWT,需要同时改 ││ middleware 和路由层。 ││ ───────────────────────────────────────────────── ││ Subtasks: 1/2 done ││ [x] 安装 PyJWT ││ [ ] 写 middleware │├─────────────────────────────────────────────────────┤当 mutsumi.json 为空或当前标签无任务时:
┌─────────────────────────────────────────┐│ ││ Nothing here yet. ││ Press [n] to create a task ││ or let your Agent write mutsumi.json ││ │└─────────────────────────────────────────┘当 mutsumi.json 不可读或格式错误时,TUI 会显示错误横幅,但保留上次有效状态的任务列表:
┌─────────────────────────────────────────────────────┐│ ! mutsumi.json has errors · showing last valid state ││ Run `mutsumi validate` for details │├─────────────────────────────────────────────────────┤│ (上次有效的任务列表) │└─────────────────────────────────────────────────────┘按 / 进入搜索模式,实时过滤任务:
┌─────────────────────────────────────────┐│ .. Search: auth mod█ │├─────────────────────────────────────────┤│ [ ] 重构 Auth 模块 dev *** ││ [x] 修复 Auth token 过期 bugfix │└─────────────────────────────────────────┘- 边输入边过滤
- 搜索范围:标题 + 标签 + 描述
- Escape 退出搜索并恢复完整列表
watchdog (inotify/FSEvents/kqueue) │ v 文件变更事件 │ v 防抖 (100ms) ← 防止快速写入导致的抖动 │ v 重新读取 mutsumi.json │ v 校验 Schema │ ┌────┴────┐ v v 有效 无效 │ │ v v 重新渲染 显示错误 TUI 横幅- 文件变更后等待 100ms 再读取(等待写入完成)
- 100ms 内的多次变更合并为一次读取
- 防抖值可在配置中调整