AI 驱动的工作时间追踪工具 - 自动记录屏幕活动并使用 AI 生成时间线
Project description
Workday
AI 驱动的工作时间追踪工具。自动以 1 FPS 录制屏幕,通过两阶段 LLM 分析生成每日活动时间线。
参考 Dayflow 设计,Python 跨平台实现,桌面 GUI 基于 CustomTkinter。
快速开始
环境要求:Python >= 3.12,uv
# 安装依赖
uv sync
# 启动 GUI
uv run workday
启动后在「设置」页面填写 API Base URL、API Key 和模型 ID。支持任何兼容 OpenAI API 的服务(OpenAI、火山引擎 ARK、本地 Ollama 等)。
使用方法
uv run workday # 启动桌面 GUI
uv run workday --version # 查看版本
启动 GUI 后:
- 点击左下角「开始录制」开始屏幕录制
- 录制数据自动提交后台 AI 分析
- 在「时间线」视图查看生成的活动卡片
- 在「仪表盘」查看 Token 用量统计
- 在「设置」修改录制和分析参数
工作原理
屏幕截图 (1 FPS)
│ 每 15 秒打包为视频片段
▼
Stage 1 LLM:视频 → 3-5 条观察记录
▼
Stage 2 LLM:观察记录 → 活动卡片(15-60 分钟/张)
▼
时间线(工作 / 学习 / 娱乐 / 其他)
数据存储
所有数据本地保存,不上传云端(仅调用 LLM API 时传输屏幕内容):
workday.db # SQLite 数据库(配置 + 活动数据)
recordings/ # 屏幕录制视频片段
logs/ # 运行日志
开发
uv sync --all-extras # 安装开发依赖
uv run pytest # 运行测试
uv run ruff check src/ # Lint
uv run ruff format src/ # 格式化
许可证
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file workday_py-0.1.0b1.tar.gz.
File metadata
- Download URL: workday_py-0.1.0b1.tar.gz
- Upload date:
- Size: 959.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b5edee1a114c6648685e487b44f30e175863b23a851e3799cf7eb0bf2434021
|
|
| MD5 |
6034209ca813bcf16f752bb6fe0a4d02
|
|
| BLAKE2b-256 |
8d6ab09aebc4af0e84fd8c0ed7441422d7fdd0b5fb9da97a8061ce7ed7558c60
|
Provenance
The following attestation bundles were made for workday_py-0.1.0b1.tar.gz:
Publisher:
publish.yml on 8DE4732A/workday
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
workday_py-0.1.0b1.tar.gz -
Subject digest:
5b5edee1a114c6648685e487b44f30e175863b23a851e3799cf7eb0bf2434021 - Sigstore transparency entry: 1425169893
- Sigstore integration time:
-
Permalink:
8DE4732A/workday@83b9936823740d52c893851e13f63fc2242fa2d3 -
Branch / Tag:
refs/tags/v0.1.0b1 - Owner: https://github.com/8DE4732A
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@83b9936823740d52c893851e13f63fc2242fa2d3 -
Trigger Event:
push
-
Statement type:
File details
Details for the file workday_py-0.1.0b1-py3-none-any.whl.
File metadata
- Download URL: workday_py-0.1.0b1-py3-none-any.whl
- Upload date:
- Size: 182.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b18019340cf3f42b948c49cfc7516e2823959403b3daf0ecec84146d9aa6cdd4
|
|
| MD5 |
8d13fb48c6bb372060ffe783a20a8b9e
|
|
| BLAKE2b-256 |
a376aee84addea7b03a88281d7dd92d0481992a3627c7a21471697bb68f6b10d
|
Provenance
The following attestation bundles were made for workday_py-0.1.0b1-py3-none-any.whl:
Publisher:
publish.yml on 8DE4732A/workday
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
workday_py-0.1.0b1-py3-none-any.whl -
Subject digest:
b18019340cf3f42b948c49cfc7516e2823959403b3daf0ecec84146d9aa6cdd4 - Sigstore transparency entry: 1425170062
- Sigstore integration time:
-
Permalink:
8DE4732A/workday@83b9936823740d52c893851e13f63fc2242fa2d3 -
Branch / Tag:
refs/tags/v0.1.0b1 - Owner: https://github.com/8DE4732A
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@83b9936823740d52c893851e13f63fc2242fa2d3 -
Trigger Event:
push
-
Statement type: