A fast, minimalist to‑do manager for the terminal.
It ships as a single Go binary and supports color themes and grouped output.
- Simple commands for daily use (see
todo helpfor the full list). - Color output with themes:
classic,neon,mono. - Force/disable colors regardless of TTY detection.
- Group items by pending/done in the list view.
- Clean exit codes (non‑zero on error).
Commands are routed by an internal CLI runner; run
todo helpto see what’s available in your build (e.g.,add,list,done,rm,edit, …).
From source (recommended during development):
# If the main package is at the repo root:
go build -o todo .
# If the main package lives under cmd/todo:
go build -o todo ./cmd/todoOptionally, with Go modules and a public repo path:
go install github.com/idilsaglam/todo/cmd/todo@latesttodo [global flags] <command> [args...]
Global flags (apply to every subcommand):
-color force color output even when not a TTY
-no-color disable color output
-theme string ui theme: classic|neon|mono (default "classic")
-group group output by pending/done
Show help:
todo helpThe exact subcommands depend on
internal/cli. These are common patterns.
Add a task:
todo add "Buy coffee beans ☕"List tasks:
todo list
# or grouped view:
todo -group listMark as done (by ID):
todo done 3Remove a task:
todo rm 3Edit a task:
todo edit 3 "Buy single‑origin beans"Switch theme:
todo -theme neon list
todo -no-color list # disable colors
todo -color list # force colors even when piped.
├─ internal/
│ ├─ cli/ # command routing, argument parsing, help text
│ └─ ui/ # theming, color forcing, formatting
└─ main.go # root flags → ui config → cli.Run
0— success- non‑zero — an error occurred (the CLI prints the message;
mainexits with that code)
