A zero-config, project-local TUI task tracker that stores tasks in a markdown file.
go install github.com/macone/todo-cli/cmd/todo@latestOr build from source:
git clone https://github.com/macone/todo-cli.git
cd todo-cli
make build
# Binary at ./bin/todo# Create a todo.md in your project
todo init
# Add tasks
todo add "Set up CI pipeline"
todo add "Write tests"
# Launch the TUI
todo| Command | Description |
|---|---|
todo |
Launch the TUI (default) |
todo init |
Create an empty todo.md |
todo add "title" |
Add a task to the Backlog |
todo list |
List all tasks |
todo done <n> |
Mark task #n as done |
| Key | Action |
|---|---|
j / k |
Move down / up |
J / K |
Jump to next / previous section |
| Key | Action |
|---|---|
a |
Add new task |
e |
Edit task title |
d |
Toggle done |
x |
Delete task (with confirmation) |
s |
Cycle status (todo / in-progress / done) |
p |
Cycle priority (none / low / medium / high) |
t |
Add tag to task |
u |
Undo last action |
| Key | Action |
|---|---|
/ |
Search by title (live filtering) |
f |
Filter by tag |
1 |
Show all tasks |
2 |
Show active only (todo + in-progress) |
3 |
Show done only |
| Key | Action |
|---|---|
? |
Toggle help overlay |
q |
Quit |
Tasks are stored in todo.md using GitHub-Flavored Markdown checkbox syntax:
# My Project
## Backlog
- [ ] Set up CI pipeline priority:high +devops
- [ ] Write README priority:low +docs
## In Progress
- [-] Design TUI layout priority:high +design
## Done
- [x] Initialize Go module +setup- [ ] Title priority:high +tag @context due:2026-03-01
- [ ]todo,- [-]in-progress,- [x]donepriority:high|medium|lowsets priority+tagadds a tag@contextadds a context tagdue:YYYY-MM-DDsets a due date
Configuration is loaded from .todo.toml (project-local) or ~/.config/todo/config.toml (global). Local settings override global.
# File to use for tasks (default: "todo.md")
file = "todo.md"
[sections]
todo = "Backlog"
in_progress = "In Progress"
done = "Done"
[ui]
show_done = truemake build # Build binary
make test # Run tests
make lint # Run go vet
make clean # Remove build artifacts
make release # Cross-compile for all platformsMIT