Metadata-Version: 2.4
Name: workday-py
Version: 0.1.0b1
Summary: AI 驱动的工作时间追踪工具 - 自动记录屏幕活动并使用 AI 生成时间线
License-File: LICENSE
Requires-Python: >=3.12
Requires-Dist: customtkinter>=5.2.0
Requires-Dist: langchain-openai>=0.3.0
Requires-Dist: mss>=9.0.0
Requires-Dist: numpy>=1.24.0
Requires-Dist: openai>=1.0.0
Requires-Dist: opencv-python>=4.8.0
Requires-Dist: pillow>=10.0.0
Requires-Dist: platformdirs>=4.0.0
Requires-Dist: pyobjc-framework-cocoa>=12.1; sys_platform == 'darwin'
Requires-Dist: tkcalendar>=1.6.1
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
Requires-Dist: pytest>=7.4.0; extra == 'dev'
Requires-Dist: ruff>=0.4.0; extra == 'dev'
Description-Content-Type: text/markdown

# Workday

![](SCR-20260501.jpeg)

AI 驱动的工作时间追踪工具。自动以 1 FPS 录制屏幕，通过两阶段 LLM 分析生成每日活动时间线。

参考 [Dayflow](https://github.com/dayflow-ai/dayflow) 设计，Python 跨平台实现，桌面 GUI 基于 CustomTkinter。

## 快速开始

**环境要求**：Python >= 3.12，[uv](https://docs.astral.sh/uv/)

```bash
# 安装依赖
uv sync

# 启动 GUI
uv run workday
```

启动后在「设置」页面填写 API Base URL、API Key 和模型 ID。支持任何兼容 OpenAI API 的服务（OpenAI、火山引擎 ARK、本地 Ollama 等）。

## 使用方法

```bash
uv run workday           # 启动桌面 GUI
uv run workday --version # 查看版本
```

启动 GUI 后：

1. 点击左下角「开始录制」开始屏幕录制
2. 录制数据自动提交后台 AI 分析
3. 在「时间线」视图查看生成的活动卡片
4. 在「仪表盘」查看 Token 用量统计
5. 在「设置」修改录制和分析参数

## 工作原理

```
屏幕截图 (1 FPS)
    │ 每 15 秒打包为视频片段
    ▼
Stage 1 LLM：视频 → 3-5 条观察记录
    ▼
Stage 2 LLM：观察记录 → 活动卡片（15-60 分钟/张）
    ▼
时间线（工作 / 学习 / 娱乐 / 其他）
```

## 数据存储

所有数据本地保存，不上传云端（仅调用 LLM API 时传输屏幕内容）：

```
workday.db      # SQLite 数据库（配置 + 活动数据）
recordings/     # 屏幕录制视频片段
logs/           # 运行日志
```

## 开发

```bash
uv sync --all-extras   # 安装开发依赖
uv run pytest          # 运行测试
uv run ruff check src/ # Lint
uv run ruff format src/ # 格式化
```

## 许可证

MIT
