See your screen time and which apps you actually use.
Fully local, no account, no network.
A background command samples the focused application once a minute and writes the result to disk. Nothing else happens: no window, no toast, no network call.
Time is attributed to the app that was focused when the sampling window opened, and idle time is subtracted, so walking away from your desk does not inflate the numbers. Idle time is recorded separately rather than discarded, so the report can show time at the machine alongside time actually working.
Raycast leaves background commands off after a Store install, so nothing is recorded until you do one of these:
Data appears a few minutes later. Until then, Usage Report and Daily Usage explain how to turn tracking on and offer a shortcut to the preferences.
Three commands, right in Raycast's root search |
Daily Usage — hour-by-hour activity for any of the last 7 days |
Usage Report — every app, ranked, with total tracked time up front |
Drill into any app — rank, comparison to your average, and busiest hour |
The numbers are a good estimate, not a system-level audit. Be aware that:
The Usage Report shows how much time it actually tracked, so you can see the coverage rather than having to trust the total.
| Command | Runs |
|---|---|
| Collect Usage | Automatically, every minute in the background, once enabled (see Getting started) |
| Usage Report | When you open it |
| Daily Usage | When you open it |
Disabling Collect Usage stops all tracking.
npm install
npm test # unit tests for the sampler and the store
npm run dev # load into Raycast for local development
npm run build # production build, does extra type checking
npm run lint
The logic in src/core/ has no Raycast imports, so the accuracy rules are unit-testable
without a Raycast runtime.
Records the focused application once a minute. Runs automatically in the background. Disabling this stops all tracking.
See which applications you have used and for how long.
Browse the last seven days, one day at a time.