Skip to content

dreamlonglll/mini-todo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

254 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mini Todo

一款简洁高效的跨平台桌面待办事项管理应用,基于 Tauri 2 + Vue 3 + TypeScript 开发,支持 Windows / macOS。

列表模式 四象限模式 添加/编辑模式

功能特性

待办管理

  • 以列表模式/四象限模式展示待办项(支持子任务)
  • 子任务支持标题 + 内容分离,内容使用 Markdown 编辑器(Milkdown)
  • 子任务支持粘贴/拖拽上传图片,图片点击可预览
  • 子任务列表双击可快捷内联编辑标题
  • 支持日历展示,以及自定义颜色
  • 列表/四象限模式都拖拽排序
  • 系统提醒

云同步(WebDAV)

  • 支持通过 WebDAV 协议进行云端数据同步(兼容坚果云、NextCloud 等)
  • 同步数据包含待办事项、子任务及图片
  • 支持定时自动同步 + 手动一键同步
  • 同步数据采用 Gzip 压缩,减少网络传输体积
  • 冲突检测与解决:当本地和远端同时修改时,用户可选择保留版本

日历模式

  • 月视图日历
  • 支持农历与法定节假日显示
  • 支持调休上班日标记(节假日数据源)

数据来源

窗口特殊功能

  • 普通模式:浅色主题,可拖拽移动、调整大小
  • 固定模式
    • 透明背景,融入桌面
    • macOS 下通过 Tauri 私有 API 穿透桌面,暗色主题会叠加一层半透明灰度以保证文字可读性
    • 忽略 Win+D(显示桌面,存在bug,触发后需要点击任意一个窗口,才会出来)
  • 固定模式背景样式暂不支持自定义配置
  • 多屏幕位置记忆(重启后根据显示器配置,保持窗口位置)

系统功能

  • 系统托盘图标(支持双击快速添加待办项)
  • 开机自启动
  • 版本更新检查
  • 数据导入/导出
  • WebDAV 云同步配置(设置页面内集成)

补充

  • 因为我没有MacOS和Linux桌面,所以大概率上会存在效果偏差
  • 如有相关电脑也愿意进行维护的,欢迎提交PR

安装

前往 Releases 页面下载最新版本。

Windows

  • 下载 .msi.exe 安装包
  • 运行安装程序完成安装

macOS 安装提示

下载 .dmg 后双击打开,如果系统弹出 "Mini Todo" is damaged and can't be opened. You should move it to the Bin(已损坏,移到废纸篓),这并不是文件真的损坏 —— 而是 Release 产物没有 Apple Developer ID 签名,被 Gatekeeper 因 quarantine 标记拒绝。

.app 拖入 /Applications 后,在终端执行一次即可解除限制:

sudo xattr -rd com.apple.quarantine /Applications/Mini\ Todo.app

执行后重新双击即可正常打开。如果后续升级版本再次出现相同提示,重新执行一次命令即可。

开发

环境要求

  • Node.js 18+
  • Rust 1.70+
  • Windows 10/11 或 macOS

PC 端代码位于 pc/ 子目录,所有开发命令都在 pc/ 下执行。

安装依赖

cd pc
# 安装前端依赖
npm install

开发模式

cd pc
npm run tauri dev

构建生产版本

cd pc
npm run tauri build

技术栈

层级 技术选型 说明
前端框架 Vue 3 + TypeScript 组合式 API,类型安全
UI 组件库 Element Plus 企业级 UI 组件库
Markdown 编辑器 Milkdown 基于 ProseMirror 的插件化 WYSIWYG 编辑器
状态管理 Pinia Vue 官方推荐状态管理
桌面框架 Tauri 2.x 轻量级跨平台桌面框架
后端语言 Rust 高性能,内存安全
异步运行时 Tokio 异步任务调度和进程管理
数据库 SQLite 轻量级本地数据库
云同步协议 WebDAV 兼容坚果云、NextCloud 等
云端 API Rust + Axum 独立 HTTP 服务,供 AI Skill / cron 读写待办

项目结构

项目按平台拆分子目录,pc/ 为 Windows 桌面端(Tauri),cloud/ 为云端 HTTP API(Rust + Axum),未来可平行加入 mobile/web/

mini-todo/
├── pc/                          # PC 端(Tauri 2.x + Vue 3)
│   ├── src/                     # Vue 前端源码
│   │   ├── components/          # Vue 组件
│   │   ├── stores/              # Pinia 状态管理
│   │   ├── types/               # TypeScript 类型定义
│   │   ├── views/               # 页面视图(含独立 WebView 窗口)
│   │   ├── utils/               # 工具函数
│   │   └── styles/              # 样式文件
│   ├── src-tauri/               # Tauri/Rust 后端源码
│   │   ├── src/
│   │   │   ├── commands/        # Tauri 命令(前后端桥接)
│   │   │   ├── db/              # 数据库层(SQLite + 迁移)
│   │   │   └── services/        # 业务服务层(通知 / WebDAV)
│   │   └── tauri.conf.json      # Tauri 配置
│   ├── public/                  # 公共静态资源
│   ├── package.json
│   ├── vite.config.ts
│   └── tsconfig.json
├── cloud/                       # 云端 HTTP API(Rust + Axum,独立 crate)
│                                # 通过 WebDAV 与 PC 端共用同一份数据;详见 cloud/README.md
└── docs/                        # 共享文档

云端 API(可选)

如需在 PC 之外通过 AI(如 Claude Code Skill)读写自己的待办,可在 VPS 上部署 cloud/ 子项目。它通过 WebDAV 与 PC 端共用 sync-data.json.gz 通道,因此不要求 PC 在线。

部署与 REST API 详情见 cloud/README.md

Claude Code Skill

安装配套 Skill 后,Claude Code 可直接查看/创建/更新待办:

# Linux/macOS
bash cloud/skill/minitodo/install.sh
# Windows PowerShell
.\cloud\skill\minitodo\install.ps1

脚本会把 SKILL.md / minitodo.py / config.example.toml 拷贝到 ~/.claude/skills/minitodo/,并提示编辑 config.toml 填入云端 endpointapi_key

完成后即可使用:

python ~/.claude/skills/minitodo/minitodo.py today --json    # 今日待办
python ~/.claude/skills/minitodo/minitodo.py add "买菜"       # 新增
python ~/.claude/skills/minitodo/minitodo.py done C3          # 标记完成
python ~/.claude/skills/minitodo/minitodo.py sync             # 手动同步

Skill 使用规则见 cloud/skill/minitodo/SKILL.md

openclaw 临期提醒

通过 openclaw 的 cron 机制,可以让 AI agent 定时检查临期待办并推送到 Slack / Telegram / Discord 等 IM channel:

# 1. 安装 skill 到 openclaw workspace
bash cloud/skill/minitodo/install.sh --target openclaw

# 2. 编辑 config.toml 填入 endpoint + api_key
nano ~/.openclaw/workspace/skills/minitodo/config.toml

# 3. 注册 cron(每天早 8 点检查临期,推送到 default channel)
openclaw cron add \
  --name minitodo-due-soon \
  --cron "0 8 * * *" \
  --tz "Asia/Shanghai" \
  --session isolated \
  --message "<见 openclaw.md §7 的完整 prompt>" \
  --announce

cron 唤起的 agent 会自行拉取所有未完成 todo、按时间锚判断哪些临期/逾期、 组织格式后推送。推送效果示例:

mini-todo 临期提醒|2026-05-14 08:00
已逾期(1):
  - #C5 [高] 写报告 (05-12 18:00,已逾期 14 小时)
未来 24h 到期(2):
  - #C7 [中] 买菜 (05-14 10:00,2 小时后)
  - #C2 [低] 周例会 (05-14 14:00,6 小时后|每周的周三)

完整安装步骤、cron message 模板、偏好配置和故障排查见 cloud/openclaw.md

许可证

MIT License

致谢

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors