Modern CLI task manager with priorities, deadlines and desktop notifications
CLI ToDo Manager is a powerful command-line task management application with support for priorities, deadlines, system notifications, and a beautiful colorful interface.
- 🎯 Task Priorities - Low, Medium, Critical with color indicators
- 📅 Deadlines - Smart color coding (white/yellow/red)
- 🔔 System Notifications - With sound and app icon
- 📊 Statistics - Task analytics by priority and status
- 🎨 Beautiful UI - Color output, ASCII art logo, emojis
- 🖥️ Desktop Shortcut - Create launcher on your desktop
- 💾 Local Storage - SQLite database
- 🚀 High Performance - Database indexes, optimized queries
# Clone the repository
git clone https://github.com/aixandrolab/cli-todo-manager.git
cd cli-todo-manager
# Run the application
python app.py- Python 3.8+
- Linux (for full notification functionality)
- libnotify-bin (for desktop notifications)
- sound-theme-freedesktop (optional, for sounds)
Install dependencies on Ubuntu/Debian:
sudo apt install python3 libnotify-bin sound-theme-freedesktop⚡ MAIN MENU ⚡
────────────────────────────────────────────────────────
1. 📋 List Tasks - View active tasks
2. 📚 All Tasks - View all tasks (including completed)
3. ➕ Create Task - Add new task
4. ✏️ Edit Task - Modify existing task
5. ✅ Complete Task - Mark task as done
6. 🗑️ Delete Task - Remove task
7. 📊 Statistics - View task statistics
8. 🖥️ Create Shortcut - Create desktop shortcut
9. ℹ️ About - Show application information
10. ❓ Help - Show help and documentation
11. 🌐 GitHub - Open GitHub repository
────────────────────────────────────────────────────────
0. 🚪 Exit - Quit application
When creating a task, you can specify:
- Name - Supports emojis 🎉
- Description - Detailed information
- Priority - Low 🟢, Medium 🟡, Critical 🔴
- Deadline - Due date and time (optional)
📝 Task name (can include emojis): Complete project 🚀
📄 Description (optional): Finish CLI ToDo Manager by the end of the week
🎯 Select priority:
1. 🟢 Low
2. 🟡 Medium
3. 🔴 Critical
Choice: 3
⏰ Add deadline? (y/n): y
📅 Deadline (YYYY-MM-DD HH:MM): 2026-04-30 10:00- List Tasks - Shows only active (pending) tasks
- All Tasks - Shows all tasks, including completed ones
- Edit Task - Modify any task field
- Complete Task - Mark as done
- Delete Task - Permanently remove
| Color | Meaning |
|---|---|
| 🟢 Green | Low priority / Completed |
| 🟡 Yellow | Medium priority / Deadline soon |
| 🔴 Red | Critical priority / Overdue |
| 🔵 Cyan | Information / Headers |
| ⚪ White | Normal deadline (>1 day left) |
| 🟡 Yellow | Deadline ≤ 1 day |
| 🔴 Red | Overdue deadline |
The application automatically monitors deadlines and sends system notifications:
- Overdue Tasks - Every 30 minutes (critical priority)
- Deadline Today - On the due date (critical priority)
- Deadline Tomorrow - 1 day before (warning priority)
- Deadline in 2 Days - Reminder (normal priority)
Notifications are grouped by type to prevent sound spam when multiple tasks are due.
cli-todo-manager/
├── core/
│ ├── database/ # Database operations
│ │ └── db_manager.py
│ ├── models/ # Data models
│ │ └── todo.py
│ ├── ui/ # User interface
│ │ ├── ascii_art.py
│ │ ├── colors.py
│ │ └── menu.py
│ └── utils/ # Utilities
│ ├── config.py
│ ├── desktop_entry.py
│ └── notifications.py
├── data/
│ └── icons/ # Application icons
│ └── icon.png
├── app.py # Entry point
└── README.md # Documentation
Place your icon.png file in the data/icons/ directory for use in:
- Desktop shortcuts
- System notifications
- Application menu
Main classes for extension:
Todo- Task model (core/models/todo.py)DatabaseManager- Database operations (core/database/db_manager.py)Menu- UI and logic (core/ui/menu.py)NotificationManager- Notifications (core/utils/notifications.py)
Copyright © 2024-2026, Alexander Suvorov. All rights reserved.
This project is licensed under the BSD 3-Clause License - see the LICENSE file for details.
Alexander Suvorov (aixandrolab)
- GitHub: @aixandrolab
- Project: cli-todo-manager
If you like this project, please star it on GitHub! It helps the project grow and improve.
Built with ❤️ using Python
