TimeTagger
一款开源、Web 化的时间追踪工具,主打直观时间线、标签化管理、报表导出和自托管部署。
智能下载
前往项目主页
该项目暂未提供安装包,请直接访问源代码仓库
自己搭的时间追踪器,标签化、报表全、还能搞番茄钟。
核心功能
- 交互式时间线,拖拽即可记录或调整时间块
- 用标签代替项目,简洁轻快
- 生成 PDF / CSV 报表,支持每日/周/月目标
- 内置番茄钟(实验性)
- 多设备同步,响应式界面
避坑指南
- •多用户模式下密码需要使用 BCrypt 哈希,可直接用官网生成工具 https://timetagger.app/cred;反向代理认证需配置信任 IP 和用户头,否则可能被绕过;实验性番茄钟功能可能不稳定。
适用场景
- 自由职业者追踪不同客户/任务用时
- 个人管理日常学习、运动、家务时间
- 小型团队内部轻量时间记录(需配置多用户认证)
详细介绍
TimeTagger 是一款轻量的开源时间追踪工具,专为个人和自由职业者设计。它以 Web 应用形式运行(可在本地或服务器上部署),提供直观的时间线界面,方便记录时间。它放弃复杂的项目概念,改用标签化分类。支持设置每日/每周/每月目标、生成 PDF/CSV 报表,还集成了实验性的番茄钟功能。多设备同步,单用户和多用户模式都支持,认证可通过密码或反向代理。后端基于 Python 异步框架(uvicorn + asgineer),前端使用 Python 编译为 JavaScript 的 PScript,速度快,部署简单(pip 或 Docker)。
常见问题与排障 (2)
故障排除在自托管 TimeTagger 时,如何移除 /timetagger URL 前缀?
使用类似Caddy的反向代理将根请求重定向到/timetagger/app并代理到TimeTagger容器。示例Caddyfile:'timetagger.example.com { redir / /timetagger/app/; reverse_proxy localhost:8081 }'。或者,创建基于__main__.py的自定义主脚本来修改路径,或使用即将推出的PR #577功能,参数为'--path_prefix=/ --app-redirect=true'(一旦合并后)。
故障排除如何在使用带有Unix socket绑定的反向代理运行Timetagger时,修复“Runtime error because there is no client scope”错误?
当 Timetagger 绑定到 Unix 套接字(TIMETAGGER_BIND=unix:...)且启用代理身份验证时,会出现此错误,因为 ASGI 的 request.scope 可能不包含 'client' 键。作为临时解决方案,请将 /timetagger/__main__.py 复制到其他位置,然后注释掉或修改第 157 行附近的信任检查代码块。例如,将:
client = request.scope["client"][0]
if client not in TRUSTED_PROXIES:
return 403, {}, "forbidden: the proxy is not trusted"
替换为:
if "client" in request.scope:
client = request.scope["client"][0]
if client not in TRUSTED_PROXIES:
return 403, {}, "forbidden: the proxy is not trusted"
然后使用修改后的文件作为入口点启动 Timetagger。这样可在客户端 IP 可用时保留部分信任检查。如果您的环境完全可信,也可以直接注释掉整个代码块。目前官方尚未提供补丁(截至 Timetagger 25.06.1)。请关注该问题以获取更新。
标签
快速上手
安装软件
双击下载的安装程序,按提示完成安装
步骤1:在终端执行 pip install -U timetagger
步骤2:执行 python -m timetagger 启动服务
步骤3:浏览器打开 http://localhost:8080 即可使用
- 步骤1:在终端执行 pip install -U timetagger
- 步骤2:执行 python -m timetagger 启动服务
- 步骤3:浏览器打开 http://localhost:8080 即可使用
暂未获取到校验码
该项目暂未在 GitHub Release 页面提供 SHA-256 校验码
SHA256 校验码
暂无校验码
建议从 GitHub Releases 页面直接下载,并自行核对文件完整性
本平台所有 SHA-256 校验码均提取自项目在 GitHub 官方 Release 页面发布的文件,未做任何修改。你可以通过 GitHub Releases 页面自行验证。
开源透明
查看 GitHub 源码卸载说明
执行 pip uninstall timetagger 即可卸载。若使用 Docker 部署,则删除容器和镜像,并清理数据卷(默认挂载目录)。
无额外依赖
下载后即可直接使用,无需安装其他运行环境
遇到问题?查看下方 FAQ
2 FAQs