Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/ActivityWatch/activitywatch/llms.txt

Use this file to discover all available pages before exploring further.

ActivityWatch uses configuration files stored in a platform-specific config directory, and most settings can also be changed through the web dashboard Settings page. Each component — aw-server, aw-watcher-afk, aw-watcher-window, and aw-qt — has its own TOML configuration file in a dedicated subdirectory. You only need to edit these files when you want to override the defaults; ActivityWatch runs without any manual configuration out of the box.

Configuration file locations

The config directory location depends on your operating system:
%APPDATA%\activitywatch\
Each component stores its config in a named subdirectory, for example:
%APPDATA%\activitywatch\aw-server\aw-server.toml
%APPDATA%\activitywatch\aw-watcher-afk\aw-watcher-afk.toml
%APPDATA%\activitywatch\aw-watcher-window\aw-watcher-window.toml
After editing any configuration file, restart ActivityWatch for the changes to take effect.

aw-server settings

aw-server is the local REST API server that stores all activity data and serves the web dashboard. Its config file is located at:
aw-server/aw-server.toml
SettingDefaultDescription
hostlocalhostNetwork interface the server listens on. Set to localhost to restrict access to your local machine only.
port5600Port for the web UI and REST API. Change this if another application is already using port 5600.
storagepeeweeStorage backend. Use peewee (SQLite via the peewee ORM) for normal use, or memory for testing (data is not persisted).
Example aw-server.toml:
aw-server.toml
[server]
host = "localhost"
port = 5600
storage = "peewee"

aw-watcher-afk settings

aw-watcher-afk monitors keyboard and mouse activity to determine whether you are active or away from keyboard. Its config file is located at:
aw-watcher-afk/aw-watcher-afk.toml
SettingDefaultDescription
timeout180Seconds of inactivity before marking you as AFK. Increase this if you frequently read long documents without interacting with your keyboard or mouse.
poll_time5How often (in seconds) the watcher checks for keyboard and mouse input.
Example aw-watcher-afk.toml:
aw-watcher-afk.toml
[afk]
timeout = 180
poll_time = 5

aw-watcher-window settings

aw-watcher-window tracks the currently active application and its window title. Its config file is located at:
aw-watcher-window/aw-watcher-window.toml
SettingDefaultDescription
poll_time1How often (in seconds) the watcher checks which window is in focus. Lower values give finer time resolution; higher values reduce CPU usage.
exclude_titlefalseWhen set to true, window titles are not stored — only the application name is recorded. Useful when window titles may contain sensitive information.
Example aw-watcher-window.toml:
aw-watcher-window.toml
[watcher]
poll_time = 1.0
exclude_title = false
Set exclude_title = true to keep window titles out of the database for applications that display personal or sensitive content in their title bar (for example, email clients or password managers).

Autostart on login

ActivityWatch does not configure autostart during installation on all platforms. The setup varies by operating system.
Open the system tray, right-click the ActivityWatch icon, and navigate to Settings → Start at login to toggle autostart. ActivityWatch adds itself to the Windows startup registry.

Privacy

Learn what data ActivityWatch collects and how it stays on your device.

Sync

Set up experimental data sync across devices with aw-sync.

REST API

Explore the REST API to query and export your activity data programmatically.

Build docs developers (and LLMs) love