A lightweight, file-based task management system that runs directly from your command line. This simple yet powerful tool helps you organize your tasks without any external dependencies or complicated setup.
- ✅ Add, update, and delete tasks
- ⏳ Mark tasks as "in progress" or "done"
- 📋 List all tasks or filter by status
- 💾 Persistent storage using JSON
- 🛠️ No external dependencies
- 🔒 Error handling and validation built-in
No installation required beyond Python! Simply download the script and you're ready to go.
# Clone this repository
git clone https://github.com/username/task-tracker.git
# Navigate to the repository directory
cd task-tracker
# Run the script (examples below)
python task_tracker.py add "My first task"- Python 3.6+
- No external libraries required
python task_tracker.py add "Complete project proposal"
# Output: Task 'Complete project proposal' added with ID 1.python task_tracker.py update 1 "Revised project proposal"
# Output: Task 1 updated.python task_tracker.py progress 1
# Output: Task 1 marked as in_progress.python task_tracker.py done 1
# Output: Task 1 marked as done.python task_tracker.py delete 1
# Output: Task 1 deleted.List all tasks:
python task_tracker.py listList only completed tasks:
python task_tracker.py list --doneList only todo tasks:
python task_tracker.py list --todoList only in-progress tasks:
python task_tracker.py list --progress| Command | Description | Format |
|---|---|---|
add |
Create a new task | add "Task title" |
update |
Update an existing task | update <id> "New title" |
delete |
Remove a task | delete <id> |
progress |
Mark task as in progress | progress <id> |
done |
Mark task as completed | done <id> |
list |
Show all tasks | list [--all/--done/--todo/--progress] |
When listing tasks, you'll see output similar to:
ID | Status | Title
--------------------------------------------------
1 | todo | Write documentation
2 | in progress | Implement error handling
3 | done | Create basic structure
All tasks are stored in a tasks.json file in the same directory as the script. Each task contains:
- Unique ID
- Title
- Status (todo, in_progress, done)
- Creation timestamp
- Last update timestamp
Example structure:
[
{
"id": 1,
"title": "Complete project proposal",
"status": "done",
"created_at": "2025-02-25T15:30:45.123456",
"updated_at": "2025-02-25T16:45:12.654321"
}
]The application includes robust error handling for:
- File I/O operations
- Invalid task IDs
- Empty task titles
- Corrupted JSON data
- Excessive title length
This task tracker is designed to be simple but extensible. Some ideas for expansion:
- Add due dates
- Task priorities
- Task categories/tags
- Data export functionality
- Interactive mode
MIT License
Copyright (c) 2025 Eric Peltzman