ScriptsJul 3, 2026·3 min read

ActivityWatch — Open Source Automated Time Tracker

ActivityWatch automatically tracks how you spend time on your devices with full privacy, storing all data locally and offering extensible watchers.

Agent ready

Ready-to-run agent install

This asset can be installed after the agent chooses its runtime, checks the plan, and runs the matching command.

Native · 98/100Policy: allow
Agent surface
Any MCP/CLI agent
Kind
Skill
Install
Single
Trust
Trust: Established
Entrypoint
ActivityWatch Overview
Direct install command
npx -y tokrepo@latest install c7666f2e-7679-11f1-9bc6-00163e2b0d79 --target codex

Run after dry-run confirms the install plan.

Introduction

ActivityWatch is a cross-platform, privacy-first time tracker that passively records which applications and websites you use. All data stays on your machine, giving you detailed insights into your digital habits without sending anything to external servers.

What ActivityWatch Does

  • Tracks active window titles and durations across desktop operating systems
  • Monitors browser activity via extensions for Chrome and Firefox
  • Stores all events locally in a SQLite database
  • Provides a web dashboard with timelines, category breakdowns, and queries
  • Supports custom watchers for tracking editor activity, terminal usage, and more

Architecture Overview

ActivityWatch uses a client-server model running locally. The aw-server (Python/Rust) exposes a REST API and stores events in SQLite buckets. Watchers (aw-watcher-window, aw-watcher-afk, browser extensions) report events to the server. The web UI queries the server to render visualizations. A query language allows custom categorization and filtering of events.

Self-Hosting & Configuration

  • Install via platform-specific packages or pip: pip install aw-server aw-watcher-window aw-watcher-afk
  • Configure watchers in ~/.config/activitywatch/ TOML files
  • Set up categories in the web UI to group activities by project or type
  • Export data as JSON or CSV for external analysis
  • Sync between devices is possible via third-party tools or manual export/import

Key Features

  • Completely local and offline — no cloud dependency or account required
  • Extensible watcher architecture lets you track anything with a simple API
  • Query language for building custom reports and categorization rules
  • AFK detection distinguishes active usage from idle time
  • Available on Linux, macOS, Windows, and Android

Comparison with Similar Tools

  • RescueTime — cloud-based, easier setup, but data leaves your device
  • Toggl Track — manual timer-based, better for client billing, no passive tracking
  • WakaTime — focused on code editor time, not general desktop activity
  • Screentime (Apple) — built-in on macOS/iOS, no cross-platform or export flexibility

FAQ

Q: Does ActivityWatch track keystrokes? A: No. It only records window titles, application names, and browser URLs. No keystroke or screen content logging.

Q: Can I track time in VS Code? A: Yes, install the aw-watcher-vscode extension to send editor events to your local server.

Q: How much disk space does it use? A: Typically a few hundred MB per year of continuous tracking, stored in a compact SQLite database.

Q: Is there a mobile version? A: An Android app is available. iOS support is limited due to platform restrictions on background tracking.

Sources

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets