MyTime is a local-first Windows activity tracker. It records foreground-window and idle events into daily CSV files, then exposes a lightweight local viewer for categorization, project mapping, and export.
The primary user experience is a tray icon in the Windows status area. The app runs quietly in the background, keeps the collector alive, and opens the local dashboard only when the user asks for it.
- Local-only: no cloud account, sync, or remote dependency.
- File-first: daily logs live in
data/, configuration lives inconfig/. - Tray-first: users interact through a status-bar icon, not a constantly visible window.
- Viewer-on-demand: charts and export live in a local web dashboard.
- Explicit rules: category and project mapping stay simple and user-editable.
The original product reset rationale is preserved in MyTime-重置计划v0.6.md.
collector: monitors the active window and idle state, then appends normalized events to CSV.viewer: reads logs and config through a minimal local Flask API and serves a static dashboard.tray: owns the background app lifecycle, exposes status, and opens the dashboard on demand.scripts: startup and health-check helpers for local development.
- Create a virtual environment and install the project.
- Run
scripts/start.ps1on Windows PowerShell. - Confirm the tray icon appears.
- Use the tray menu to open the dashboard in the browser.
python -m venv .venv
.venv\Scripts\Activate.ps1
pip install -e .
.\scripts\start.ps1You can also start the app directly with python -m mytime.
MyTime/
|- config/
|- data/
|- docs/
|- logs/
|- scripts/
`- src/
- Architecture: docs/architecture.md
- Engineering notes: docs/engineering.md
- Classification UX: docs/interaction_classification.md
- Review Wireframes: docs/review_wireframes.md
- Bilingual UI Spec: docs/bilingual_ui_spec.md
- Review Data Model: docs/review_data_model.md
- Review State Flows: docs/review_state_flows.md
- UI Copy Catalog: docs/ui_copy_catalog.md
- API surface: docs/api.md
- User guide: docs/user_guide.md