taskglance is a small terminal task reminder CLI written in C++.
It keeps short-lived tasks visible without printing a large reminder before
every prompt. The canonical command is taskglance; shell hooks can optionally
install a short alias, but tg commonly collides with TopGit.
- CMake 3.24 or newer
- A C++20 compiler
- Linux, macOS, or Windows
Prompt hooks and completions are available for zsh, bash, and fish.
cmake -S . -B build
cmake --build build
ctest --test-dir buildcmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
cmake --install build --prefix ~/.localMake sure the install prefix is on PATH. For the example above:
export PATH="$HOME/.local/bin:$PATH"The install step also writes shell completions to:
share/zsh/site-functions/_taskglanceshare/bash-completion/completions/taskglanceshare/fish/vendor_completions.d/taskglance.fish
taskglance generates shell hooks from the installed binary. Add the lines for
your shell after taskglance is on PATH.
Zsh:
# Before compinit, if your prefix is not already in fpath.
fpath=("$HOME/.local/share/zsh/site-functions" $fpath)
# After taskglance is on PATH.
eval "$(taskglance hooks zsh)"Bash:
eval "$(taskglance hooks bash)"Fish:
taskglance hooks fish | sourceThe optional tg alias can be enabled in generated hooks:
eval "$(taskglance hooks zsh --alias tg)"taskglance add "Review deploy checklist"
taskglance list
taskglance done a1b2
taskglance prompt
taskglance prompt --forcePrompt hooks:
taskglance hooks zsh
taskglance hooks bash
taskglance hooks fish
taskglance hooks zsh --transientThe default prompt mode is compact, right-aligned, and rate-limited. Right
alignment uses an 80-column content block by default; set max_prompt_width to
choose a different width. prompt_align=left restores left-aligned rendering.
All prompt display styles respect max_prompt_tasks; extra active tasks are
summarized so box rendering stays small enough for repeated prompts.
prompt_mode=transient is an opt-in zsh-first integration target. The
transient hook wraps zsh accept-line, so install it only when that tradeoff is
acceptable.
Tasks use XDG paths by default:
- data:
$XDG_DATA_HOME/taskglance/tasks.tsv - config:
$XDG_CONFIG_HOME/taskglance/config - prompt state:
$XDG_STATE_HOME/taskglance/prompt.state
If the XDG variables are unset, standard home-directory fallbacks are used.
taskglance import zsh-todo-reminder
taskglance import zsh-todo-reminder ~/.config/todo-reminder/data.saveImport reads task text from the old save file and does not mutate it.
Inspired by kindjie/zsh-todo-reminder, itself forked from
AlexisBRENON/oh-my-zsh-reminder.
MIT. See LICENSE.