your day at your desk, tracked.
desk watcher is a background app that uses your laptop camera to log what you do at your desk and shows it on a live dashboard. it runs locally and no video is ever saved.
what it tracks
- - time away from desk, classified as short break, long break, or lunch.
- - phone use, even when you think you're being subtle.
- - break frequency, average length, when lunch starts and ends.
- - a daily focus ratio you can actually defend.
- - drinks, by the sip.
what it doesn't
- - record or save video.
- - upload anything anywhere.
- - require a login, an account, or a cloud.
- - ping a server you didn't start.
- - know who you are. it just sees pose keypoints.
how it works
local pipelinea watcher loop runs in the background. every frame from your camera passes through mediapipe pose to extract joint keypoints, then through a random forest trained on ~3-second windows of those keypoints. the four activity labels (at desk, sipping, on phone, away) score around 98% per-class on held-out data. a small yolo detector cross-checks the phone calls in parallel. events land in a local sqlite database. frames themselves are never stored.
keep it tidy
collapse anythingpin only the metrics that matter to you. the dashboard gets out of the way when you're not looking at it.
pin what matters
your tiles, your callpin any subset of the catalog, drop the ones you don't care about, and the dashboard remembers across sessions.
privacy
local-onlythe camera feed never leaves the process that reads it. frames aren't stored. only pose keypoints (the abstract dots) and event labels (at_desk, sipping, phone, away) get written to ~/.desk-watcher/events.db on your machine. delete the file and the history is gone. there is no server, no analytics, and no telemetry.
read the full privacy noteget it
the windows + mac installer is coming. for now, clone the repo, run python watcher.py in one terminal, uvicorn api:app in another, and npm run dev in the dashboard. takes about three minutes if your toolchain's awake.