A modern, intuitive CLI todo application with beautiful terminal UI
Project description
Todo OIO
A modern, intuitive command-line todo application built with Python. Features beautiful terminal UI, priority levels, due dates, and more.
Installation
Install from PyPI:
pip install todo-oio
Or install from source:
git clone https://github.com/todo-oio/todo-oio.git
cd todo-oio
pip install -e .
Quick Start
- Initialize your todo list:
todo init
- Add your first todo:
todo add "Buy groceries"
- List all todos:
todo list
Commands
Initialize
todo init # Create a new todo list
todo init --force # Reinitialize (overwrites existing)
Add Tasks
todo add "Task description" # Basic task
todo add "Important task" --priority high # With priority
todo add "Meeting" --due tomorrow # With due date
todo add "Project" --priority high --due 2024-01-15 # Both
List Tasks
todo list # Show all tasks
todo list --status pending # Show only pending tasks
todo list --status completed # Show only completed tasks
todo list --priority high # Show only high priority tasks
todo list --sort priority # Sort by priority
todo list --sort due # Sort by due date
Manage Tasks
todo complete 1 # Mark task as completed
todo edit 1 # Edit task interactively
todo delete 1 # Delete task (with confirmation)
Features
- Beautiful terminal UI with colors and clean formatting
- Due dates with flexible parsing (today, tomorrow, YYYY-MM-DD, etc.)
- Priority levels (low, medium, high)
- Status tracking (pending, completed)
- Filtering and sorting options
- JSON storage in your home directory
- Interactive editing with confirmation prompts
- Overdue detection with visual indicators
- Individual todo details with
todo showcommand
Priority Levels
- High: Critical tasks that need immediate attention
- Medium: Important tasks with normal priority (default)
- Low: Tasks that can be done when time permits
Due Date Formats
Flexible date parsing supports:
today,tomorrownext week,next monthYYYY-MM-DD(e.g.,2024-01-15)MM/DD/YYYY(e.g.,01/15/2024)DD-MM-YYYY(e.g.,15-01-2024)
Data Storage
Your todos are stored in ~/.todo.json in your home directory. The file is automatically created when you run todo init.
Examples
# Initialize and add some tasks
todo init
todo add "Write project proposal" --priority high --due tomorrow
todo add "Review code" --priority medium
todo add "Update documentation" --priority low --due "next week"
# List tasks with different views
todo list # All tasks
todo list --status pending --sort priority # Pending tasks by priority
todo list --priority high # High priority tasks only
# Manage tasks
todo complete 1 # Mark first task as done
todo edit 2 # Edit second task
todo delete 3 # Delete third task
Command Reference
Core Commands
todo init- Initialize a new todo listtodo add <task>- Add a new todo itemtodo list- Show all todostodo show <id>- Show detailed todo informationtodo complete <id>- Mark todo as completedtodo edit <id>- Edit todo interactivelytodo delete <id>- Delete todo with confirmation
Options
--priority/-p- Set priority (low, medium, high)--due/-d- Set due date--status/-s- Filter by status (pending, completed, all)--sort- Sort by (created, priority, due)
Development
This project uses modern Python tooling:
- Framework: Typer for CLI
- UI: Rich for beautiful terminal output
- Testing: pytest
- Code Quality: black, isort, flake8, mypy
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT License - see the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file todo_oio-0.1.0.tar.gz.
File metadata
- Download URL: todo_oio-0.1.0.tar.gz
- Upload date:
- Size: 12.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
27cd31e09fd0eb9d3d65c7fa651a5384b741039651782ade3fd53306ded63006
|
|
| MD5 |
f9deb1637ab58b6a57dcb8b794ded777
|
|
| BLAKE2b-256 |
7427f20fd331c1e8702336ae453d39f67a5d831c2dcbe7e226f94a6aafb2bcc1
|
File details
Details for the file todo_oio-0.1.0-py3-none-any.whl.
File metadata
- Download URL: todo_oio-0.1.0-py3-none-any.whl
- Upload date:
- Size: 16.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
46c40e1f662eca2a2442d2afe1d49449cc2158a65981ec3d6d06f63b90c572ca
|
|
| MD5 |
249944b382679289db59b8421f8b6690
|
|
| BLAKE2b-256 |
36507147b0e7318679ae14cb0b0301618ff6276419299c9fe2f1f2acbedd3ed1
|