A keyboard-driven terminal application for managing todo.txt files.
Project description
TodoTxtTUI
A powerful, keyboard-driven Terminal User Interface (TUI) for managing your todo.txt file.

Features
- Priorities: Tasks can have priorities and are color-coded accordingly.
- Sorting: Tasks sorted by due date, priority and alphabetical (in that order).
- Due Dates: Tasks can have due dates and are grouped by them.
- Natural Language Processing (NLP): For example,
due:tomorrow.
- Natural Language Processing (NLP): For example,
- Recurring tasks: Tasks can have a recurrence pattern, automatically creating new tasks upon completion. For example
rec:1dorrec:+1y. - Projects/Contexts: With autosuggestions and autocompletion.
- Archiving: Completed tasks can be moved to a
done.txt. - Search: Quickly find the tasks you're looking for.
- Markdown links: Yes.
- Sync: Changes made in todo.txt outside the application will be reflected in the app.
- Keyboard driven: Navigate and manipulate everything from your keyboard with vim-inspired keys.
- Much more...
Keybindings
j/down: Move cursor downk/up: Move cursor upgg: Go top of listG: Go to bottom of listn: Add new task (enterto save,escto dismiss)e: Edit existing task (enterto save,escto dismiss)tab: Autocomplete suggested [projects/contexts](link here)
x: Toggle task complete/incompleteX: Complete and archive task immediatelyA: Archive completed tasks to done.txtD: Delete taskP: Postpone task (set due date tomorrow if task has existing due date)f: Focus search field (enterto focus task list)r: Reset search/Refresh task listu: Open URL in focused task- If task has multiple URLs, press
ufollowed by e.g.2to open the second URL UOpen all URLs in task
- If task has multiple URLs, press
q: Quit application
Priorities
(A) This task is most important
(B) This task is moderately important
(C) This task is less important
... and so on
Due Dates
Specify using due: followed by date YYYY-MM-DD or use natural language like due:tomorrow.
Example task: Hello world due:2024-05-18.
NLP (Natural Language Processing)
Convert natural language like due:tomorrow into the correct yyyy-mm-dd formatted date. Logic for days of week sets due date next occurrence of day in question, even if today is that day. That means that if today is Tuesday and you write due:tue, the date will be set to Tuesday of next week. The same logic applies to next week/month.
due:tomordue:tomorrow.due:tueordue:tuesday: Set date to the upcoming Tuesday (works for all days).due:nwordue:nextweek: Monday the following week.due:nmordue:nextmonth: 1st of next month.due:10jan: Upcoming January 10thdue:10jan2027: January 10th, 2027
Recurring tasks
Example task: Hello world due:2024-05-18 rec:5d. When completing the task, a new task will be created 5 days in the future based on the date when you completed the task
Recurrences can be specified in: d (days), w (weeks), m (months), y (years).
Strict recurrence
Use the + symbol. When completing the task, a new task will be created 5 days after the tasks' due date regardless of the date when you complete the task. Useful for keeping track of birthday's and similar things where the recurrence date must always fall on the same date regardless of when you complete the task.
Example: (A) Marie +birthday @home due:2023-10-30 rec:+1y. Marie's birthday will be repeated on Oct. 30th every year.
Projects and Contexts
This is a +project and this is a @context.
Example: Hello world +server @pc.
Task normalization/reconstruction
Automatically fixes mangled tasks.
Enter a task like this:
Go +someProject to @work [YouTube](https://youtube.com) and watch [these beautiful dogs!](https://www.youtube.com/watch?v=1VHRiwma05c). rec:+1d @pc +hello due:2023-01-01
It will be reconstructed like this:
Go to [YouTube](https://youtube.com) and watch [these beautiful dogs!](https://www.youtube.com/watch?v=1VHRiwma05c). +hello +someProject @pc @work due:2023-01-01 rec:+1d
And display like this:
Nice to know
Syncing f TodoTxtTUI detects and reflects changes made to todo.txt outside the application, allowing you to work on your todo.txt file from multiple devices.
Original idea
Read more about todo.txt at todotxt.org. Gina Trapani originally came up with the idea. It has since been extended, e.g. with recurring tasks and other features.
Installation
pip3 install todo-txt-tui
Usage
todo-txt-tui ~/path/to/todo.txt
You will be notified if a new version is available.
On linux you can create an alias to speed things up. Example: todo-txt-tui ~/path/to/todo.txt'. Then you can simply type todo in your terminal and the app will start and open your preferred todo.txt list. Combine that with scratchpad and you're flying!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file todo-txt-tui-0.0.1.tar.gz.
File metadata
- Download URL: todo-txt-tui-0.0.1.tar.gz
- Upload date:
- Size: 18.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
58e2eeddbeb979c893df4c432185d96363da9b1035baf1b7e781a58b7aa48f9d
|
|
| MD5 |
cda4fc4ba5306a09dd27b25cff5c7b0c
|
|
| BLAKE2b-256 |
ae5e479304bfb3607312d3824822df42f8343938e6b4e86c0b1b5fc22aa6d24a
|
File details
Details for the file todo_txt_tui-0.0.1-py3-none-any.whl.
File metadata
- Download URL: todo_txt_tui-0.0.1-py3-none-any.whl
- Upload date:
- Size: 17.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b4cb3c6e660be2335f58f176255de73dbd9e34c53d9b065e456562114b5941f3
|
|
| MD5 |
acb01d8f69cc1210be72ade3766bc96e
|
|
| BLAKE2b-256 |
9afb22f004e35d25165fe788e8ea8aada7afbb87b7b5436cb79db88767fa3d7d
|