A beautiful, interactive terminal todo application with TUI and CLI interfaces
Project description
Toony 2do - Modern Terminal Todo Application
A beautiful, interactive command-line todo application built with Python, featuring both a Text User Interface (TUI) and traditional CLI commands.
Features
- Interactive TUI - Full-featured text-based user interface with keyboard navigation
- CLI Commands - Quick task management from the command line
- ASCII Art Banner - Beautiful pyfiglet-powered "Toony 2do" branding
- Rich Formatting - Colorful output with rich tables and formatting
- Keyboard Shortcuts - Efficient navigation and task management
- Task Statistics - Real-time progress tracking
Installation
From PyPI
pip install toony-2do
From Source
git clone <repository-url>
cd phase-1-cli
pip install -e .
Usage
Interactive TUI Mode
Launch the full interactive interface:
toony-2do ui
# or simply
toony-2do
Keyboard Shortcuts:
a- Add new taske- Edit selected taskd- Delete selected taskspace- Toggle task completionq- Quit application- Arrow keys - Navigate tasks
CLI Commands
Quick task management from the command line:
# Add a new task
toony-2do add "Buy groceries" --desc "Milk, eggs, bread"
todo add "Call doctor"
# List all tasks
toony-2do list
todo list --pending # Show only pending tasks
todo list --completed # Show only completed tasks
# Mark task as complete
toony-2do complete 1
# Delete a task
toony-2do delete 2 --yes # Skip confirmation
# Show statistics
toony-2do stats
Features in Detail
Text User Interface (TUI)
The TUI provides a rich, interactive experience with:
- ASCII Art Header - Eye-catching "Toony 2do" banner
- Live Statistics Panel - Shows total, pending, completed tasks and progress percentage
- Data Table - Clean display of all tasks with status indicators
- Modal Dialogs - User-friendly forms for adding and editing tasks
- Confirmation Dialogs - Safe deletion with confirmation prompts
CLI Interface
Fast command-line operations for:
- Quick task addition without launching the TUI
- Listing tasks with filtering options
- Batch operations and scripting support
- Integration with shell scripts and automation
Task Management
- Task Properties: ID, title, description, completion status, creation timestamp
- Validation: Prevents empty task titles
- Statistics: Automatic calculation of totals, pending, completed, and progress percentage
Technology Stack
- Textual - Modern TUI framework for rich terminal interfaces
- Typer - Beautiful CLI with automatic help generation
- Rich - Rich text and beautiful formatting in the terminal
- Pyfiglet - ASCII art text generation
- Pydantic - Data validation and settings management
Architecture
The application follows clean architecture principles:
- Data Models - Business logic decoupled from UI (
Task,TaskManager) - UI Components - Reusable screens and dialogs (
AddTaskScreen,EditTaskScreen,ConfirmDialog) - CLI Commands - Separate Typer commands for command-line operations
- Main Application - Textual app with reactive UI updates
Development
Setup Development Environment
# Clone the repository
git clone <repository-url>
cd phase-1-cli
# Install dependencies with uv (recommended)
uv sync
# Or with pip
pip install -e ".[dev]"
Project Structure
phase-1-cli/
├── src/
│ └── phase_1_cli/
│ └── main.py # Main application code
├── pyproject.toml # Project configuration
└── README.md # This file
Requirements
- Python >= 3.11
- Dependencies:
- pydantic >= 2.12.5
- pyfiglet >= 1.0.2
- rich >= 14.2.0
- textual >= 6.11.0
- typer >= 0.15.1
License
This project is licensed under the MIT License.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Author
Marjan Ahmed
- Email: marjan.ahmed08@yahoo.com
Changelog
Version 0.1.0 (Initial Release)
- Interactive TUI with full keyboard navigation
- CLI commands for quick task management
- ASCII art banners with pyfiglet
- Rich table formatting for task lists
- Task statistics and progress tracking
- Add, edit, delete, and toggle tasks
- Confirmation dialogs for destructive actions
- Demo tasks for first-time users
Roadmap
Future enhancements planned:
- Task persistence (JSON/SQLite storage)
- Task priorities and categories
- Due dates and reminders
- Search and filter functionality
- Export tasks to various formats
- Task notes and attachments
- Multi-user support
- Configuration file support
- Themes and customization
Support
For bug reports and feature requests, please use the GitHub issue tracker.
Made with Python and love for the terminal.
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
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 toony_2do-0.1.0.tar.gz.
File metadata
- Download URL: toony_2do-0.1.0.tar.gz
- Upload date:
- Size: 8.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
95b8e9172306052e1f95a69238372caeff3d9314927c56af9a0c591fbb57cbc0
|
|
| MD5 |
83daed6d9589b4e119b1f282a462bd15
|
|
| BLAKE2b-256 |
5b6c0d01765b3af120ca64a20dba089ff374f182d2ea3c576a25ea0f1b24232a
|
File details
Details for the file toony_2do-0.1.0-py3-none-any.whl.
File metadata
- Download URL: toony_2do-0.1.0-py3-none-any.whl
- Upload date:
- Size: 8.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
96fe23dd78a134a179f82e8196ef134898e51e5f47b6a7600afdad73b6cd8c71
|
|
| MD5 |
7c8d8a79c899e00366ec82461b35721c
|
|
| BLAKE2b-256 |
85b4c58f7476f9627de2ea19759a5c8c4561260f83673a6156b80cd87bb2c787
|