A personal productivity observability tool that detects and visualizes hidden context switches across apps, tabs, and tasks.
- Not another CRUD app: it models attention as a graph.
- Demonstrates event pipelines, feature engineering, and UX storytelling.
- Can evolve into a real product for developers/designers.
- FastAPI backend with local SQLite storage
- Event ingestion API (
POST /events) - Event list API (
GET /events) - Fragmentation score API (
GET /metrics/fragmentation) - Rule-based score using switch ratio + rapid-switch ratio
Collect local activity events (window title changes, tab focus, IDE/git actions) and compute a Context Fragmentation Score by hour/day.
- Backend: Python + FastAPI
- Storage: SQLite
- Frontend: placeholder (
src/frontend) for upcoming dashboard
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
uvicorn src.backend.main:app --reloadHealth check:
curl http://127.0.0.1:8000/healthCreate event:
curl -X POST http://127.0.0.1:8000/events \
-H 'Content-Type: application/json' \
-d '{
"source":"vscode",
"title":"Fix login bug",
"task_key":"bugfix-login",
"occurred_at":"2026-02-26T00:10:00+00:00"
}'Get score:
curl 'http://127.0.0.1:8000/metrics/fragmentation?hours=24'src/backend: API + scoring logicsrc/frontend: dashboard placeholderdocs: architecture docstests: API and metric tests
- Add activity collectors (VS Code window events, browser tab events)
- Add hourly heatmap endpoint for dashboard
- Add sequence-model baseline and compare with rule-based score
- Add privacy controls and redaction rules for window title data