A smart, modern desktop to-do application built with Python, PyQt5, and SQLite — featuring AI-powered task analysis, system reminders, and a clean light/dark UI.
| Feature | Description |
|---|---|
| ✅ Task Management | Add, edit, delete, and mark tasks as done |
| 🔍 Search & Filter | Real-time search by title or tags; hide completed tasks |
| 📊 Smart Sorting | Sort by due date, priority, title, or creation date |
| 🤖 AI Analysis | Claude/Gemini-powered task prioritization suggestions |
| ✂️ AI Breakdown | Split a complex task into actionable subtasks with AI |
| 🔔 Reminders | System tray notifications for overdue and due-today tasks |
| 🌙 Dark Mode | Toggle between a clean light and a deep dark theme |
| 📤 Export | Save your task list to CSV or JSON |
| 📥 Import | Load tasks from CSV or JSON (duplicate detection included) |
| ⌨️ Keyboard Shortcuts | Full keyboard navigation support |
Light Mode
Dark Mode
- Python 3.11+
- PyQt5 — desktop UI framework
- SQLite — local persistent storage
- Google Gemini API (optional) — AI features
- pytest — unit testing
TaskMind/
├── main.py # Entry point, logging setup
├── requirements.txt
│
├── models/
│ ├── task.py # Task dataclass + Priority enum
│ └── __init__.py
│
├── database/
│ ├── repository.py # TaskRepository (CRUD layer)
│ └── __init__.py
│
├── ui/
│ ├── main_window.py # Main application window
│ ├── task_dialog.py # Add / Edit dialog
│ ├── ai_dialog.py # AI analysis & breakdown dialogs
│ └── __init__.py
│
├── utils/
│ ├── ai_service.py # Gemini API integration (QThread workers)
│ ├── reminder.py # System tray reminder service
│ ├── theme.py # Light / dark theme definitions
│ ├── io.py # CSV & JSON export / import
│ └── __init__.py
│
└── tests/
├── test_repository.py # Unit tests for TaskRepository
└── test_io.py # Unit tests for export / import
git clone https://github.com/your-username/taskmind.git
cd taskmindpython -m venv venv
# Windows
venv\Scripts\activate
# macOS / Linux
source venv/bin/activatepip install -r requirements.txtpython main.pyThe AI features require a free Google Gemini API key.
- Get your free key at aistudio.google.com (no credit card required)
- Set the environment variable before running the app:
# Windows
set GEMINI_API_KEY=your_api_key_here
# macOS / Linux
export GEMINI_API_KEY=your_api_key_hereNote: The Gemini API may be restricted in some regions and may require a VPN. The app works fully without an API key — AI buttons will show a setup prompt.
| Shortcut | Action |
|---|---|
Ctrl + N |
Focus the title field to add a new task |
Ctrl + E |
Edit selected task |
Delete |
Delete selected task |
Ctrl + F |
Focus the search box |
Ctrl + D |
Toggle done state of selected task |
Ctrl + Shift + E |
Export tasks |
F5 |
Refresh the list |
pip install pytest
pytest tests/ -vPyQt5>=5.15
google-generativeai>=0.7
pytest>=7.0
Task data is stored locally at:
- Windows:
C:\Users\<you>\.todo_app\todo.db - macOS / Linux:
~/.todo_app/todo.db
Application logs are saved alongside the database as app.log.
This project is licensed under the MIT License — see LICENSE for details.
farnaz akbari GitHub

