Skip to content

rishapgandhi/taskmind

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TaskMind

License: MIT Python 3.6+ Ubuntu 18.04+

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.

Why This Exists

  • 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.

Features

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

Quick Start

1. Install

git clone https://github.com/rishapgandhi/taskmind.git
cd taskmind
bash install.sh

The 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.

2. Configure Projects

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 projects

No YAML editing required. Just answer prompts like:

Project name: Client Website
Keywords to match in window title: client-site, CLIENT-
✓ Added 'Client Website'

3. Start Tracking

taskmind start

4. Check Your Day

taskmind status      # Quick overview
taskmind today       # Full daily recap
taskmind timesheet   # Auto-generated timesheet
taskmind timesheet --export csv > timesheet.csv

CLI Commands

taskmind 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)

System Requirements

  • Ubuntu 18.04+ (or any Debian-based Linux)
  • Python 3.6+
  • X11 or Wayland (GNOME) — auto-detected
  • xdotool, xprintidle, libnotify-bin, wmctrl (installed automatically)

Project Structure

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

Privacy & Security

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

Resource Usage

State CPU RAM
Tracking <1% ~80MB
Idle 0% ~80MB
Peak <2% ~100MB

Contributing

PRs welcome. Keep it minimal and lightweight.

License

MIT — use commercially, fork, modify, redistribute freely.

About

Lightweight activity tracker and automatic timesheet generator for Linux. Passively tracks your workday, auto-fills timesheets. Privacy-first, all local, <100MB RAM.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors