Skip to main content

todoism

A powerful yet easy-to-use todo TUI

Screenshots

screenshot screenshot-help

Highlights

  • 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 and use

  • Install: pip install todoism
  • Run: todoism or todo
  • 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)

Keycode recording

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.

Develop

  • Run with docker in dev mode with test files (run in project root):

    1. Build docker image: docker build -t ubuntu-todoism .
    2. Run ./test/todocker.sh
    • Add --profile to enable profiling
  • Or run python -m todoism --dev directly (for using debugger)

    • Add --profile to enable profiling

Flag --dev and --profile are not available in PyPI installation

  • Automated integration test (Experimental):

    1. Install wmctrl with your package manager (for auto window focus)
    2. Run python test/integration.py in project root
    • Add --profile to enable profiling
    1. Read the instructions printed in the terminal carefully
  • Normal Configuration and data files are located in ~/.todoism/. Test ones are in test/.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!

Contribute

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.

Metadata

Release files for todoism 1.21.9.post3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for todoism 1.21.9.post3
File Size Uploaded
todoism-1.21.9.post3.tar.gz 38.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for todoism 1.21.9.post3
File Interpreter ABI Platform
todoism-1.21.9.post3-py3-none-any.whl Python 3 none any Details

Total release size: 81.2 kB

Release files / todoism-1.21.9.post3.tar.gz

Download URL todoism-1.21.9.post3.tar.gz
Size 38.8 kB
Tags Source
SHA-256 checksum
How to use checksums
21f3ddcf3962bf47771a97fd3cdc03c38549b958841532837f0944449799fe35
BLAKE2b-256 checksum
How to use checksums
870c7afbc4b011a057c6d4bd3659b9944d85abd0abd36e5c100e0e910f421fd4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.2

Release files / todoism-1.21.9.post3-py3-none-any.whl

Download URL todoism-1.21.9.post3-py3-none-any.whl
Size 42.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
694e538e3ee696437aa27f7b96e2bdd2443bd8f858530e2243143ebda53d6c96
BLAKE2b-256 checksum
How to use checksums
de0d5cfa34a860d1aaaddb1a5ad7adfecc1270aa38e6d6f630b5eb46c54d5990
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.2

Release history Release notifications | RSS feed

This release

1.21.9.post3 This release

2 release files

1.21.9

2 release files

1.21.8

2 release files

1.21.6

2 release files

1.21.5

2 release files

1.21.4

2 release files

1.21.3

2 release files

1.21

2 release files

1.20

2 release files

1.19

2 release files

1.18

2 release files

1.17

2 release files

1.16

2 release files

1.15

2 release files

1.14

2 release files

1.13

2 release files

1.12

2 release files

1.11

2 release files

1.10

2 release files

1.9

2 release files

1.8

2 release files

1.7

2 release files

1.6

2 release files

1.5

2 release files

1.4

2 release files

1.3

2 release files

1.2

2 release files

1.1

2 release files

1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page