Todo CLI
A powerful, feature-rich command-line todo application built with Go
Fast & Efficient
Lightning-fast task management with minimal resource usage
Color-Coded
Beautiful, color-coded output for better task visualization
Privacy First
All data stored locally, no network communication
Installation
Option 1: Install via Homebrew (macOS)
The easiest way to install on macOS:
# Add the tap
brew tap gourangadassamrat/tap
# Install the app
brew install todo-cli
That's it!
You can now run the app using the
todo
command.
Option 2: Manual Installation
Step 1: Download the Application
Download the latest build for your OS from the Release page
Platform Notes
- Linux ARM64: For Raspberry Pi, AWS Graviton, and other ARM-based Linux systems
- Windows ARM64: For ARM-based Windows devices (Surface Pro X, etc.)
Step 2: Test It Works
./todo --help
You should see the help menu with all available commands.
Step 3 (Optional): Install Globally
# Linux/macOS
sudo cp todo /usr/local/bin/
# Windows
# Copy todo.exe to a directory in your PATH
Pro Tip
Enable bash completion for better experience. Copy the
todo-completion.bash
script to
/etc/bash_completion.d/
Quick Start
Add your first task
todo add -t "Buy groceries" -p high
List all tasks
todo list
Try interactive mode
todo interactive
Features
Task Management
- Add, edit, and delete tasks
- Mark tasks as complete/incomplete
- Set priorities (low, medium, high)
Filtering & Sorting
- Filter by status, priority, project
- Sort by date, priority, or title
- Search by keyword
Organization
- Set due dates and deadlines
- Categorize with tags and projects
- Automatic overdue detection
Data & Security
- Local JSON/YAML storage
- Backup and restore functionality
- No network communication
Commands Reference
add
Add a new task to your todo list
Aliases:
a,
new,
create
Usage:
todo add -t "Task title" [OPTIONS]
Flags:
| Flag | Description | Required |
|---|---|---|
-t, --title |
Task title | Yes |
-d, --description |
Task description | No |
-p, --priority |
Priority (low, medium, high) | No |
--project |
Project name | No |
--tags |
Comma-separated tags | No |
--due |
Due date (YYYY-MM-DD) | No |
Examples:
# Simple task
todo add -t "Buy groceries"
# Task with all options
todo add -t "Complete report" \
-d "Q1 financial report" \
-p high \
--project "Finance" \
--tags "urgent,deadline" \
--due "2024-03-20"
list
Display all tasks with optional filtering and sorting
Aliases:
ls,
l
Usage:
todo list [OPTIONS]
Examples:
# List all tasks
todo list
# Filter by status
todo list --status pending
todo list --status completed
# Filter and sort
todo list --priority high --sort date
Architecture
Todo CLI follows clean architecture principles with clear separation of concerns. For detailed architecture documentation, see ARCHITECTURE.md
Key Components
- Command Layer: CLI interface built with Cobra
- Business Logic: Task models, filtering, and sorting
- Storage Layer: Interface-based JSON/YAML persistence
- UI Components: Color-coded terminal output
Security
Security First
Todo CLI is designed with security and privacy as top priorities.
Protected ✓
- Path traversal attacks
- Command injection
- Network-based attacks
- Input validation
User Responsibility
- Enable full-disk encryption
- Secure backup storage
- Verify binary checksums
- Keep system updated
For detailed security information, see SECURITY.md
Contributing
We welcome contributions from the community! Whether it's bug fixes, new features, or documentation improvements.