A lightweight and intuitive command-line task management tool built in Python for organizing tasks, setting deadlines, and tracking progress—all from your terminal.
- Overview
- Features
- Requirements
- Installation
- Usage Examples
- Code Structure
- Data Persistence
- Enhancements Ideas
- Contributing
- License
This simple yet powerful CLI app allows you to manage tasks directly from your command line—creating, updating, deleting, filtering by status (“todo”, “in-progress”, “done”), and persisting list state in JSON format for easy tracking :contentReference[oaicite:1]{index=1}.
- ➕ Add tasks with descriptive titles
- 🔁 Update tasks to modify titles or change status
- 🗑️ Delete tasks by ID
- ✅ Mark tasks as
todo,in-progress, ordone - 📋 List tasks (all, or filter by status)
- 🔍 Search tasks by keyword
- 🔄 Clear completed tasks
- 💾 Persistent storage in
tasks.json
- Python 3.7+
- No external libraries (uses
argparse,json, and Python standard library only)
git clone https://github.com/MisaghMomeniB/Task-Tracker-CLI-Python.git
cd Task-Tracker-CLI-Python# Add a new task
python task_tracker.py add "Write README for project"
# Update a task's title
python task_tracker.py update 3 "Update README with badges"
# Mark a task in progress or done
python task_tracker.py mark 3 in-progress
python task_tracker.py mark 3 done
# List all tasks or by status
python task_tracker.py list
python task_tracker.py list todo
# Search tasks by keyword
python task_tracker.py search README
# Delete a task
python task_tracker.py delete 3
# Clear all completed tasks
python task_tracker.py clear doneTask-Tracker-CLI-Python/
├── task_tracker.py # Core CLI app with arg parsing and commands
├── tasks.json # Auto-generated data storage file
└── README.md # This file
-
task_tracker.py:
- Parses user commands via
argparse - Implements task creation, updating, status changes, deletion, searching, listing, and clearing
- Handles persistent JSON read/write operations
- Parses user commands via
Tasks are stored in tasks.json with the following fields:
{
"id": 1,
"description": "Write README for project",
"status": "todo",
"created_at": "2025-06-13T12:34:56",
"updated_at": "2025-06-13T12:34:56"
}The file is created automatically if it doesn't exist, ensuring seamless first-run experience.
- ⏰ Add due dates and reminders
- 🏷️ Add tags or priority levels
- 🌐 Support batch import/export via CSV
- 🚩 Add CLI flags for non-interactive modes
- 🧪 Include unit tests (e.g., with
pytest) - 📊 Integrate lightweight visual reports (ASCII charts or logs)
Improvements are welcome! To contribute:
- Fork this repository
- Create a branch (
feature/...) - Add or update features with clear comments
- Submit a Pull Request detailing your changes
Licensed under the MIT License — see LICENSE for details.