本地优先的任务管理工具,面向需要专注执行的方案人员。
任务管理
- 任务 CRUD,支持无限层级子任务
- 4 级优先级(低/中/高/紧急)
- 截止日期 + 日历选择
- 重复任务(每日/每周/每月,完成时自动生成下一条)
组织方式
- 项目分类(自定义颜色/图标,支持归档)
- 标签系统(创建/删除,最多 5 标签同时筛选)
- 全局搜索 + 多维筛选(状态/优先级/标签)
效率工具
- 番茄钟(25/5 分钟,关联任务)
- 数据面板(完成趋势/项目分布/优先级分布/热力日历)
- 数据导出(JSON 全量 / CSV)
项目文档池 (v1.1.0 新增)
- 按项目建立独立文档池,仅存储元数据(不存储文件内容)
- 扫描本地目录批量导入文档
- 任务关联文档,区分 📖 参考文档 / 📤 产出文档
- 文档变更自动检测(哈希对比,标记已变更/丢失)
体验
- 亮/暗双主题
- 列表 / 时间线两种视图
- 全键盘友好
| 层 | 技术 |
|---|---|
| 前端 | React 19 + TypeScript + Vite + Tailwind CSS v4 |
| 后端 | Express 5 + better-sqlite3 |
| 状态 | Zustand |
| 动画 | Framer Motion |
| 图表 | Recharts |
| 验证 | Zod v4 |
# 安装依赖
npm install
# 开发模式(前端 + 后端同时启动)
npm run dev
# 构建生产版本
npm run build
# 启动生产服务
npm start开发模式下:
生产模式下,前后端统一由 http://localhost:3001 提供服务。
复制 .env.example 为 .env,可配置以下参数:
PORT=3001 # 服务端口
DB_PATH=./data/whorl.db # 数据库路径
NODE_ENV=development # 环境npm run lint # 代码检查
npm run lint:fix # 自动修复
npm run reset-db # 重置数据库(清空所有数据)所有数据存储在本地 SQLite 数据库中(默认 data/whorl.db)。支持通过界面导出 JSON / CSV 备份。
子项目(无限层级嵌套)
- 项目支持
parent_id字段,可建立无限层级子项目 - 侧栏树形渲染,父项目可折叠/展开(ChevronDown/ChevronRight)
- 子项目按
sort_order排序,缩进每级 pl-6,3 层封顶 pl-18 - 归档父项目的子项目自动视为顶级(孤儿处理)
- 新建项目表单新增「父项目」选择器
- 后端循环引用检测(
isDescendant递归 + 深度上限 100) - 删除父项目时子项目自动变为顶级(事务保证原子性)
- 新增
POST /api/projects/reorder端点,支持批量调整项目排序 - CREATE 时
sort_order未指定则自动取同层级MAX+1
CLI(命令行接口)
- 新增
cli/模块,提供完整的命令行操作能力 - 前缀隔离:
read(只读查询)、write(写操作)、backup(数据库备份) - 覆盖全部 30+ API 端点:任务、项目、标签、番茄钟、统计、导出、文档池
- delete 操作强制
--confirm参数,拒绝未确认的删除 - 输出纯 JSON(stdout),错误到 stderr,适合 AI agent 解析
- 零依赖,纯 TypeScript + Node.js 内置 API
- 入口脚本
cli.sh,使用方式:./cli.sh read task list --status todo
适合 Agent 调用的设计
- 读写物理隔离,
read前缀命令无任何副作用 - 完整的数据安全纪律(写前先读、删前备份、逐条确认、验证结果)
- 配套 SKILL.md 文档,可直接被 AI agent 加载使用
修复
- 修复文档刷新时
stat()缺少await的 bug - 修复 CSV 导出时字段包含逗号导致格式错乱的问题(RFC 4180 标准转义)
体验
- 任务列表支持拖拽排序(inbox / upcoming / project 视图)
- 优化
.gitignore规则,覆盖更多开发环境场景
功能改进
- 标签词云(替换项目分布饼图,周/月/季度/年 四个时间维度)
- 时间线新增「隐藏已完成」过滤
- TaskForm 弹窗滚动条修复(展开高级选项不再溢出)
- WSL 环境 Windows 路径自动转换(
D:\xxx→/mnt/d/xxx) - 默认项目「收件箱」改为「公共」
- 扫描目录支持 .vsdx / .drawio 格式
- 过滤 Office 临时文件(
~$开头) - 备份脚本
backup-db.sh - README 更新
项目文档池
- 点击侧栏任意项目进入项目视图
- 顶部出现「任务」/「文档」两个 Tab,点击「文档」进入文档池
- 点击「导入文档」,输入本地目录路径,选择文件类型过滤,点击「扫描」
- 勾选需要导入的文件,点击「导入」
- 文档列表支持搜索、按状态筛选(正常/已变更/丢失)、按文件名/大小/修改时间排序
- 每次打开文档池时自动检测文件变更,已变更的文件显示 🔄 标记,丢失的文件显示
⚠️ 标记
任务关联文档
- 创建或编辑任务时,展开「高级选项」区域
- 在「关联文档」面板中点击「添加参考文档」或「添加产出文档」
- 从当前项目的文档池中选择要关联的文档
- 📖 参考文档:任务所需的背景资料、设计规范等
- 📤 产出文档:任务完成时应交付的文件
Private