Command-line application to show the next action to work on from a todo.txt file
Determine the next action to work on from a list of actions in a todo.txt file. Next-action is alpha-stage at the moment, so its functionality is still rather limited.
Don't know what Todo.txt is? See https://github.com/todotxt/todo.txt for the Todo.txt specification.
Next-action is not a tool for editing todo.txt files, see http://todotxt.org for available options.
Next-action requires Python 3.6 or newer.
pip install next-action
$ next-action --help usage: next-action [-h] [--version] [-c <config.cfg>] [-f <todo.txt>] [-n <number> | -a] [<context|project> ...] Show the next action in your todo.txt. The next action is selected from the tasks in the todo.txt file based on task properties such as priority, due date, and creation date. Limit the tasks from which the next action is selected by specifying contexts the tasks must have and/or projects the tasks must belong to. optional arguments: -h, --help show this help message and exit --version show program's version number and exit -c <config.cfg>, --config-file <config.cfg> filename of configuration file to read (default: ~/.next-action.cfg) -f <todo.txt>, --file <todo.txt> filename of todo.txt file to read; can be '-' to read from standard input; argument can be repeated to read tasks from multiple todo.txt files (default: ['~/todo.txt']) -n <number>, --number <number> number of next actions to show (default: 1) -a, --all show all next actions (default: False) optional context and project arguments; these can be repeated: @<context> context the next action must have +<project> project the next action must be part of -@<context> context the next action must not have -+<project> project the next action must not be part of
Assuming your todo.txt file is your home folder, running Next-action without arguments will show the next action you should do. Given this todo.txt, calling mom would be the next action:
$ next-action (A) Call mom @phone
The next action is determined using priority. Due date is considered after priority, with tasks due earlier getting precedence over tasks due later. Creation date is considered after due date, with older tasks getting precedence over newer tasks. FInally, tasks that belong to more projects get precedence over tasks that belong to fewer projects.
Completed tasks (
) and tasks with a creation date in the future (
x This is a completed task
9999-01-01 Start preparing for five-digit years) are not considered when determining the next action.
Limiting the tasks from which next actions are selected
You can limit the tasks from which Next-action picks the next action by passing contexts and/or projects:
$ next-action @work (C) Finish proposal for important client @work $ next-action +DogHouse (G) Buy wood for new +DogHouse @store $ next-action +DogHouse @home Get rid of old +DogHouse @home
When you supply multiple contexts and/or projects, the next action belongs to all of the contexts and at least one of the projects:
$ next-action +DogHouse +PaintHouse @store @weekend (B) Buy paint to +PaintHouse @store @weekend
It is also possible to exclude contexts, which means the next action will not have the specified contexts:
$ next-action +PaintHouse -@store Borrow ladder from the neighbors +PaintHouse @home
And of course, in a similar vein, projects can be excluded:
$ next-action -+PaintHouse @store (G) Buy wood for new +DogHouse @store
Showing more than one next action
To show more than one next action, supply the number you think you can handle:
$ next-action --number 3 (A) Call mom @phone (B) Buy paint to +PaintHouse @store @weekend (C) Finish proposal for important client @work
Or show all next actions, e.g. for a specific context:
$ next-action --all @store (B) Buy paint to +PaintHouse @store @weekend (G) Buy wood for new +DogHouse @store
Note again that completed tasks and task with a future creation date are never shown since they can't be a next action.
Configuring todo.txt files to be read
Instead of specifying which todo.txt files to read on the command-line, you can also configure this in a configuration file. By default, Next-action tries to read a file called .next-action.cfg in your home folder, but you can tell it to read another configuration file:
$ next-action --config-file my-next-action.cfg (A) Call mom @phone
The configuration file format is YAML. The only option supported at the moment is to specify one or more todo.txt files to read, for example:
file: - personal-todo.txt - work-todo.txt - big-project/tasks.txt
Command-line options override options in the configuration file.
Next-action being still alpha-stage, this is it for the moment. Stay tuned for more options.
Clone the repository and run the unit tests with
python setup.py test or
python -m unittest.
To create the unit test coverage report install the development dependencies with
pip install -r requirements-dev.txt and run the unit tests under coverage with
coverage run --branch -m unittest; coverage html --fail-under=100 --directory=build/htmlcov.
Quality checks can be run with
pylint next_action and
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size next_action-0.6.0-py3-none-any.whl (18.6 kB)||File type Wheel||Python version py3||Upload date||Hashes View|
|Filename, size next-action-0.6.0.tar.gz (16.0 kB)||File type Source||Python version None||Upload date||Hashes View|
Hashes for next_action-0.6.0-py3-none-any.whl