A simple, lightweight command-line todo list manager written in Python. Manage your tasks efficiently from the terminal with easy-to-use commands.
- Add new tasks with descriptions
- List all tasks with numbered indices
- Remove completed tasks by number
- Persistent storage using JSON
- Simple and intuitive command-line interface
- No external dependencies (pure Python)
- Python 3.6 or higher
- Clone the repository:
git clone https://github.com/codeforgood-org/url-shortener.git
cd url-shortener- Make the script executable (optional):
chmod +x todo.py- Start using it immediately:
python todo.py listAdd a new task to your todo list:
python todo.py add "Buy groceries"
python todo.py add "Complete project documentation"Display all tasks with their numbers:
python todo.py listExample output:
1. Buy groceries
2. Complete project documentation
3. Call dentist for appointment
Remove a task by its number:
python todo.py remove 2Display usage information:
python todo.pyTasks are stored in a tasks.json file in the same directory as the script. This file is automatically created when you add your first task.
# Add multiple tasks
python todo.py add "Review pull requests"
python todo.py add "Update dependencies"
python todo.py add "Write unit tests"
# Check your tasks
python todo.py list
# Complete a task (remove it)
python todo.py remove 1
# Verify it's gone
python todo.py list.
├── todo.py # Main application script
├── tasks.json # Task storage (auto-generated)
├── README.md # This file
├── LICENSE # MIT License
├── CONTRIBUTING.md # Contribution guidelines
└── tests/ # Unit tests
└── test_todo.py # Test suite
python -m pytest tests/Or with coverage:
python -m pytest --cov=todo tests/This project follows PEP 8 style guidelines. Format your code using:
black todo.py
flake8 todo.pyContributions are welcome! Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.
This project is licensed under the MIT License - see the LICENSE file for details.
Potential features for future releases:
- Task priorities (high, medium, low)
- Due dates and reminders
- Task categories/tags
- Mark tasks as complete without removing them
- Search and filter functionality
- Export tasks to different formats (CSV, Markdown)
- Colorized output for better visibility
- Task history and undo functionality
If you encounter any issues or have questions, please open an issue on GitHub.
- Built with Python standard library only
- Inspired by simple task management needs
- Designed for developers who live in the terminal