Plain-English privacy model
time.md runs directly on macOS and stores product data under your user account. It does not operate a backend for your activity data. The app can contact online services for trial, license, payment, and update checks, but those requests do not include your screen time records, browser history, input tracking data, or export contents.
Local analytics
Foreground app sessions, rollups, browser visits, categories, and optional input analytics are read from or written to local databases.
User-controlled exports
Exports are files you create in a folder you choose. They are not uploaded by time.md.
Minimal entitlement traffic
Trial and license checks send only entitlement fields, app version, and a random local device identifier.
What stays local
- Raw and rolled-up screen time sessions.
- Local browser history reads and the optional web-history archive.
- Optional input tracking data, including keystroke events, cursor events, typed-word aggregates, and heatmap bins if you enable them.
- Export presets, export history, scheduled-export settings, and generated export files.
- Blocking rules, active block state, helper diagnostics, and audit events.
- Category mappings, display preferences, browser settings, and app UI settings.
- CLI and MCP configuration; tools read the same local databases.
Features that need sensitive data are opt-in or permission-gated. For example, Web History needs access to protected browser files, and Input Tracking is off by default.
What can go online
time.md uses online requests for product entitlement and updates, not behavioral analytics.
| Purpose | Data involved | What is not included |
|---|---|---|
| Start or verify a trial | Trial token, app version, and a random locally generated device ID. | Screen time, browser history, input data, export data. |
| Validate a paid activation key | Activation key, app version, and the random local device ID. | Activity records, URLs, keystrokes, cursor data. |
| Stripe Checkout | Payment details are handled by Stripe. time.md may receive a Checkout session ID and entitlement result. | Full card numbers are not received by time.md. |
| Update checks | Sparkle may contact the configured appcast URL to check for new versions. | Local analytics databases and exports. |
The entitlement server stores fulfillment records such as license or trial status, Stripe customer/payment-method references, and a hash of the device identifier. It does not store your time.md activity database.
Storage map
Most product files live here:
~/Library/Application Support/time.md/
| File or location | Contains |
|---|---|
screentime.db |
Main screen-time usage records and analytics rollups. |
screen-time-snapshot.json |
Readable local snapshot used for quick access and integrations. |
web-history.db |
Optional persisted archive of normalized browser visits. |
input-tracking.db |
Optional input tracking events, typed words, cursor heatmap bins, and aggregates. |
blocking-rules.db |
Website, app, and category block rules plus enforcement state and audit events. |
category-mappings.db |
Local app-to-category mapping data. |
export-schedule.json and export settings |
Scheduled export configuration and recent export metadata. |
screen-time-auto.<ext> |
Formatted auto export in your chosen export destination. |
| macOS Keychain | Activation key or trial token secrets. |
| UserDefaults | Feature toggles, entitlement previews, UI preferences, and permission-related settings. |
SQLite may create sidecar files such as -wal and -shm. Treat them as part of the same local database.
macOS permissions
time.md asks for permissions when a feature needs data macOS protects:
Full Disk Access
Required for reliable browser-history reads and some local Screen Time development/import paths.
Input Monitoring
Required before optional keystroke tracking can collect activity. Input Tracking is off by default.
Accessibility
May be requested by macOS flows that observe input or app interaction state.
Administrator approval
Needed to install or upgrade the privileged helper used for system-level website blocking.
Revoking a permission stops or degrades the related feature. It does not upload or delete data by itself.
Exports and sharing
Exports are intentionally powerful. If you export raw sessions, web history, or input-tracking sections, the resulting file can reveal detailed behavior. Review the file before attaching it to an email, committing it to a repository, or putting it inside a synced folder.
Delete your data
-
Quit time.md
Quit the app first so SQLite databases and sidecar files are closed.
-
Delete app data
Remove the Application Support folder to delete local databases, snapshots, and settings stored there.
~/Library/Application Support/time.md/ -
Delete persisted web history
Use Settings → Web Browsers → Delete persisted web history or remove
web-history.dband its SQLite sidecars after quitting. -
Delete input tracking data
Disable Input Tracking, then use the app’s delete action or remove
input-tracking.dband its sidecars. -
Delete exports
Remove manual exports and
screen-time-auto.*files from your chosen export directory. -
Remove credentials if desired
Delete time.md trial or activation items from Keychain Access if you want to remove local entitlement secrets.