- CLI & TUI Interfaces: cli for single task operations and an interactive TUI for bulk operations and list view.
- Vim Keybinds: a handful of vim actions built-in the TUI (a few vim actions will be added soon).
- Fuzzy Search & Filtering: Find tasks quickly with partial name matching.
- Tab Completion: Shell Completion with fuzz support built-in the completion script.
togo is pushed to arch AUR with zero dependencies.
paru -S togo
Download the latest pre-built binaries from the Releases page.
Linux(x86_64)
wget https://github.com/prime-run/togo/releases/download/v1.0.5/togo_1.0.5_linux_amd64.tar.gz
mkdir -p ~/.local/bin
tar -xzf togo_*.tar.gz -C ~/.local/bin/togo
macOS (Apple Silicon arm64):
wget https://github.com/prime-run/togo/releases/download/v1.0.5/togo_1.0.5_darwin_arm64.tar.gz
mkdir -p ~/.local/bin
tar -xzf togo_*.tar.gz -C ~/.local/bin/togo
Note
Don't forget to set PATH environment variable.
export PATH="$HOME/.local/bin:$PATH"
go install github.com/prime-run/togo@latest
Make sure
$GOPATH/bin
is in your PATH to access the installed binary.
# Clone the repository
git clone https://github.com/prime-run/togo.git
cd togo
make
# And follow the prompts
All Make installation methods should setup shell completion out of the box.
In case your shell didn't get detected, you can run togo completion --help
To add a task:
togo add "Task description"
# or without quotes its stdin!
togo add Call the client about project scope
Togo provides two primary modes of operation:
The TUI
to work with your todos visually and allows for bulk actions:
togo
# or
togo list # Active todos only
togo list --all # All todos
togo list --archived # Archived todos only
Togo offers flexible command syntax with three usage patterns:
togo toggle meeting
If only one task contains "meeting", it executes immediately - no selection needed. If multiple tasks match (e.g., "team meeting" and "client meeting"), Togo automatically opens the selection list so you can choose which one you meant.
togo toggle
Opens a selection list where you can choose from available tasks:
As you type, Togo searches through your tasks and filters the results.
If you've configured shell completion (see below), you can use tab-completion:
togo toggle [TAB]
Your shell will present available tasks. Type a few letters to filter by name:
togo toggle me[TAB]
Shell will show only tasks containing "me" - perfect for quick selection.
Tip
This really speeds task managment up since the fuzz
is supported by the completion script.
e.g.take Auto ***snapshot*** /boot ...
as task that needs to be set as completed
,
Just running togo toggle snap
would toggle it! and if snap
matches more than one task,
you'd be prompted to select from matches.
togo add "Task description"
- Add a new tasktogo toggle [task]
- Toggle completion statustogo archive [task]
- Archive a completed tasktogo unarchive [task]
- Restore an archived tasktogo delete [task]
- Remove a task permanentlytogo list [flags]
- View tasks (--all, --archived)
Enabling shell completion allows for tab-completion of commands and task names, improving efficiency.
# 1. Create completion directory
mkdir -p ~/.zsh/completion
echo "fpath=(~/.zsh/completion \$fpath)" >> ~/.zshrc
# 2. Enable completions
echo "autoload -Uz compinit && compinit" >> ~/.zshrc
# 3. apply Togo completion
togo completion zsh > ~/.zsh/completion/_togo
source ~/.zshrc
# 1. Ensure completion is sourced
echo "[ -r /usr/share/bash-completion/bash_completion ] && . /usr/share/bash-completion/bash_completion" >> ~/.bashrc
source ~/.bashrc
# 2. Install Togo completion
togo completion bash > ~/.bash_completion
source ~/.bash_completion
mkdir -p ~/.config/fish/completions
togo completion fish > ~/.config/fish/completions/togo.fish
All the taks are stored in a JSON file under at
~/.togo/todos.json
.
This project is licensed under MIT - see the LICENSE file for details.