Task Keeper 3.112 介绍与选型指南
Task Keeper(PiGa)介绍与选型:键盘驱动的自托管树状任务列表编辑器,含与 Vikunja/Kanboard/Wekan/Tasks.md 的量化对比。
Task Keeper 3.112 介绍与选型指南
目标:讲清 Task Keeper(上游项目名 PiGa)是什么、适合谁、与主流自托管任务管理工具的量化差异,帮助读者在 5 分钟内完成技术选型。本文数据全部来自官方仓库、Docker Hub 与 awesome-selfhosted 公开信息(查询日期 2026-10-25),不含本地实测。
一、环境信息
- 文档类型:A1 介绍与选型(认知篇,仅联网溯源,未做本地部署实测)
- 数据查询日期:2026-10-25
- 主要信息源:
- GitHub 仓库 https://github.com/nymanjens/piga(README、Releases、conf/routes 源码)
- GitHub Releases 页面(最新版本 v3.112,发布于 2026-10-19)
- Docker Hub 镜像仓库 https://hub.docker.com/r/nymanjens/piga(latest/v3.112 镜像更新于 2026-10-19)
- awesome-selfhosted「Task Management & To-do Lists」分类页
- shields.io 徽章接口(星数与版本号取证)
二、软件概述
Task Keeper 在 awesome-selfhosted 清单中的官方描述是「List editor for power users, backed by a self-hosted server」(面向高级用户的列表编辑器,由自托管服务端支撑)。它对应的开源仓库是 nymanjens/piga——项目早期代号 PiGa,进入 awesome-selfhosted 清单时使用 Task Keeper 作为对外名称,两者指同一个产品。
一句话定位:一个以键盘快捷键为核心交互、以树状缩进列表为数据模型的自托管 Web 任务/清单编辑器。
💡 技术拓展:「自托管任务管理」这个类目下的产品形态差异很大——
形态 代表产品 数据模型 交互重心 看板(Kanban) Kanboard、Wekan、Tasks.md 卡片 × 泳道列 鼠标拖拽、状态流转 树状列表编辑器 Task Keeper(PiGa) 可无限缩进的任务树 键盘快捷键批量操作 多视图任务系统 Vikunja 任务 + 多视图(列表/看板/甘特/表格) 全家桶式管理 纯命令行 Taskwarrior 本地任务数据库 终端 CLI Task Keeper 属于「树状列表编辑器」形态,目标用户是偏好键盘流、需要把任务组织成多层大纲的「高级用户」(power users),而不是需要看板拖拽协作的团队。本文介绍的即该形态。
2.1 基本信息速览
| 项目 | 内容(来源:GitHub 仓库页,查询日期 2026-10-25) |
|---|---|
| 上游仓库 | https://github.com/nymanjens/piga |
| 对外名称 | Task Keeper(awesome-selfhosted 清单名)/ PiGa(仓库名) |
| 最新稳定版 | v3.112(2026-10-19 发布,来源:GitHub Releases 页面) |
| 开源协议 | Apache-2.0 |
| 主要语言 | Scala(JVM 服务端)+ Scala.js(编译为 JavaScript 的浏览器前端) |
| 服务端框架 | Play Framework 2.8(Akka HTTP) |
| 数据库 | MariaDB / MySQL(JDBC,亦可配置 H2/SQLite,官方推荐 MariaDB) |
| 星数 | ★113(shields.io 徽章实测值,社区规模较小) |
| 维护状态 | 活跃(2026 年内持续发版:v3.91 → v3.112 共 10+ 个版本) |
| 官方部署形态 | Release tar.gz 二进制包(JDK 11 直跑)、Docker 镜像 + docker-compose.yml |
三、核心架构
Task Keeper 是一个典型的「服务端渲染 API + 重前端 SPA」架构,其技术栈在自托管工具中相当独特——前后端共用 Scala 语言:
浏览器(Scala.js 编译的 React 前端)
│ /scalajsapi/*(内部 API,Scala.js 自动路由)
│ /websocket/hydropush/:updateToken/(服务端推送,实时同步)
▼
Play Framework 2.8 服务端(JVM,Akka HTTP)
│ Slick 3.3 + HikariCP(连接池)
▼
MariaDB / MySQL(5 张核心表)
核心组件拆解(依据:仓库 conf/routes 路由表与 release 包 lib/ 依赖清单,查询日期 2026-10-25):
- Scala.js 前端:整个编辑器界面由 Scala 编写、编译成 JavaScript 在浏览器执行,因此「任务编辑、快捷键处理、本地缓存」都在客户端完成,离线也能编辑,恢复联网后通过内部 API 同步。
- hydro 框架:作者自研的 Scala 全栈框架(代码位于仓库 hydro/ 目录),提供实体同步、WebSocket 推送、实体修改日志(ENTITY_MODIFICATION_ENTITY 表)等基础设施。所有数据变更以「实体修改(EntityModification)」为单位持久化,天然支持多端同步与审计。
- Slick + HikariCP 数据访问层:服务端通过 Slick 3.3 的
slick.jdbc.MySQLProfile访问 MariaDB/MySQL,连接池为 HikariCP。 - 数据库模型(5 张表,来源:/externalapi/dbschema/ 接口定义):
USERS:用户表(loginName / passwordHash / isAdmin)DOCUMENT_ENTITIES:文档(即「清单/列表」)DOCUMENT_PERMISSION_AND_PLACEMENTS:文档授权与排序TASK_ENTITIES:任务条目(含缩进层级、折叠、完成态、标签、延迟日期)ENTITY_MODIFICATION_ENTITY:实体修改流水(同步与清理依据)
- External API:
/externalapi/前缀下一组面向脚本/定时任务的 HTTP 接口(健康检查、任务插入、任务导出 JSON、延迟任务处理等),以应用密钥(play.http.secret.key)鉴权。
四、功能特性
依据官方 README(查询日期 2026-10-25)归纳:
- 文档编辑(树状列表)
- 任务可无限缩进成树;
tab/shift+tab调整层级;ctrl+加号/减号展开/折叠整棵子树; - 任务支持 标签(
#tag形式,alt+shift+T编辑)、富文本格式(粗体/斜体/代码字体/高亮/删除线)、Markdown 导出(alt+shift+M复制为 Markdown); - 「标记完成」「延迟任务队列」(
alt+shift+D,配合#delayed_tasks标签与定时 API 调用实现到期自动回流)。
- 任务可无限缩进成树;
- 多文档管理:一个实例可建多份清单文档,
ctrl+P打开「跳转到文档」对话框,shift+alt+上/下在文档间切换;文档可授权给其他用户共享。 - 键盘流操作体系:60+ 快捷键覆盖任务移动(
alt+上/下)、复制剪切整棵子树(ctrl+shift+C/X)、大小写转换(ctrl+alt+U/L、CamelCase、snake_case、dash-case)、选择与跳转等,全程可不离键盘。 - 多用户与权限:管理员在 Web 界面创建用户,文档按用户授权(DOCUMENT_PERMISSION_AND_PLACEMENTS 表)。
- External API:供外部脚本插入/导出任务、处理延迟任务、清理修改日志(详见本专栏《Task Keeper 3.112 API 使用详解》)。
五、快速开始(最小可用示例)
最快的体验方式是官方 docker-compose.yml(以下为官方 README 给出的流程,查询日期 2026-10-25;完整实测步骤见本专栏 B2《Task Keeper 3.112 Docker Compose 部署指南》):
# 下载官方编排文件
wget https://raw.githubusercontent.com/nymanjens/piga/master/docker-compose.yml
# 生成应用密钥(会话 Cookie 签名用)
export APPLICATION_SECRET="$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)"
# 初始化数据库表与 admin 用户(默认密码 changeme,首次登录后请修改)
docker compose run --rm web bin/server -DdropAndCreateNewDb
docker compose run --rm web bin/server -DcreateAdminUser
# 启动服务
docker compose up -d
浏览器访问 http://<服务器IP>:9000/,用 admin 登录后新建文档即可开始编辑。裸机安装(JDK 11 + MariaDB + release tar.gz)见本专栏 B1《Ubuntu 22.04 安装 Task Keeper 3.112 指南》。
六、适用场景与限制
6.1 适合
- 个人或小团队的 TODO 清单、会议纪要、购物/备料清单、大纲笔记:官方 README 列举的四个典型用例即 TODO list、meals and ingredients、meeting notes、things to remember。
- 键盘重度用户:需要像 Org-mode/WorkFlowy 那样用缩进+快捷键管理深层任务树,但要求数据自托管、可多端同步。
- 需要 脚本化写入任务 的场景:External API 可把任务插入指定文档的指定标签下(如定时收集告警、导入购物清单)。
6.2 限制(选型前必须知晓)
- 社区规模小:★113(2026-10-25),与 Kanboard(9.9k)、Wekan(21k)差两个数量级,遇到问题基本只能读源码/提 Issue,没有中文资料。
- 无看板视图:只有树状列表一种视图,不支持泳道拖拽、甘特图、日历视图;需要看板协作的团队应选 Kanboard/Wekan/Vikunja。
- 依赖 JVM + 关系库:相比单二进制/纯文件方案(Tasks.md 直接读写 Markdown 文件),部署与备份链条更长(JVM 11 + MariaDB)。
- 界面仅英文(conf/application.conf 默认
play.i18n.langs = ["en"],release 包内仅附带 en/nl 语言文件),无官方中文本地化。 - 权限模型简单:只有「管理员/普通用户 + 文档级授权」,无团队/角色/细粒度 ACL。
七、同类选型对比
以下数据均实查自各项目 GitHub 仓库与 shields.io 徽章(查询日期 2026-10-25):
| 维度 | Task Keeper (PiGa) | Vikunja | Kanboard | Wekan | Tasks.md |
|---|---|---|---|---|---|
| GitHub 星数 | ★113 | ★5.8k | ★9.9k | ★21k | ★2.2k |
| 最新版本(查询日) | v3.112(2026-10-19) | v2.7.1 | v1.2.56 | v12.64 | v3.3.0 |
| 技术栈 | Scala/Play + MariaDB | Go + Vue | PHP + SQLite/MySQL | Meteor/Node + MongoDB | Node.js + 本地 Markdown 文件 |
| 数据模型 | 树状缩进任务列表 | 任务(多视图) | 看板卡片 | 看板卡片 | 看板卡片(文件即数据) |
| 交互重心 | 键盘快捷键 | 表单+多视图 | 拖拽+自动化 | 拖拽协作 | 拖拽+Markdown 直编 |
| 离线编辑/同步 | 支持(本地缓存+实体修改日志) | 不支持 | 不支持 | 不支持 | 文件即数据 |
| 外部 API | 有(任务插入/导出等) | 完整 REST API | 完整 JSON-RPC API | REST API | 无(直接改文件) |
| 资源占用 | JVM(建议 256–512MB 堆)+ MariaDB | 低(Go 单二进制) | 低(PHP+SQLite 即可) | 高(Node+MongoDB) | 极低 |
| 协议 | Apache-2.0 | AGPL-3.0 | MIT | MIT | MIT |
如何选型:
- 想要 WorkFlowy 式大纲 + 键盘流 + 自托管:选 Task Keeper,它是该细分形态里少有的仍在活跃维护的选项(2026 年保持月度发版)。
- 需要 看板拖拽 + 团队敏捷协作:选 Kanboard(轻量、自动化规则强)或 Wekan(功能全、类 Trello)。
- 需要 列表/看板/甘特/表格多视图一体:选 Vikunja。
- 需要 零数据库、文件即可迁移/进 Git:选 Tasks.md。
- 想要 终端原生、不上 Web:选 Taskwarrior(本平台已有专栏)。
八、参考链接
- GitHub 仓库(含 README、快捷键清单、docker-compose.yml):https://github.com/nymanjens/piga
- Releases 页面(版本与发布时间):https://github.com/nymanjens/piga/releases
- Docker Hub 镜像:https://hub.docker.com/r/nymanjens/piga
- awesome-selfhosted Task Management 分类:https://awesome-selfhosted.net/(Task Management & To-do Lists 节)
- 本专栏后续篇目:《Ubuntu 22.04 安装 Task Keeper 3.112 指南》《Task Keeper 3.112 Docker Compose 部署指南》《Task Keeper 3.112 配置参数详解》《Task Keeper 3.112 API 使用详解》