A simple, fast, and extensible command-line To-Do application built with Python. Designed for productivity and as a showcase of clean CLI architecture using modern Python tooling.
-
✅ Add, list, complete, and delete tasks
-
📅 Due date support (
--due YYYY-MM-DD) -
⚠️ Overdue task detection -
🔍 Filter tasks:
--done--pending--due-today--overdue
-
📊 Sort tasks by due date automatically
-
💾 Persistent storage using JSON
-
🧩 Modular code structure (CLI, storage, utils)
todo-cli/
│── todo/
│ ├── __init__.py
│ ├── cli.py # CLI commands & argument parsing
│ ├── storage.py # JSON read/write logic
│ └── utils.py # formatting & helpers
│── tests/
│── pyproject.toml
│── README.md
│── .gitignore
git clone https://github.com/yourusername/todo-cli.git
cd todo-cli
Windows
python -m venv venv
venv\Scripts\activate
Mac/Linux
python3 -m venv venv
source venv/bin/activate
python -m pip install -e .
todo add "Finish project" --due 2026-05-01
todo list
todo done 1
todo delete 1
todo list --done
todo list --pending
todo list --due-today
todo list --overdue
python -m pytest
1. [✗] (normal) Finish project | due: 2026-05-01
2. [✔] (high) Submit report | due: 2026-04-15
3. [✗] (low) Fix bug | due: 2026-04-10 ⚠ OVERDUE
- Python 3
- argparse (CLI parsing)
- JSON (data storage)
- SQLite backend
- Natural language dates (
tomorrow,next week) - Colored CLI output (Rich)
- Task categories/tags
- Sync with web API (Flask/Laravel backend)
- Package & publish to PyPI
MIT License
Amiel Pastor GitHub: https://github.com/apmokong
This project demonstrates:
- Clean CLI design with
argparse - Modular Python architecture
- File-based persistence
- Extensible feature design
Perfect as a portfolio project for backend or Python developer roles.