A powerful yet easy-to-use todo TUI
- Simple, intuitive interface
- Mouse support: click & scroll
- Easy task search
- Customizable: theme, sorting, and more
- Common Keyboard shortcuts support for editing
- Vim-like commands available for convenience
- Install:
pip install todoism
- Run:
todoism
ortodo
- Update:
pip install todoism --upgrade
- Use: Invoke help message using command
:help
to see commonly used operations and commands
Note
Some terminals does not support mouse click or strike through effect.
Ptyxis (new default terminal for GNOME 47) does not fully support strikethrough effect. Ghostty does not has good support for bold text.
You can turn them off in preference panel (open with :pref
as specified in the help message)
When you first start todoism, you'll be prompted to record key combinations for text navigation.
- CTRL + LEFT: Move cursor one word left when editing text
- CTRL + RIGHT: Move cursor one word right when editing text
- CTRL + SHIFT + LEFT: Select text from cursor position to one word left
- CTRL + SHIFT + RIGHT: Select text from cursor position to one word right
- ALT + LEFT:
- Move cursor to the beginning of the text
- Jump to top task/category
- ALT + RIGHT:
- Move cursor to the end of the text
- Jump to bottom task/category
Note
Some terminals like Ghostty and kitty may have built-in key bindings that conflict with the above. You need to disable them before recording.
-
Run with docker in dev mode with test files (run in project root):
- Build docker image:
docker build -t ubuntu-todoism .
- Run
./test/todocker.sh
- Add
--profile
to enable profiling
- Build docker image:
-
Or run
python -m todoism --dev
directly (for using debugger)- Add
--profile
to enable profiling
- Add
Flag
--dev
and--profile
are not available in PyPI installation
-
Automated integration test (Experimental):
- Install
wmctrl
with your package manager (for auto window focus) - Run
python test/integration.py
in project root
- Add
--profile
to enable profiling
- Read the instructions printed in the terminal carefully
- Install
-
Normal Configuration and data files are located in
~/.todoism/
. Test ones are intest/.todoism
Caution
Todoism is currently under active development and backwards compatibility is not guaranteed as I refine features and data structures. Automatic data migration (tasks, categories, settings) between versions may not be fully supported. Please backup your data when needed. v1.21 and lower versions are perticularly deprecated!
Issues and PRs are welcome! Todoism is built from scratch with curses library. Please refer to the curses docs and how-to to get started.