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

macOS (Intel)
1.76 MB

todo-v1.0.2-darwin-amd64.tar.gz

Download
macOS (Apple Silicon)
1.68 MB

todo-v1.0.2-darwin-arm64.tar.gz

Download
Linux (AMD64)
1.69 MB

todo-v1.0.2-linux-amd64.tar.gz

Download
Linux (ARM64)
1.61 MB

todo-v1.0.2-linux-arm64.tar.gz

Download
Windows (AMD64)
1.77 MB

todo-v1.0.2-windows-amd64.zip

Download
Windows (ARM64)
1.65 MB

todo-v1.0.2-windows-arm64.zip

Download

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.