Where Does ActivityWatch Store Data?
ActivityWatch stores its SQLite timeline database per component under a per-OS data directory, with aw-server-rust holding the main history.
Last updated
ActivityWatch keeps its entire timeline in local SQLite databases, one subdirectory per component. The one that matters most is aw-server-rust, which holds the events behind your dashboards and the buckets the watchers feed. Watchers (window, AFK, browser) write through it, so a single backup of the parent folder covers everything.
Nothing is uploaded anywhere. That is the point of the tool, and it also means there is no cloud copy to fall back on. If the disk dies without a backup, the history is gone.
Where ActivityWatch stores this, by platform
C:\Users\[Username]\AppData\Local\activitywatch
Each component gets its own subfolder here; aw-server-rust holds the main event database. Copy the whole activitywatch folder to migrate machines.
~/Library/Application Support/activitywatch
Same per-component layout as other platforms. The REST API and local web UI read from these files, so quit ActivityWatch before copying them.
~/.local/share/activitywatch
Follows the XDG data directory, so $XDG_DATA_HOME/activitywatch when that variable is set. Docker images mount this path as a volume to persist history across recreations.
Frequently asked questions
How do I back up or migrate my history?
Stop the server first, then copy the whole activitywatch data folder. The database files are plain SQLite, so moving the folder between machines with the same OS just works.
Does any of this tracking data go to the cloud?
Nothing leaves the machine. The database sits in the local data directory and the web UI talks to localhost only. Deleting the data folder wipes history for good.
Notice an outdated path? Let us know.