Tempo产品范围
Tempo是一款面向个人的本地优先任务与专注应用。它不要求用户把数据交给第三方账号体系:客户端可以完全离线使用,也可以连接用户自行部署的轻量同步服务。
产品目标
- 用一个安静、直接的界面完成任务记录、当天安排、专注计时和轻量阅读。
- 本地操作即时完成,网络和 AI 不得成为基本功能的前置条件。
- 四端使用同一份数据模型和同步协议,同时保留各平台原生体验。
- 自托管过程足够清楚,可在普通 Docker 服务器和 1Panel 环境中维护。
当前能力
| 领域 | 已实现 |
|---|---|
| 任务 | 今天、可选收集箱、项目、备注、开始/截止时间、完成、恢复、删除、日期迁移 |
| 日历 | 周视图、月视图连续展开、日期选择、节日展示 |
| 专注 | 番茄倒计时、正计时、自定义时长与每日目标、自动休息轮次、年度热力图与专注统计 |
| 同步 | 任务、番茄钟、RSS 阅读状态自动同步;前台低延迟变更通知与断线兜底 |
| RSS | 来源分类、未读、收藏、搜索、OPML、离线缓存、阅读进度、正文阅读、翻译、AI 摘要 |
| AI | 自托管代理或兼容接口直连;RSS 摘要/翻译、轻量任务规划、连接测试 |
| Apple 系统能力 | 主屏幕与锁屏小组件、Live Activity、灵动岛、Keychain、App Group |
| 发布 | iOS IPA、macOS ZIP/DMG、Android APK、Windows ZIP/EXE、Docker 镜像 |
平台定位
- iOS:SwiftUI 原生壳与 React Native / TypeScript 内容层,保留原生导航、WidgetKit 与 ActivityKit。
- macOS:纯 SwiftUI 桌面客户端,提供原生窗口和设置体验。
- Android:Flutter 客户端,覆盖任务、专注、同步和基础设置。
- Windows:Flutter 轻量桌面客户端,以置顶计时胶囊、今日任务和托盘操作为主。
- Web:
todo.darker.one是使用与自托管指南,开发资料单独归类,不提供浏览器版任务编辑。
模块规则
当前 iOS 使用收集箱、今天、工具和设置四个一级入口。番茄钟与 RSS 从工具页进入;功能模块设置支持拖动底部入口排序。其他客户端按各自的平台布局呈现,不以 iOS 导航数量描述所有平台。
交互原则
- 高频操作一步完成,删除后提供短时撤销,不增加无意义确认层。
- 使用清晰的字号、字重、留白和层级,避免依赖五颜六色的图标区分功能。
- 同一页面只保留一个主要新增入口;次要操作进入系统菜单或逐级设置。
- iOS 使用真实系统材料和导航行为,不模拟假的液态玻璃。
- 动画服务于状态变化,滚动与展开共享单一进度源,避免手势争抢和抖动。
- 小组件、锁屏和灵动岛只承载阶段、剩余时间、今日目标等高频信息,复杂编辑回到应用。
具体圆角、间距、字体、材料、动效与各平台行为见 跨端设计规范。
数据与隐私
- 任务和计时数据默认保存在设备应用目录。
- 同步服务只用 Bearer 密钥鉴权,不建立账号、邮箱或用户画像。
- RSS 文章正文不上传同步服务器。
- AI 默认提示词内置;使用自托管 AI 时模型密钥仅保存在服务器,客户端直连时密钥进入系统安全存储。
- 服务端文件不是端到端加密容器,服务器权限和备份仍由部署者负责。
暂不包含
- 多用户、团队空间、共享清单与协作权限。
- 官方托管账号和订阅计费体系。
- 浏览器版完整客户端。
- 邮件、企业日历或第三方任务平台的双向集成。
- 服务端通过 APNs 在应用完全终止后主动更新 Live Activity;当前由客户端收到状态后更新。
完成标准
一个功能只有同时满足以下条件才视为可交付:
- 离线状态下不会破坏已有数据。
- 同步字段对旧客户端保持兼容。
- iOS/macOS 与 Android/Windows 的产品语义一致。
- 自动化检查通过,并能由 GitHub Release 获取对应安装包。
- 用户说明、部署说明或协议文档已经同步更新。