A powerful CLI Todo App with search, tagging, priority, and due date support
Project description
Todo CLI - A Powerful Command-Line Todo Manager
A feature-rich command-line todo application with support for priorities, tags, due dates, and advanced filtering capabilities.
Features
- ✅ Task Management: Add, edit, delete, and mark tasks as complete
- 🏷️ Tagging System: Organize tasks with custom tags
- ⚡ Priority Levels: Set task priorities (low, medium, high)
- 📅 Due Dates: Set and track task deadlines
- 🔍 Advanced Search: Filter tasks by status, tags, or keywords
- 💾 Persistent Storage: Tasks are saved automatically
- 🎨 Clean Interface: Beautiful command-line output
Installation
From PyPI (Recommended)
pip install todo-cli
From Source
git clone https://github.com/rajat-gith/todo-cli.git
cd todo-cli
pip install -e .
Quick Start
# Add your first task
todo add "Buy groceries" --priority high --tag shopping --due 2024-12-25
# List all tasks
todo list
# Mark a task as done
todo done 1
# Get help
todo --help
Command Reference
1. Adding Tasks
Add new todo tasks with optional metadata:
todo add <task_description> [OPTIONS]
Options:
--priority: Set task priority (low,medium,high) - Default:low--tag: Add a tag to group related tasks--due: Set due date in YYYY-MM-DD format
Examples:
# Basic task
todo add "Complete project report"
# Task with priority
todo add "Call dentist" --priority high
# Task with tag
todo add "Buy milk" --tag shopping
# Task with due date
todo add "Submit tax returns" --due 2024-04-15
# Task with all options
todo add "Prepare presentation" --priority medium --tag work --due 2024-12-20
2. Listing Tasks
Display tasks with various filtering options:
todo list [OPTIONS]
Options:
--filter: Filter by status (all,done,pending) - Default:all--tag: Show only tasks with specific tag--search: Search for keyword in task descriptions
Examples:
# Show all tasks
todo list
# Show only pending tasks
todo list --filter pending
# Show only completed tasks
todo list --filter done
# Show tasks with specific tag
todo list --tag work
# Search for tasks containing keyword
todo list --search "project"
# Combine filters
todo list --filter pending --tag shopping
3. Marking Tasks as Done
Mark tasks as completed by their index number:
todo done <index>
Examples:
# Mark task #1 as done
todo done 1
# Mark task #5 as done
todo done 5
4. Deleting Tasks
Remove tasks permanently by their index number:
todo delete <index>
Examples:
# Delete task #2
todo delete 2
# Delete task #10
todo delete 10
5. Editing Tasks
Modify existing task descriptions:
todo edit <index> <new_task_description>
Examples:
# Edit task #3
todo edit 3 "Updated task description"
# Edit task #1 with new content
todo edit 1 "Buy organic groceries from farmer's market"
Usage Workflows
Daily Task Management
# Morning routine - check pending tasks
todo list --filter pending
# Add new tasks as they come up
todo add "Review pull requests" --priority high --tag work
todo add "Pick up dry cleaning" --tag errands
# Mark completed tasks
todo done 1
todo done 3
# Evening review - see what's left
todo list --filter pending
Project Organization
# Add project-related tasks
todo add "Design database schema" --tag project-x --priority high
todo add "Write API documentation" --tag project-x --priority medium
todo add "Set up CI/CD pipeline" --tag project-x --priority low
# View all project tasks
todo list --tag project-x
# Track progress
todo list --tag project-x --filter done
Priority-Based Workflow
# Add tasks with different priorities
todo add "Fix critical bug" --priority high
todo add "Update documentation" --priority medium
todo add "Organize desktop" --priority low
# Focus on high-priority items first
todo list --search "high"
# Handle medium priority tasks
todo list --search "medium"
Tips and Best Practices
1. Effective Tagging
- Use consistent tag names (e.g.,
work,personal,shopping) - Keep tags short and descriptive
- Use project names as tags for better organization
# Good tagging examples
todo add "Team standup" --tag work
todo add "Grocery shopping" --tag personal
todo add "Book flight" --tag vacation-planning
2. Priority Management
- High: Urgent and important tasks
- Medium: Important but not urgent
- Low: Nice-to-have tasks
# Critical deadline
todo add "Submit proposal" --priority high --due 2024-12-31
# Important but flexible
todo add "Update resume" --priority medium
# When you have time
todo add "Organize photos" --priority low
3. Due Date Format
Always use YYYY-MM-DD format for due dates:
# Correct format
todo add "Pay rent" --due 2024-12-01
# This will work for any date
todo add "Birthday party" --due 2024-12-25
4. Search and Filter Combinations
Combine different filters for powerful task management:
# Pending work tasks
todo list --filter pending --tag work
# High priority tasks due soon
todo list --search "high"
# Shopping list items
todo list --tag shopping --filter pending
Task Index Numbers
- Tasks are automatically assigned index numbers starting from 1
- Index numbers may change when tasks are deleted
- Always check current index numbers with
todo listbefore usingdone,delete, oreditcommands
Error Handling
The application handles common errors gracefully:
- Invalid index numbers will show an error message
- Invalid date formats will be rejected
- Invalid priority levels will show available options
Configuration
The application stores tasks in a local file. The storage location depends on your operating system:
- Linux/macOS:
~/.local/share/todo-cli/ - Windows:
%APPDATA%\todo-cli\
License
This project is licensed under the MIT License - see the LICENSE file for details.
Support
If you encounter any issues or have questions:
Happy task managing! 🚀
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 todos_cmd-0.1.1.tar.gz.
File metadata
- Download URL: todos_cmd-0.1.1.tar.gz
- Upload date:
- Size: 6.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b82e806b2282abcbdb8be3ae47de4507283c1db0072022f2161112407e88c905
|
|
| MD5 |
2295f8667ed81d9dc34c7195a28ab4a9
|
|
| BLAKE2b-256 |
f556af1d43922663305127bdfe86d7920130298bd42be1b2e242c85cf3c57d57
|
File details
Details for the file todos_cmd-0.1.1-py3-none-any.whl.
File metadata
- Download URL: todos_cmd-0.1.1-py3-none-any.whl
- Upload date:
- Size: 7.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cded45710d0f8090977cf4a760c24d5850d41dc8b19b8fe6f3e9f20c81b68a12
|
|
| MD5 |
ab2201be93d947e2c8d18f3172cba414
|
|
| BLAKE2b-256 |
ee14b56283747beba678b30f4e9a091da45eba958edff34a2257b92df7a85587
|