Skip to main content

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

  1. Initialize your todo list:
todo init
  1. Add your first todo:
todo add "Buy groceries"
  1. 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 show command

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, tomorrow
  • next week, next month
  • YYYY-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 list
  • todo add <task> - Add a new todo item
  • todo list - Show all todos
  • todo show <id> - Show detailed todo information
  • todo complete <id> - Mark todo as completed
  • todo edit <id> - Edit todo interactively
  • todo 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

todo_oio-0.1.0.tar.gz (12.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

todo_oio-0.1.0-py3-none-any.whl (16.9 kB view details)

Uploaded Python 3

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

Hashes for todo_oio-0.1.0.tar.gz
Algorithm Hash digest
SHA256 27cd31e09fd0eb9d3d65c7fa651a5384b741039651782ade3fd53306ded63006
MD5 f9deb1637ab58b6a57dcb8b794ded777
BLAKE2b-256 7427f20fd331c1e8702336ae453d39f67a5d831c2dcbe7e226f94a6aafb2bcc1

See more details on using hashes here.

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

Hashes for todo_oio-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 46c40e1f662eca2a2442d2afe1d49449cc2158a65981ec3d6d06f63b90c572ca
MD5 249944b382679289db59b8421f8b6690
BLAKE2b-256 36507147b0e7318679ae14cb0b0301618ff6276419299c9fe2f1f2acbedd3ed1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page