LockedIn is a productivity suite for macOS that combines activity tracking, focus sessions, and detailed analytics to help you understand and optimize your computer usage patterns.
- Activity Tracking: Monitor active applications and web browsing in real-time
- Focus Sessions: Maintain concentration with customizable focus rules and real-time scoring
- Rich Visualizations: View your activity patterns through timelines and summaries
- Session Management: Create and track named work sessions
- Database-Driven: Reliable SQLite storage with timezone awareness
- macOS
- Python 3.10 or later
- UV package manager
- Install UV (if not already installed):
curl -LsSf https://astral.sh/uv/install.sh | sh- Clone and Setup
git clone https://github.com/pradyuprasad/LockedIn.git
cd LockedIn
uv sync # Install dependencies
- Initialize Database
uv run db_setup.py
The main tracking process MUST be running for all other features to work!
- Start the tracker in a dedicated terminal window:
uv run main.py start
- Keep this process running in the background while using other features
- Control the tracking session using:
- n: Start a new named session
- s: Stop current session
- q: Quit tracking
Start focus mode in a new terminal window:
uv run focus.py start
Features:
- Real-time focus score
- Distraction monitoring
- Session statistics
View activity summary (in a new terminal window):
uv run activity_viz.py summary --hours 2 # Last 2 hours
uv run activity_viz.py summary --minutes 30 # Last 30 minutes
View activity timeline:
uv run activity_viz.py timeline --hours 1 # Last hour timeline
Watch live timeline updates:
uv run watch_timeline.py # Auto-refreshes every 10 seconds
- Start Core Tracking (Terminal 1):
uv run main.py start
# Keep this running!
- Start Focus Session (Terminal 2):
uv run focus.py start
- Monitor Activity (Terminal 3):
uv run watch_timeline.py
- Check Summary (Terminal 4):
uv run activity_viz.py summary --hours 2
Edit focus_config.yml to customize:
- Whitelisted apps and domains
- Blacklisted distractions
uv run db_setup.py
- main.py: Essential core tracking engine - must be running for other features to work
- focus.py: Focus session manager with real-time scoring
- activity_viz.py: Activity visualization and reporting tools
- watch_timeline.py: Live activity timeline viewer
- db_setup.py: Database initialization and schema management
- tracker.db: SQLite database storing all activity data
If visualization or focus features aren't working:
- Ensure main.py is running in a terminal window
- Check tracker.db exists and has recent data
- Restart main.py if needed
Contributions are welcome! Please feel free to submit pull requests or create issues for bugs and feature requests.
Pradyumna