Private fork of ActivityWatch Modified for HYAM's internal time tracking requirements. NOT affiliated with or endorsed by the ActivityWatch project.
This is a private fork of ActivityWatch - an open-source, privacy-first automated time tracker.
- Unified virtual environment - Single venv architecture instead of per-module Poetry venvs
- Custom daily report module -
aw-export-daily-reportwith web UI and Asana integration - Smart activity review - Categorized grouping, lunch tracking, weekend handling
- Modified build system - Custom code signing and bundling for macOS
- Website: https://activitywatch.net
- Repository: https://github.com/ActivityWatch/activitywatch
- License: Mozilla Public License 2.0 (MPLv2)
- Authors: Erik Bjäreholt, Johan Bjäreholt, and contributors
ActivityWatch is an automated time tracker that:
- Records currently active application and window title
- Tracks browser tabs and URLs
- Detects AFK (away from keyboard) status
- Runs locally with complete data privacy
All data stays on your machine. No cloud tracking, no external servers.
- macOS 10.9+ (tested on macOS 14.6)
- Python 3.9-3.13
- Git with submodule support
# Clone repository
git clone <your-hyam-fork-url>
cd activitywatch_edited
# Initialize submodules
git submodule update --init --recursive
# Create unified venv
python3 -m venv venv
source venv/bin/activate
# Build all modules
make build
# Create DMG (macOS)
make dist/ActivityWatch.dmg# Launch GUI manager
./dist/ActivityWatch.app/Contents/MacOS/aw-qt
# Or run individual components
aw-server # Start server (port 5600)
aw-watcher-window # Track active windows
aw-watcher-afk # Track AFK status
aw-export-daily-report web # Custom review UI (port 9999)- Main dashboard: http://localhost:5600
- Daily review: http://localhost:9999 (HYAM custom module)
Daily activity review module with advanced filtering and categorization.
Features:
- Web UI for reviewing daily activities
- Asana task integration (email-based lookup)
- Smart categorization (Development, Browsing, Communication, etc.)
- Date navigation with weekend handling
- Lunch hour detection (excludes 12:00-15:00 AFK)
- Export to JSON for automation
Usage:
cd aw-export-daily-report
# Test connection
poetry run aw-export-daily-report test
# View statistics
poetry run aw-export-daily-report stats --date 2025-10-15
# Generate report
poetry run aw-export-daily-report report --print
# Start web UI (auto-starts with aw-qt)
poetry run aw-export-daily-report webSee aw-export-daily-report/README.md for details.
This fork maintains the same modular architecture as upstream ActivityWatch:
AW HYAM Edition
├── aw-server # REST API & data storage (SQLite)
├── aw-qt # Desktop manager (system tray)
├── aw-watcher-window # Active window tracker
├── aw-watcher-afk # AFK detection
├── aw-webui # Web dashboard (upstream)
└── aw-export-daily-report # Custom review module (HYAM)
Data Flow:
- Watchers send "heartbeats" to server (localhost:5600)
- Server merges consecutive identical events
- Web UI queries server for visualization
- Custom module adds review & export capabilities
See FORK_MODIFICATIONS.md for comprehensive change documentation.
Key differences:
- Unified venv vs. per-module Poetry venvs
- Custom aw-export-daily-report module
- macOS code signing with HYAM Developer ID
- Modified Makefile and PyInstaller specs
- Flask 2.2.5 locked (upstream uses ^2.2)
# Build specific module
make --directory=aw-server build
make --directory=aw-qt build
# Run tests
make test
# Lint & typecheck
make lint
make typecheck# Pull latest upstream changes
git pull origin master
git submodule update --remote
# Rebuild
make buildNote: HYAM-specific changes are isolated to avoid merge conflicts.
- Upstream docs: https://docs.activitywatch.net
- Fork modifications: FORK_MODIFICATIONS.md
- Technical details: CUSTOM_MODIFICATIONS.md
- Custom module: aw-export-daily-report/README.md
This fork maintains the original Mozilla Public License 2.0 (MPLv2).
See LICENSE.txt for full license text.
- ✅ Original license preserved
- ✅ Original authors credited
- ✅ Modifications documented
- ✅ Source code available
MPLv2 is a file-level copyleft license. All files retain their original licensing.
Report bugs related to core ActivityWatch features at: https://github.com/ActivityWatch/activitywatch/issues
Contact internal maintainer: Mehmet Alican Ipek
This fork is based on the excellent work of the ActivityWatch team:
- Erik Bjäreholt (@ErikBjare)
- Johan Bjäreholt (@johan-bjareholt)
- And all contributors
ActivityWatch is a community-driven project. Support the original:
- Website: https://activitywatch.net
- Forum: https://forum.activitywatch.net
- Documentation: https://docs.activitywatch.net