TODO/Task management program written in Go, featuring a Terminal User Interface (TUI).
tigo-showcase.mp4
- Store Tasks Locally: Keeps tasks as
TASK.mdfiles within structured directories (YYYYMMDD-HHmmss). Portable, grep-able, and git-friendly. - TUI interface: Uses
awesome-gocui/gocuifor a responsive and intuitive three-panel layout (tasks list, details, logs). - Git Integration: Tracks session changes and provides a commit dialog with auto-filled messages.
- Git Blame: Per-line metadata and description blame via
git blame, accessible with thebkeybinding from any view. - Jump History: Every task selection is recorded in a history buffer.
Use
[and]to go back and forward through your navigation history. - Hyperlinks: Task references (
TASK(20260601-123456)), URLs, file paths, and tags are recognized and clickable in the details view. - Relative Dates: Supports "tomorrow", "next week", "3 days", "2 months", etc. when setting due dates.
- Search: RegEx-powered search across title, description, and tags. Filter by tag by clicking on tag hyperlinks.
- Clipboard: Yank individual detail fields or entire lines to the clipboard.
- Configurable: YAML config with per-directory overrides for sort order, default priority, frame style, showing closed tasks, and tag sorting.
Pre-built binaries and packages are available for download from the releases page. Supported platforms:
| Platform | amd64 | arm64 | arm |
|---|---|---|---|
| Linux | ✓ | ✓ | ✓ |
| Windows | ✓ | ✓ | |
| macOS | ✓ | ✓ | |
| FreeBSD | ✓ | ✓ | ✓ |
| NetBSD | ✓ | ✓ | ✓ |
| Android | ✓ |
Download the binary for your platform, rename it to tigo, place it somewhere
in your PATH, and use it wherever you want.
If you have Go installed:
go install github.com/MPCodeWriter21/Tigo/cmd/tigo@latestgit clone https://github.com/MPCodeWriter21/Tigo.git
cd Tigo
go install ./cmd/tigo
# Directly run without installing
go run ./cmd/tigotigo [root]
By default tigo looks for a `.tigo` directory in the current working directory
and use that as the root directory of tasks. If `.tigo` does not exist, it will
use `$HOME/.local/share/tigo`.
-h --help Show this help and exit
-v --version Show the version and exit
--default-config Print the default configuration and exit
--user-config-path Print the path to the user configuration and exit
-c <command> [...] Run a CLI command (use 'help' for available commands)
q/Ctrl+C: Quit Tigo?: Show the help dialogn: Create a new taske: Edit the selected taskd: Delete the selected taskH: Hide/show CLOSED tasksj/<arrow-down>: Cursor down in the task listk/<arrow-up>: Cursor up in the task listh/<arrow-left>: Move to the previous selectable item / focus tasks listl/<arrow-right>: Move to the next selectable item / details viewg/G: Jump to the top/bottomL: Focus the logs viewb: Show blame summary for the selected task or linep: Push local commits to the remoteP: Pull commits from the remote/: Search tasks by title, description or tags (supports RegEx)s: Sort tasks by priority, due date, ID or title[/]: Go back/forward in task navigation historyy: Yank (copy) the selected task's content to the clipboardY: Yank the whole current lineo: Open the tasks containing directory in the file explorerO: Open the selected task's TASK.md in the default editorr: Refresh the task list (useful if tasks are modified outside Tigo)<alt+c>: Open local Tigo config in the default editor<alt+r>: Reload the Tigo configuration from disk`: Show the current Tigo directory<space>: Toggle task status (OPEN/CLOSED) / Follow hyperlink<tab>: Switch between different views (e.g., task list, task details)<enter>: Submit dialogs / Go to the selected task's details<esc>: Cancel dialogs / Clear search / Exit task details view
Tigo includes a command-line interface (CLI) mode for scripting and quick operations.
Use the -c flag followed by a command:
tigo -c help Show available commands
tigo -c help <cmd> Show detailed help for a command
tigo -c create <title> Create a new task
tigo -c list List open tasks
tigo -c show <id> Show task details
tigo -c edit <id> Edit a task
tigo -c delete <id> Delete a task
tigo -c open <id> Set task status to OPEN
tigo -c close <id> Set task status to CLOSED
tigo -c tags Show task counts per tag
tigo -c top <n> Show top n tasks by priority
tigo -c next Show the next task due
tigo -c overdue Show overdue tasks
tigo -c search <query> Search tasks by title/description/tags
tigo -c stats Show task statistics
Flags like --status, --priority, --tags, --due, --description, --sort,
--limit, --priority-min, --priority-max, and --tag are available on
applicable commands.
Use tigo -c help <cmd> for full usage details.
Each task directory contains a TASK.md containing task metadata and a description.
# <title-of-the-task>
- STATUS: OPEN
- PRIORITY: 70
[- TAGS: bug, UI]
[- DUE: 2026-05-11]
[description-of-the-task]STATUS can be OPEN, CLOSED, or any custom workflow state. PRIORITY is an
integer (higher = more important).
DUE accepts absolute dates (2026-05-11, 2026-05-11 23:59) but you can enter
relative expressions (tomorrow, next week, 3 days, 2 months) in the TUI.
Tigo looks for config in this order:
$XDG_CONFIG_HOME/tigo/config.yaml(or~/.config/tigo/config.yaml).tigo/config.yamlin the current working directory (overrides user config for that directory)$HOME/.local/share/tigo/config.yaml
sort_by: id # Sort tasks by id, priority, due-date, or title
default_priority: 50 # The default priority for new tasks
frame_style: round # The style of the frames (round, double, single)
show_closed: false # Whether to show closed tasks in the list by default
due_color_enabled: true # Whether to color the due date based on how close it is
tag_sort_order: none # Sort tags: none, alphabetical, reverse-alphabetical, length, reverse-lengthTigo tracks session changes (create, edit, delete, toggle) and autofills the commit dialog. The dialog has three panels: a file list, commit subject, and description body. Tab cycles through them.
At startup, Tigo fetches from the remote for all git repos. The status bar
shows ↓N↑M when ahead/behind, or push/pull during background operations.
p pulls, P pushes.
Press b for git blame: task-level summary in the tasks view, per-line blame
in the details view.
Git commands are logged in the logs view (L to focus, C to clear).
Contributions are welcome! Feel free to open issues and submit pull requests. If you find Tigo useful, consider starring the repo on GitHub.