Lightweight, privacy-first activity tracker and automatic timesheet generator. Passively tracks your workday and tells you exactly what you did — so you never forget to fill your timesheet again.
Zero cloud dependency. All data stays local. <100MB RAM.
- You forget what you worked on all day → timesheets are inaccurate
- Context switches make it impossible to recall tasks at EOD
- Meeting notes get lost; action items are forgotten
- No single tool captures the full picture of a workday
TaskMind fixes this by passively tracking your active windows, classifying them into projects, and auto-generating timesheets.
| Feature | Description |
|---|---|
| Passive Tracking | Logs active window every 10s — zero effort |
| Auto Timesheet | Groups activities into project time blocks |
| Project Rules | YAML-based classifier (window title, app, git branch) |
| Daily Recap | End-of-day summary of what you accomplished |
| Full-Text Search | Search across all captured activity |
| CSV/JSON Export | Export timesheets for Jira, Clockify, Toggl |
| Audio Recording | Record meetings — captures all participants (system audio) |
| System Tray | Always-visible status icon |
| CLI | taskmind status, taskmind today, taskmind timesheet |
git clone https://github.com/rishapgandhi/taskmind.git
cd taskmind
bash install.shThe install script handles everything: system deps, Python venv, configs, GNOME Wayland extension (if needed), systemd service, and PATH setup.
Wayland users: Log out and back in once after install to activate window tracking.
The installer will guide you through project setup interactively. Or run anytime:
taskmind setup # Full guided setup wizard
taskmind add-project # Add a single project
taskmind remove-project # Remove a project
taskmind projects # List all projectsNo YAML editing required. Just answer prompts like:
Project name: Client Website
Keywords to match in window title: client-site, CLIENT-
✓ Added 'Client Website'
taskmind starttaskmind status # Quick overview
taskmind today # Full daily recap
taskmind timesheet # Auto-generated timesheet
taskmind timesheet --export csv > timesheet.csvtaskmind start Start the tracking daemon
taskmind stop Stop the tracking daemon
taskmind status Show status and today's hours
taskmind today Show today's activity recap
taskmind yesterday Show yesterday's recap
taskmind week Show weekly aggregated recap
taskmind recap -d DATE Show recap for a specific date
taskmind timesheet Generate timesheet (--export csv|json)
taskmind search Full-text search across activities
taskmind record Start audio recording (system audio — all participants)
taskmind stop-recording Stop recording + auto-transcribe (works from any terminal)
taskmind recordings List past recordings with transcripts
taskmind git-watch Add repo to watch or scan for commits
taskmind export Export to csv/json/clockify/toggl/jira
taskmind setup Interactive project setup wizard
taskmind add-project Add a new project (guided)
taskmind remove-project Remove a project
taskmind projects List configured projects
taskmind dashboard Open web dashboard (localhost:7890)
taskmind backup Backup all data
taskmind import-data Restore from backup
taskmind config Open config in $EDITOR
taskmind uninstall Remove TaskMind (--purge to delete data)
- Ubuntu 18.04+ (or any Debian-based Linux)
- Python 3.6+
- X11 or Wayland (GNOME) — auto-detected
xdotool,xprintidle,libnotify-bin,wmctrl(installed automatically)
taskmind/
├── pyproject.toml
├── setup.py
├── install.sh
├── configs/
│ ├── config.default.yaml
│ └── projects.example.yaml
└── taskmind/
├── cli.py # CLI commands
├── config.py # YAML config loader
├── daemon.py # Background tracking daemon
├── database.py # SQLite + FTS5
├── capture/
│ ├── window_tracker.py # xdotool/xprop
│ └── idle_detector.py # xprintidle
├── processing/
│ ├── classifier.py # Rule-based project matching
│ ├── timesheet.py # Timesheet generation
│ └── recap.py # Daily recap
├── ui/
│ └── tray.py # System tray icon
└── utils/
└── notifications.py # Desktop notifications
| Aspect | Implementation |
|---|---|
| Data storage | All local (~/.local/share/taskmind/) |
| Network | Zero — no cloud, no telemetry |
| Tracking | Window titles only, never screenshots |
| Blacklist | Exclude sensitive apps in config |
| Delete | rm ~/.local/share/taskmind/taskmind.db |
| State | CPU | RAM |
|---|---|---|
| Tracking | <1% | ~80MB |
| Idle | 0% | ~80MB |
| Peak | <2% | ~100MB |
PRs welcome. Keep it minimal and lightweight.
MIT — use commercially, fork, modify, redistribute freely.