Skip to content

Repository files navigation

Whorl

本地优先的任务管理工具,面向需要专注执行的方案人员。

功能

任务管理

  • 任务 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 备份。

更新日志

v1.3.0 — 子项目支持

子项目(无限层级嵌套)

  • 项目支持 parent_id 字段,可建立无限层级子项目
  • 侧栏树形渲染,父项目可折叠/展开(ChevronDown/ChevronRight)
  • 子项目按 sort_order 排序,缩进每级 pl-6,3 层封顶 pl-18
  • 归档父项目的子项目自动视为顶级(孤儿处理)
  • 新建项目表单新增「父项目」选择器
  • 后端循环引用检测(isDescendant 递归 + 深度上限 100)
  • 删除父项目时子项目自动变为顶级(事务保证原子性)
  • 新增 POST /api/projects/reorder 端点,支持批量调整项目排序
  • CREATE 时 sort_order 未指定则自动取同层级 MAX+1

v1.2.0-beta — CLI 命令行接口

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 加载使用

v1.1.2 — Bug 修复 & 体验优化

修复

  • 修复文档刷新时 stat() 缺少 await 的 bug
  • 修复 CSV 导出时字段包含逗号导致格式错乱的问题(RFC 4180 标准转义)

体验

  • 任务列表支持拖拽排序(inbox / upcoming / project 视图)
  • 优化 .gitignore 规则,覆盖更多开发环境场景

v1.1.1 — 体验优化 & 标签词云

功能改进

  • 标签词云(替换项目分布饼图,周/月/季度/年 四个时间维度)
  • 时间线新增「隐藏已完成」过滤
  • TaskForm 弹窗滚动条修复(展开高级选项不再溢出)
  • WSL 环境 Windows 路径自动转换(D:\xxx/mnt/d/xxx
  • 默认项目「收件箱」改为「公共」
  • 扫描目录支持 .vsdx / .drawio 格式
  • 过滤 Office 临时文件(~$ 开头)
  • 备份脚本 backup-db.sh
  • README 更新

v1.1.0 — 项目文档池

项目文档池

  1. 点击侧栏任意项目进入项目视图
  2. 顶部出现「任务」/「文档」两个 Tab,点击「文档」进入文档池
  3. 点击「导入文档」,输入本地目录路径,选择文件类型过滤,点击「扫描」
  4. 勾选需要导入的文件,点击「导入」
  5. 文档列表支持搜索、按状态筛选(正常/已变更/丢失)、按文件名/大小/修改时间排序
  6. 每次打开文档池时自动检测文件变更,已变更的文件显示 🔄 标记,丢失的文件显示 ⚠️ 标记

任务关联文档

  1. 创建或编辑任务时,展开「高级选项」区域
  2. 在「关联文档」面板中点击「添加参考文档」或「添加产出文档」
  3. 从当前项目的文档池中选择要关联的文档
  4. 📖 参考文档:任务所需的背景资料、设计规范等
  5. 📤 产出文档:任务完成时应交付的文件

许可

Private

About

个人任务、日程追踪(方案人员特化版)

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages