Skip to main content

TODOTui

Description

TODO Tui is a terminal UI for managing TODOs both globally and for a project. It is designed with simplicity in mind and for the use of a single developer on a single machine.

There is a simple configuration for managing the size of the TODO box and when integrating TODO Tui with direnv you can produce an automatic todo list whenever you CD into a project. TODO Tui has a handy todo setup command for setting up direnv for a project.

Installation

pip install todotui

Examples

List todos locally, if in a git project, or global.

❯ todo list
+----+--------------------------------------------------------------------------------------------+--------------+-------------+
| ID |                                           Title                                            |  Created at  |  Completed  |
+----+--------------------------------------------------------------------------------------------+--------------+-------------+
| 1  | Fix the auto command                                                                       | 26/01 19:49  |      ❌     |
| 2  | Add more databases                                                                         | 26/01 19:49  |      ❌     |
+----+--------------------------------------------------------------------------------------------+--------------+-------------+

Add a new todo

❯ todo add "Book a strategy meeting"
Created task with id: 3

❯ todo list
+----+--------------------------------------------------------------------------------------------+--------------+-------------+
| ID |                                           Title                                            |  Created at  |  Completed  |
+----+--------------------------------------------------------------------------------------------+--------------+-------------+
| 1  | Fix the auto command                                                                       | 26/01 19:49  |      ❌     |
| 2  | Add more databases                                                                         | 26/01 19:49  |      ❌     |
| 3  | Book a strategy meeting                                                                    | 26/01 19:50  |      ❌     |
+----+--------------------------------------------------------------------------------------------+--------------+-------------+

Delete a todo

❯ todo delete 3
Deleted task with id: 3

❯ todo list
+----+--------------------------------------------------------------------------------------------+--------------+-------------+
| ID |                                           Title                                            |  Created at  |  Completed  |
+----+--------------------------------------------------------------------------------------------+--------------+-------------+
| 1  | Fix the auto command                                                                       | 26/01 19:49  |      ❌     |
| 2  | Add more databases                                                                         | 26/01 19:49  |      ❌     |
+----+--------------------------------------------------------------------------------------------+--------------+-------------+

Add a global todo

❯ todo -g add "Book a strategy meeting"
Created task with id: 1

❯ todo list -g
+----+--------------------------------------------------------------------------------------------+--------------+-------------+
| ID |                                           Title                                            |  Created at  |  Completed  |
+----+--------------------------------------------------------------------------------------------+--------------+-------------+
| 1  | Book a strategy meeting                                                                    | 26/01 19:52  |      ❌     |
+----+--------------------------------------------------------------------------------------------+--------------+-------------+

Complete a todo

❯ todo -g done 1
Task with id 1 completed

❯ todo -g list
+----+--------------------------------------------------------------------------------------------+--------------+-------------+
| ID |                                           Title                                            |  Created at  |  Completed  |
+----+--------------------------------------------------------------------------------------------+--------------+-------------+
| 1  | Book a strategy meeting                                                                    | 26/01 19:52  |      ✅     |
+----+--------------------------------------------------------------------------------------------+--------------+-------------+

Automatically add todos from TODO comments in code

❯ todo auto
Created 1 new tasks

❯ todo list
+----+--------------------------------------------------------------------------------------------+--------------+-------------+
| ID |                                           Title                                            |  Created at  |  Completed  |
+----+--------------------------------------------------------------------------------------------+--------------+-------------+
| 1  | Fix the auto command                                                                       | 26/01 19:49  |      ❌     |
| 2  | Add more databases                                                                         | 26/01 19:49  |      ❌     |
| 3  | todo/commands/auto.py:Add a docstring to this method                                       | 26/01 19:56  |      ❌     |
+----+--------------------------------------------------------------------------------------------+--------------+-------------+

Configuration

The configuration is stored in $HOME/.local/state/todotui/config.yaml, if there is no config.yaml file there just run todo list once and it should be created.

In the configuration it is possible to change the text alignment and size of the TODO output. There are four segments in the TODO output that can be configured: id, title, created_at & completed and the configuration is the same for each of them.

Change the text alignment using text.align. Values for alignments are center='^', left='<' and right='>'

Example:

format:
  tasks:
    title:
      text:
        align: <  # align title text left

Change the title alignment using title.align. Values for alignments are center='^', left='<' and right='>'

Example:

format:
  tasks:
    id:
      title:
        align: <  # align id title left

Change the header of a box using title.text.

Example:

format:
  tasks:
    title:
      title:
        text: Name

Change the width of a box using width, the width is the total number of characters.

Example:

format:
  tasks:
    id:
      width: 4

To restore the default configuration just delete the configuration file at $HOME/.local/state/todotui/config.yaml and it will be recreated the next time you run the program.

Contribute

Support

Please open an issue: https://github.com/TP-Softworks/todotui/issues or start a discussion: https://github.com/TP-Softworks/todotui/discussions/categories/q-a

Release files for todotui 0.0.4

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

Source distribution (sdist)

Source distribution for todotui 0.0.4
File Size Uploaded
todotui-0.0.4.tar.gz 14.9 kB Details

Built distribution (wheel)

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

Total release size: 33.8 kB

Release files / todotui-0.0.4.tar.gz

Download URL todotui-0.0.4.tar.gz
Size 14.9 kB
Tags Source
SHA-256 checksum
How to use checksums
dd1cba499291b99037323912f9dcf8ca0cb314c243fd6ff1f403eab5320757b3
BLAKE2b-256 checksum
How to use checksums
10b6c34f4bdac7643e95f040ad95761da3f5ab5516c757ea4d98f6f2289512a3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.1

Release files / todotui-0.0.4-py3-none-any.whl

Download URL todotui-0.0.4-py3-none-any.whl
Size 18.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
976def2f5500d22cf196d043dc87b5ecd01776090b0671426fc9e9eedef925ba
BLAKE2b-256 checksum
How to use checksums
e70d90a07ceeb3c8e9fabf8e4ec447427b94cfcb77ee06dd4ef5471ce11e2d05
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.1

Release history Release notifications | RSS feed

This release

0.0.4 This release

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