Skip to content

prime-run/togo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ToGo

A fast and simple terminal-based to-do manager.

main-togo-screen-shot

License GitHub contributors Stars Forks Issues

Features

  • 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.

Installation

ArchLinux

togo is pushed to arch AUR with zero dependencies.

paru -S togo

pre-built binaries (recommended)

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 Cli

go install github.com/prime-run/togo@latest

Make sure $GOPATH/bin is in your PATH to access the installed binary.

build from source

# 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

Usage

To add a task:

togo add "Task description"
# or without quotes its stdin!
togo add Call the client about project scope

Managing Your Tasks

Togo provides two primary modes of operation:

1. Interactive Mode

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

2. Command-Line Operations

Togo offers flexible command syntax with three usage patterns:

a) Direct selection by partial name
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.

b) Interactive selection list
togo toggle

Opens a selection list where you can choose from available tasks:

main-togo-screen-shot

As you type, Togo searches through your tasks and filters the results.

c) Shell completion integration

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.

Available Commands

  • togo add "Task description" - Add a new task
  • togo toggle [task] - Toggle completion status
  • togo archive [task] - Archive a completed task
  • togo unarchive [task] - Restore an archived task
  • togo delete [task] - Remove a task permanently
  • togo list [flags] - View tasks (--all, --archived)

Features In Depth

Shell Completion

Enabling shell completion allows for tab-completion of commands and task names, improving efficiency.

Zsh

# 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

Bash

# 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

Fish

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.

Built With 🔧

Go Cobra Bubble Tea Lip Gloss

License

This project is licensed under MIT - see the LICENSE file for details.

About

A fast, simple and beautiful terminal-based todo manager built in go

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 6