activitywatch-analysis

Analyze ActivityWatch data to score productivity, detect app-switching death loops, and generate focus insights.

32|2|Updated Dec 26, 2025
One-click install
npx skills add https://github.com/BayramAnnakov/activitywatch-analysis-skill --skill activitywatch-analysis-bayramannakov
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: activitywatch-analysis
Source: https://github.com/BayramAnnakov/activitywatch-analysis-skill
Command: npx skills add https://github.com/BayramAnnakov/activitywatch-analysis-skill --skill activitywatch-analysis-bayramannakov

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires aw-client, and includes scripts (resource) and references (resource) components.

What problem does it solve? It turns raw ActivityWatch time-tracking data into actionable productivity insights, revealing where attention is lost to distracting apps, repetitive context switching, and fragmented focus. ## Core Features & Use Cases - Dual Scoring: Computes a Productivity score (what you worked on) and a Focus score (how sustained your attention was) from window and browser watcher data. - Death Loop Detection: Identifies repetitive A-to-B app switching patterns (e.g., Slack to IDE) and classifies them as productive, AI-assisted, mixed, or distracting with fix suggestions. - Calibration & Custom Categories: A first-run calibration mode surfaces uncategorized apps so users can personalize weights, Telegram chat rules, and browser site categories via JSON config. - Use Case: A developer runs a weekly review to discover that 41% of browser time is distracting and that Telegram-to-Terminal switching is their top death loop, then uses the bundled Focus Guard blocker and blocking guides to intervene. ## Quick Start Ask the assistant to run the ActivityWatch analysis for today with a report, after first running the calibration mode to personalize your app categories.

Frequently Asked Questions about activitywatch-analysis

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I analyze my ActivityWatch data for productivity?▼

Run scripts/analyze_aw.py with --fetch and a date range like today, week, or YYYY-MM-DD, plus --report for a readable summary. It requires ActivityWatch running locally and optionally aw-client for direct API access; otherwise use a CSV export as input.

What is a death loop in activity tracking?▼

A death loop is a repetitive A-to-B app switching pattern that fragments attention, such as Slack to IDE. The analyzer classifies each loop as ai_assisted, productive, mixed, or distracting and suggests interventions like batching or blocking.

Does the analyzer work without the aw-watcher-web browser extension?▼

Yes, but all browser time appears as a single block under Chrome or Safari with no site-level breakdown. Installing the aw-watcher-web Chrome extension enables per-domain analysis with productive versus distracting ratios.

How do I customize app categories and weights?▼

Edit scripts/category_config.json to add apps, window title patterns, and weights from -0.5 (distracting) to 1.0 (deep work). Run the analyzer with --calibrate first to see which apps are uncategorized, then verify with a --report run.

Can it detect AI coding agents like Claude Code?▼

Yes, it detects Claude Code, Codex, Aider, and GitHub Copilot via terminal window title patterns. Switches between terminal and browser during AI sessions are marked ai_assisted and excluded from Focus Score penalties.

What are the limitations of the Focus Guard app blocker?▼

Focus Guard only works on macOS because it relies on osascript for notifications and app control. In warn-only mode it shows notifications without quitting apps; hard blocking requires disabling warn_only in focus_config.json.