A silent Mac agent captures every app, browser tab, and idle moment. A self-hosted web dashboard turns that raw data into a clear, scored picture of your day.
No cloud. No account. No third-party telemetry. Your data lives entirely on your machine.
A lightweight menu-bar agent polls every 3 seconds. It captures the active app, window title, and browser URL — including private tabs, which are logged as "Private/Incognito" to protect your privacy.
→Each event is appended to a daily CSV in ~/.yourtime/data/YYYY-MM-DD.csv. Plain text, version-controllable, easy to inspect. No database, no binary format.
Mount your data folder into the Docker container. Open the browser and get a minute-by-minute timeline, productivity score, calendar overlays, and category breakdowns — for any day, instantly.
Every minute of your day is rendered as a coloured block proportional to time spent. Hover to see the app, category, weight, and duration. Off-time gaps are collapsed to keep things readable.
A transparent formula: 75% net weighted work + 25% volume. You define what "productive" means via custom categories and weights. No black box — expand the score card to see exactly how it was calculated.
Sync your calendar events and see them overlaid on the timeline. Each meeting gets an attention score based on how relevant your actual activity was during that slot.
Assign a weight to any app or website: positive for productive work, negative for distractions, zero for neutral. Domain weights override app weights, giving you fine-grained control.
The Mac agent detects incognito/private mode across Chrome, Safari, Firefox, and Brave. Private tabs are logged as "Private/Incognito" — never the actual URL or title.
Data never leaves your machine. The web dashboard runs in Docker on your local network. No account required, no telemetry, no SaaS dependency. You own everything.
The score reflects your priorities, not ours. Set weights on your apps and categories, configure your target hours, and let YourTime do the math.
The menu-bar agent that captures your activity. Requires macOS 13+ and Accessibility permissions.
YourTime.zipYourTime.app to /Applications~/.yourtime/data/ immediatelySelf-hosted Next.js dashboard. Mount your data folder and open your browser. Google Calendar sync is optional.
# Pull
docker pull ghcr.io/esseti/yourtime:latest
# Run
docker run -d --name yourtime \
-v ~/.yourtime/data:/app/data \
-p 8888:3000 \
ghcr.io/esseti/yourtime:latest
GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET as environment variables to enable calendar sync. See the setup guide.
pnpm@latest was resolving to v10 which is incompatible with lockfileVersion 9.0.
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
pnpm v9 requires the packages field when pnpm-workspace.yaml is present.
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
Reduces vulnerabilities from 1C/19H/5M/3L to 0C/1H/4M/0L per docker scout.
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com