A sleek, lightweight command-line task management tool built with Python. Keep your productivity on track with simple commands and JSON-based storage.
- Simple & Fast: Add, update, delete, and manage tasks with single commands
- Status Tracking: Organize tasks with todo, in-progress, and done statuses
- Timestamp Management: Automatic creation and update timestamps
- Flexible Filtering: List tasks by status or view all at once
- JSON Storage: Human-readable task storage in tasks.json
- Error Handling: Robust input validation and helpful error messages
# Clone the repository
git clone https://github.com/oheyek/Task-Tracker-CLI.git
cd Task-Tracker-CLI
# Install dependencies
pip install -r requirements.txt
# Install as a CLI tool (optional)
pip install -e .
After installation, you can use task-cli directly:
task-cli add "Learn Python"
Alternatively, run directly with Python:
python main.py add "Learn Python"
# Add a new task
task-cli add "Complete project documentation"
task-cli add "Review pull requests"
# List all tasks
task-cli list
# List tasks by status
task-cli list todo
task-cli list in-progress
task-cli list done
# Update task description
task-cli update 1 "Complete comprehensive project documentation"
# Mark task as in-progress
task-cli mark-in-progress 1
# Mark task as done
task-cli mark-done 1
# Mark task back to todo
task-cli mark-todo 1
# Delete a task by ID
task-cli delete 1
| add | <description> | Add a new task | task-cli add "Buy groceries" |
| list | [status] | List tasks (all, todo, in-progress, done) | task-cli list done |
| update | <id> <description> | Update task description | task-cli update 2 "New description" |
| delete | <id> | Delete a task | task-cli delete 3 |
| mark-todo | <id> | Mark task as todo | task-cli mark-todo 1 |
| mark-in-progress | <id> | Mark task as in-progress | task-cli mark-in-progress 1 |
| mark-done | <id> | Mark task as completed | task-cli mark-done 1 |
Each task is stored with the following structure:
{
"id": 1,
"description": "Complete project documentation",
"status": "todo",
"createdAt": "2025-01-15T10:30:00",
"updatedAt": "2025-01-15T10:30:00"
}
- todo - Task is pending
- in-progress - Task is currently being worked on
- done - Task is completed
Task-Tracker-CLI/
├── main.py # Main application logic
├── tasks.json # Task storage (auto-generated)
├── requirements.txt # Python dependencies
├── setup.py # Package setup configuration
└── README.md # This file
- Language: Python 3.8+
- Storage: JSON file-based persistence
- Dependencies: Standard library + datetime package
- Error Handling: Comprehensive input validation
- ID Management: Auto-incrementing task IDs
The CLI provides helpful error messages for common issues:
- Invalid task IDs
- Missing required arguments
- Invalid status values
- File operation errors
- Fork the repository
- Create a feature branch (git checkout -b feature/amazing-feature)
- Commit your changes (git commit -m 'Add amazing feature')
- Push to the branch (git push origin feature/amazing-feature)
- Open a Pull Request
# Add some tasks
task-cli add "Set up development environment"
task-cli add "Write unit tests"
task-cli add "Deploy to production"
# Start working on first task
task-cli mark-in-progress 1
# Check progress
task-cli list in-progress
# Complete and move to next
task-cli mark-done 1
task-cli mark-in-progress 2
# View all completed tasks
task-cli list done
This project is open source and available under the MIT License.
Happy Task Tracking! 🎉
If you find this project useful, consider buying me a coffee!
.png)



