Todo.sh Add on Directory - todotxt/todo.txt-cli GitHub Wiki

List your Todo.sh add-ons here. Include a short description and a link to the GitHub repository or other location.

Table of Contents

Installation

To learn how to install (and create) add-ons, see Creating and Installing Add-ons.

Filters

Since version 2.4, todo.sh provides TODOTXT_SORT_COMMAND and TODOTXT_FINAL_FILTER, which can be used to modify the list commands’ output.

Future Tasks

Hide tasks containing a date threshold (t:YYYY-MM-DD) until the specified point in the future.

Note: The date command can be used to append date thresholds (e.g. todo.sh append <#> "t:`date -d '1 day' +%F`").
The schedule extension provides a wrapper for this.

The -x option can be used to temporarily disable filtering and also display future tasks.

Discussion thread

Project page

Download file

hiding

Hide tasks in given context/project (containing specified keywords).

Examples:

todo.sh hiding @someday        # to list tasks not in the @someday context
todo.sh hiding +todo.txt @in   # to list tasks not in the @in context and not in the +todo.txt project
todo.sh hiding JAVA windows    # to list tasks not containing `JAVA` and `windows` keywords

Project page

To install just clone the repo to your plugins directory.

Variations:

  • hide – Use grep to avoid Python dependency.

New or Enhanced Commands/Actions

add­: Add with created-on date

Replaces the existing todo.txt CLI action with one that prepends the task with the date it was created on, consistent with the todo.txt standard.

Usage:

todo.sh add This is a test task in +Project to be completed @home

Results in the line

YYYY-MM-DD This is a test task in +Project to be completed @home

where `YYYY-MM-DD` is today’s date, being added to the `todo.txt` file.

Project Page

add: add and do / add and pri in one step

This is the example detailed here: Creating Add-ons: Examples

It allows to add an item and mark it as done in one shot with the following syntax:

todo.sh add x Helping colleague to install linux

It also allows to set a priority when adding an item using the following syntax:

todo.sh add pri A “Need to write plugin example on Gina’s wiki”

Project page

Download file

Variations:

addsc: Add and schedule for today.

This will add a task and schedule a task for today.

Requires the schedule add-on to schedule the date.

todo.sh addsc "Task to be added"

Project page

Download file

addu: Add if unique

This will add a task only if it doesn’t already exist.

todo.sh addu "this is a task"

Project page

Download file

archive: Archive only selected done items

This allows to archive selectively one single item or a set of items matching a given keyword.
For example to archive all done items related to project1:

todo.sh archive +project1

To archive item #17:

todo.sh archive 17

Note that if the keyword is a number it is interpreted as an item number

Project page

Download file

edit: open in text editor

To open $TODO_DIR/todo.txt in your default text editor ($EDITOR environment variable):

todo.sh edit

To open $TODO_DIR/done.txt:

todo.sh edit done

Project page

Download file

Adaptations:

graph: Visualize done tasks

Graph displays bar charts showing the number of completed tasks per day.

Graph Image

As in Jerry Seinfeld’s don’t break the chain technique, active days will be colored green and therefore motivate you do be more productive.

Project page

Clone into todo.action.d directory:
git clone https://github.com/timpulver/todo.txt-graph.git graph

cd: display directory paths

Outputs the command necessary to change the current directory to the directory holding the todotxt files, the directory holding add-ons or the directory holding the configuiration file.

Discussion thread

Project page

Download file

chore (a.k.a. grocy-importer): Manage your Grocy chores

Lets you list, synchronize, complete, and reschedule your chores (recurring tasks) from Grocy the ERP beyond your fridge.

Project page

due: list tasks by due date

Lists tasks by due date; by default tasks that are overdue or due today. Optionally add an argument to display tasks due in the next n days. Assumes tasks are added with the key due:YYYY-MM-DD.

Project page

To install, clone into .todo.actions.d directory:

git clone https://github.com/rebeccamorgan/due.git

nav: open item’s URL in browser

todo.sh add Should have a look at http://github.com/ginatrapani ASAP

TODO: ‘Should have a look at http://github.com/ginatrapani ASAP’ added on line 111.

todo.sh nav 111

Project page

Download file

ac: activeCollab integration

If activeCollab project/ticket info is associated with a task, open in the browser.

todo.sh ac 12

Project page

Download file

commit: record state in local Git repository

Commit all changes to existing Git repository in $TODO_DIR.

Discussion thread

Project page

Download file

push: record state in remote Git repository

Push all changes in local state at $TODO_DIR to an existing, remote Git repository.
Always pushes to origin master.

Project page

Download file

pull: update local state from remote Git repository

Fetch and merge all changes from an existing, remote Git repository into $TODO_DIR.
Fetches from origin, merges from origin/master into master.

Project page

Download file

sync: sync state between local and remote Git repository

Keeps local Git repository in $TODO_DIR in sync with remote Git repository at origin.
Requires the commit, pull and push addons.

Project page

Download file

birdseye: your productivity report

A Python script birdseye.py (called with the birdseye action) analyzes the todo.txt and done.txt files to generate a report of completed and incomplete items in every context and project. (Requires Python and both birdseye.py and birdseye files to run.)

Project Page

paper: print your todo list

This will print your todo list:

todo.sh paper

Also you can choose your printer:

todo.sh paper -d ‘Canon-MP240’

Requires CUPS.

Project page

Download file

projectview: sorts tasks by projects

List tasks categorized by project.

Example:


===== Projects ===== - Project1 - 01 item 1 - Project2 - 02 item 2 04 item 4 - Not in projects - 03 item3

Discussion thread

Project page
Download file

rtm: sync with Remember the Milk

Supports push and pull, but it still needs some work.

This will push to Remember the Milk:

todo.sh rtm push

This will pull from Remember the Milk:

todo.sh rtm pull

You will need a web browser to accept the

Project page

Download file

schedule: work with date threshold

Set, remove or change date threshold of an item. Works best together with the Future Tasks filter.

Project page

Download file

view: Summarized todo items report

Show todo items containing TERM, grouped by OPTION, and displayed in priority order. If no TERM provided, displays entire todo.txt. The original idea and script is derived from projectview by Paul.

Example:
$ todo.sh view project # Show todo items grouped by project
$ todo.sh view project @context # Show todo items grouped by project and filtered by @context
$ todo.sh view date +project # Show todo items grouped by date and filtered by +project
$ todo.sh view after # Show todo items grouped by date after and with today.
$ todo.sh view before # Show todo items grouped by date before and with today.
$ todo.sh view before +project # Show todo items grouped by date before and with today and filtered by +project

Discussion thread
Project page
Download file

lately: Report of recently completed tasks

Generate a list of recently completed tasks. Per default lately lists tasks that were completed during the last seven days. With an optional argument, number of days, that can be overridden to show more or less.

Examples:

$ todo.sh lately    # Lists tasks completed within the last 7 days
$ todo.sh lately 3  # Lists tasks completed within the last 3 days

Download file

repeat: Mark an item done and immediately reenters it.

This is useful for repeating todo items where the date entered is important. This command simply marks
the given item as done and reenters it again, optionally at a specified number of days from the completion date, or a specified number of days from the due date where this is one. Priority is not preserved.

Examples:

$ todo.sh repeat 3 # Marks item 3 as done and recreates is as a new item
$ todo.sh repeat 3 7 # Marks item 3 as done and recreates it 7 days from now
$ todo.sh repeat 3 +7 # Marks item 3 as done and recreates it 7 days from the due date

Project page
Download file

recur: Intelligently add recurring tasks.

$ todo.sh ls
1 Some task
2 Some other task
3 A third task
--
2013-06-11: 3 of 3 tasks shown

$ todo.sh bump 1
Some task
TODO: 1 bumped from 2013-06-11.txt to 2013-06-12.txt

$ todo.sh lf 2013-06-12
1 Some task

2013-06-12: 1 of 1 tasks shown

$ todo.sh lsa
1 Some other task
2 A third task
0 × 2013-06-11 Some task bumped:2013-06-12

$ todo.sh bumpall
Some other task
A third task

TODO: all items bumped from 2013-06-11.txt to 2013-06-12.txt

$ todo.sh lsf 2013-06-10.txt
1 Some task I forgot about

2013-06-10: 1 of 1 tasks shown

$ todo.sh verify
2013-06-10.txt

$ todo.sh bringforward
Some task I forgot about
TODO: all items bumped from 2013-06-10.txt to 2013-06-11.txt

When run from a daily cron job (or similar scheduler), it will add tasks on appropriate days from a recur.txt file, while avoiding redundant adds of previously-added, not-yet-completed tasks.

Project page
Download file

ice_recur: Another recurring task action, but with much more flexibility

When run from a daily cron job (or similar scheduler), it will add tasks on appropriate days from a recur.txt file, while avoiding redundant adds of previously-added, not-yet-completed tasks.

You’ll notice this is just like “recur”; the difference is that ice_recur is much more flexible in terms of what sorts of schedules it can handle:


daily - (A) Runs every day; includes today
daily 2 - (B) Runs every other day; includes today
@2016-03-10 daily 2 - Runs every other day, starting on the day specified (which may or may not include today)
weekly ; day Friday, Sunday - Runs every Friday and Saturday
monthly ; day_of_month 11, 13 - Runs on the 11th and 13th of every month
@2016-03-07 Weekly 2 ; day Thursday - Runs on Thursday every second week starting on the first Thursday after the day specified.
@2016-03-01 Monthly 3 - Runs every 3 months starting on the day specified (so, occurs on the first day of the month; next occurence is 2016-06-01)
@2016-01-04 Yearly - Runs every year starting on the day specifiod (so, occurs on the 4th of January)

Project page

google: sync with Google Tasks

Push or Pull todo items to and from Google Tasks.

Examples:

$ todo.sh google pull       #pulls tasks from Google
$ todo.sh google push       #push todo items to Google
$ todo.sh google push all   #push todo and done items to Google

You will need to set up Google API access to use (see project README).
Requires Python

Project page
Download file

standup: daily standup status

An add on implemented in ruby that generates a “report” for daily standups based on your tasks.

Project page
Download file

docs: sync with Google Docs

You can now sync your todo with Google Docs

Sharing your todos with people is now possible.
You can also sync your todos with third party tools like aNotes.

Examples:

$ todo.sh docs pull       #pulls todo from Google Docs
$ todo.sh docs push       #push todo to Google Docs
$ todo.sh docs help       #display help

Requires:

  • Google account (!) with a folder/tag chosen for todos items
  • Google CL

Installation:

  • Install Google CL and configure oAuth by typing google docs list and following wizard.
  • Then simply run pull or push, a quick wizard will ask you the name of the Google folder/tag to sync and voila!

Author: Amaury Decrême – amaury.decreme at gmail.com
Licence: GPL http://www.gnu.org/copyleft/gpl.html

Project page
Download file

mit: Most Important Task

Bash addon to help you track your Most Important Tasks.

Examples:

$ todo.sh mit today go do something    # use today or tomorrow to create a mit
$ todo.sh mit friday stash millions    # use a day of week to create a mit
$ todo.sh mit mon water the garden     # use an abbreviated day of week to create a mit
$ todo.sh mit 2012.09.17 buy github    # use specific date to create a mit
$ todo.sh mit -h                       # get some help
$ todo.sh mit                          # display all mits
  Past Due:
    do something @home (12)
  Today:
    fix something @work (14)
$ todo.sh mit @home                    # display all mits in specified context
  Past Due:
    do something @home (12)

MIT now has support for adding MIT’s to a month, quarter or year! See the project page for details.

Author: Cody Buell
License: GPL http://www.gnu.org/copyleft/gpl.html

Project page

mitf: Most Important Task in the Future

An extension to the Most Important Task add-on (as such, it’s required for this add-on to work).

This add-on allows the user to generate MIT TODOs for certain day in the future. Assuming today’s YYYY-MM-DD date is 2016-01-15, then the command todo.sh mitf 10d "Foo @bar +baz" would result in running the MIT command todo.sh mit 2016.01.25 "Foo @bar +baz".

Examples:

$ date -Idate                            
2016-11-13                               
                                         
$ todo.sh mitf 3d "Foo @bar +baz"        
85 2016-11-13 {2016.11.16} Foo @bar +baz 
TODO: 85 added.                          
                                         
$ todo.sh mitf 1w "Foo @bar +baz"        
86 2016-11-13 {2016.11.20} Foo @bar +baz 
TODO: 86 added.                          
                                         
$ todo.sh mitf 2m "Foo @bar +baz"        
87 2016-11-13 {2017.01.13} Foo @bar +baz 
TODO: 87 added.                          

Author: linduxed
License: WTFPL http://www.wtfpl.net/

Project page

hey: a minimalist CRM

hey tells you one thing you should do regularly, but haven’t done lately.

Examples:

$ todo.sh lf hey
1 @phone Mom (+1 234 567 8901) +family
2 @skype Dad +family
3 @email mentor
4 @write old flame <[email protected]>
--
HEY: 4 of 4 tasks shown

$ todo.sh hey
37 @phone Mom (+1 234 567 8901) +family
TODO: 37 added

Project page
Download file

tmsa: commands to help working with dated todo files

Helper scripts to let you keep one todo.txt file per day, and move tasks between dated todo files. Intended for use with the cycle as described in Time Management for Systems Administrators.

Examples:


$ todo.sh ls
1 Some task
2 Some other task
3 A third task
--
2013-06-11: 3 of 3 tasks shown

$ todo.sh bump 1
Some task
TODO: 1 bumped from 2013-06-11.txt to 2013-06-12.txt

$ todo.sh lf 2013-06-12
1 Some task
--
2013-06-12: 1 of 1 tasks shown

$ todo.sh lsa
1 Some other task
2 A third task
0 x 2013-06-11 Some task bumped:2013-06-12

$ todo.sh bumpall
Some other task
A third task

TODO: all items bumped from 2013-06-11.txt to 2013-06-12.txt

$ todo.sh lsf 2013-06-10.txt
1 Some task I forgot about
--
2013-06-10: 1 of 1 tasks shown

$ todo.sh verify
2013-06-10.txt

$ todo.sh bringforward
Some task I forgot about
TODO: all items bumped from 2013-06-10.txt to 2013-06-11.txt

Author: Mark Harrison
License: MIT

Project page

revive: re-add items from archive

Easily re-add tasks that you have previously completed back to your todo.txt list.

Examples:


$ todo.sh revive
01 x 2013-06-25 My task
03 x 2013-06-28 Another task
02 x 2013-06-30 Some other task
--
DONE: 3 of 3 tasks shown

$ todo.sh revive 1
1 My task
TODO: 1 added.

Author: Duncan Eastoe
License: MIT

Project page
Download file

again: Recurring tasks made easy.

again allows for easy completion and re-adding of tasks, with preserved
due dates and deferral dates (if any).

Tasks can be re-created in three different manners:

  1. Having any due dates and deferral dates set to today
  2. Having any due dates and deferral dates set to N days from today
  3. Having any due dates and deferral dates set to N days from their previous values

Examples:


$ todo.sh again 31
31 x 2013-10-13 Test due:2013-10-14 t:2013-10-13
TODO: 31 marked as done.
x 2013-10-13 Test due:2013-10-14 t:2013-10-13
TODO: /home/foobar/Dropbox/todo/todo.txt archived.
30 Test due:2013-10-13  t:2013-10-13 
TODO: 30 added.


$ todo.sh again 31 10
31 x 2013-10-13 Test due:2013-10-14 t:2013-10-13
TODO: 31 marked as done.
x 2013-10-13 Test due:2013-10-14 t:2013-10-13
TODO: /home/foobar/Dropbox/todo/todo.txt archived.
30 Test due:2013-10-23  t:2013-10-23 
TODO: 30 added.


$ todo.sh again 31 +10
31 x 2013-10-13 Test due:2013-10-14 t:2013-10-13
TODO: 31 marked as done.
x 2013-10-13 Test due:2013-10-14 t:2013-10-13
TODO: /home/foobar/Dropbox/todo/todo.txt archived.
30 Test due:2013-10-24  t:2013-10-23 
TODO: 30 added.

Author: Niklas Thörne
License: GPLv3

Project page
Download file

top: see the top tasks.

works just like list but truncates the list to fit in the terminal without scrolling or wrapping.
say you have 20 lines visible at a time in your terminal run todo.sh top and you’ll see the top 16 tasks.
most useful when set as the default command with: TODOTXT_DEFAULT_ACTION

Author: Jon Knapp
License: GPLv3

Project page

xp: print a readable guide of your accomplishments.

XP prints the tasks completed on each day starting (x) number of days ago. You may also omit days on which no tasks were completed.

Example (Saturday where tasks were only completed Friday and Monday with the o option):
todo.sh xp -o 6

==========================
Monday : 2013-12-02 
==========================
x 2013-12-02 +ITSM some task I completed @work 
x 2013-12-02 +ITSM some task I completed @work
x 2013-12-02 +ITSM some task I completed @work
x 2013-12-02 +ITSM some task I completed @work
==========================
Friday : 2013-12-06 
==========================
x 2013-12-06 +ITSM some task I completed @work
x 2013-12-06 +ITSM some task I completed @work
x 2013-12-06 +ITSM some task I completed @work
x 2013-12-06 +ITSM some task I completed @work
x 2013-12-06 +ITSM some task I completed @work

Author: Chris Jones : [email protected]
License: GPLv3

Project page

addr: add task with the projects and contexts of the last added task.

A helpful todo.sh command when you are adding lots of related tasks. It simply appends the tags of the most recent item to the item you add.

$ t add 'here is a a task +context +project'
59 here is a a task +context +project
TODO: 59 added.

$ t addr 'here is another task'
Appending: +context +project
60 here is another task
TODO: 60 added.
60 here is another task +context
60 here is another task +context +project

Project page
Download file

lsgp/lsgc: prints in columns organized by either context or group

A print method for todo.sh that uses the entire terminal instead of just one column. It splits up your todo.txt either by context or by project. Although not shown below, it does show line numbers next to each task so you can easily refer to them.

$ t lsgc
@play                                              @code                                              
(A) task                                           (B) task                                           
(C) task                                           task                                               
task                                               task +research                                     
task                                               task +tool                                         
task                                                                                                  
task                                                                                                  
                                                                                                      
@email                                             @context                                           
(A) this guy                                       (A) task +project                                  
(A) this guy +project                              (D) task +project                                  
this guy                                           task +project                                      
this guy                                                                                              
this guy                                                                                              
this guy                                                                                              
this guy                                                                                              
this guy   

Project page
Download file

pomodori-todo: A pomodoro counter implementation for todo.txt

This plugin allows estimating pomodori, running a pomodoro countdown, and manually adding pomodori to todo items. Examples, installation instructions and a screenshot are available on the project page.

Project page

outline: Plan with an outline, sync your next actions

outline is an extension for command line todo.txt that allows you to plan your projects in a tab-indented outline, and sync only the next actions with todo.txt. Actions for editing and displaying your outline, syncing outline.txt with todo.txt, and completing tasks directly from the outline, are also provided.

A next action is defined as the first subtask with no subtask of its own under 1) a root task or 2) a task tagged with a project (eg. “+project”)—unless the task or parent tree is tagged with @someday or @maybe (or as otherwise configured).

Next actions inherit the project tags and the nearest priority tag from their parent tree. Context tags (“@context”) are not inherited.

For the following outline.txt


(B) Walk the dog +dogwalk
Get a dog
Lookup animal shelters
Buy a +leash
Lookup pet stores
Lookup dog parks
Call mom @phone
@someday
get my GED

The following tasks will be synchronised with todo.txt (the id tags allow for synchronization between todo.txt, outline.txt, and done.txt despite editing):

(B) Lookup animal shelters id:1 +dogwalk
(B) Lookup pet stores id:2 +dogwalk +leash
Call mom @phone id:3

using the sync action

todo.sh outline sync

More actions are available for editing, displaying, and synchronizing the outline. For more information see the project page

This add-on allows to take notes related to tasks. Notes are stored in text files where you can write down any information related with the task. Just one file per task is allowed.

Example:


$ todo.sh ls
1 Cook cake for birthday party
2 Fix bicycle
--
TODO: 2 of 2 tasks shown

$ todo.sh note add 1 # A note for task 1 will be created
1 Cook cake for birthday party note:cUn.txt
TODO: Note added to task 1.
Edit note? (y/n)
y # The user agrees to edit the note


$ todo.sh note show 1  # Later on, the user wants to see the content of the note for task 1
# Cook cake for birthday party
A couple of cakes thar look great:
  http://www.terrificfantasticcakes.com/sacher
  http://www.evenbettercakes.com/tartadesanmarcos

$ todo.sh note edit 1    # To add something else to the note

Author: Manuel J. Garrido
Licence: GPL

Project page

donow: Activity time tracker

Donow add-on allows to keep track of the total time spent on an activity

Keep track of current work

Once started, Donow reports on the stdout the current activity and the time spent on it. Each 10 minutes (configurable) a desktop notification (that can be disabled) will remind you the current running activity, to avoid to forget to stop the timer when not needed anymore.

Donow item format

When the timer is stopped using CTRL-C, donow will append a substring min:total-time-spent (being time expressed in minutes) to the activity description.
When the pattern “min:number” already exists, Donow just updates the counter.

Example:


$ todo.sh list                                                                                                          1 design Python interface for Todo.txt
2 write a basic description of donow addon min:5
--
TODO: 2 of 2 tasks shown
$ todo.sh donow 1                                                                                                                            
Working on: design Python interface for Todo.txt 
[design Python interface for Todo.txt] 11 minute(s) passed^C
1 design Python interface for Todo.txt min:11
$ todo.sh donow 2                                                                                                                        
Working on: write a basic description of donow addon min:5 
[write a basic description of donow addon min:5] 12 minute(s) passed^C
2 write a basic description of donow addon min:5
TODO: Replaced task with:
2 write a basic description of donow addon min:17

Author: Carlo Lobrano

Project page

chcon: Change context

Chcon allows fast replacement or deletion of the context tag (and whatever follows that in the task description).

Example:


$ todo.sh chcon 56 @office
56 upgrade servers @waiting
TODO: Replaced task with:
56 upgrade servers @office
$ todo.sh chcon 56
56 upgrade servers @office
TODO: Replaced task with:
56 upgrade servers

Author: Kaarle Ritvanen

Project page

rm: Remove from file

Plugin for applying the “rm” action, which either removes a specified line or a term within that line, to any file in the todo directory

Usage: `todo.sh rmf FILENAME #ITEM [TERM]`

Project page

wp: A weekly planner addon

The basic idea of this planning mechanism is that on a per-week basis, we want to dedicate a certain percentage of time for various task groups. Total amount of time available for each task groups is mentioned in the allocations.conf file. This addon and its associated commands help to make sure that we spend the desired amount of time in various task

Project page

all_repri: Make a uniform priority change to all prioritized items

This addon is for anybody who prioritizes items in at least two levels, completes the highest priority items, and then wants to increase the priority level of the remaining tasks. all_repri will increase or decrease the priority level of all and only already prioritized items by a given number of priority levels.

Project page

stale: Move stale todos into a stale.txt file

This action provides a shorthand for moving todos into and out of a stale.txt file, where you would keep todos that you haven’t got to in a while and that don’t really fit into a specific outline.

Project page

remind: Create Apple Reminders out of your todos (Mac only)

This action creates an Apple Reminder out of a todo. It also includes an optional customized do action that will find the matching Apple Reminder and delete it once you mark the todo as done.

Project page

book: Create calendar events out of your todos

This action creates a calendar event out of a todo. It requires khal and – to enable cloud sync – vdirsyncer.

Project page

tedit: Edit single task lines in the text editor of your choice

This action lets you edit a single task in the editor of your choice, ($EDITOR environmental variable).

Example:

$ todo.sh ls
1 take dog for a walk
2 edit this line with tedit
$ todo tedit 2

At this point $EDITOR is opened with the line:
edit this line with tedit

in it for you to edit. You change it to
this line has been edited through tedit

and afterwards just save and exit. Doubtful, you decide to check your changes and run
$ todo ls
1 take dog for a walk
2 this line has been edited through tedit

Project page

setdue: Set or modify the due-date of one or several already-existing items

Specify the due-date you want in any of the supported formats (listed in project page) and apply it to a batch of items simultaneously.

Example:

$ todo.sh ls
1 due:2012-12-31 take dog for a walk 
2 set a duedate for this task
$ todo.sh setdue --02-28 1 2
$ todo.sh ls
1 due:2019-02-28 take dog for a walk
2 set a duedate for this task due:2019-02-28

Project page

many: make the same change on multiple tasks

Instead of just listing one ITEM# you can enter multiple ITEM# and even ranges for any ACTION (that takes a ITEM#) or use a search term.

Example:
To set the priority to B for the tasks 1 to 3 and 5:

$ todo.sh many pri 1-3,5 b
5 (B) Download Todo.txt mobile app @Phone
TODO: 5 prioritized (B).
3 (B) Outilne chapter 5 +Novel @Computer
TODO: 3 prioritized (B).
2 (B) Schedule annual checkup +Health
TODO: 2 prioritized (B).
1 (B) Call Mom @Phone +Family
TODO: 1 prioritized (B).

To set the priority to C for the tasks containing the work Download or are part of the project Novel:

$ todo-txt many pri '/Download\|
Novel/’ c
5 © Download Todo.txt mobile app @Phone
TODO: 5 prioritized ©.
3 © Outilne chapter 5 +Novel @Computer
TODO: 3 re-prioritized from (B) to ©.

Project page

count: handle items with count

Finish a task and re-enter it with a decreased count, so that you can easily keep track of items.

Example:


$ todo.sh list
01 2019-12-28 Watermelon
02 2019-12-28 Banana count:4
--
TODO: 2 of 2 tasks shown
$ todo.sh count 1
1
$ todo.sh count 2
4
$ todo.sh count 2 done
$ todo.sh list
01 2019-12-28 Watermelon
02 2019-12-28 Banana count:3
--
TODO: 2 of 2 tasks shown

Project page
Download file

clock: Track time for tasks through GNOME hamster

This addon allows you to clock in tasks through hamster, the GNOME time tracker.

First, you will need to install hamster-time-tracker.

Then, just call the command “clock” and enter the task number you want to clock in:


$ todo.sh list
02 (A) Escape from the dungeon +Freedom
01 (B) Get milk +Groceries
--
TODO: 2 of 2 tasks shown

$ todo.sh clock in 2
Clocking in for Escape from the dungeon…

Any of the tasks you clock in be visible in hamster, and you can also see them by using:


$ hamster current
2020-04-22 12:53 Escape from the dungeon@Freedom 00:00

When you’re done with the task and want to clock out, just use:


$ todo.sh clock out
Clocking out for Escape from the dungeon...

To see all your clocks for the day:


$ hamster list
Start | End   | Duration | Activity                | Category
----------------------------------------------------------------
12:53 |       | 1min     | Escape from the dungeon | Freedom
----------------------------------------------------------------
Freedom: 1min
Total:  1min

Project page
Download file

random: choose a task randomly

  random
    Print a random task from your list
  random due
    Print a random task due on the first due date in your list
  random due [offset]
    Print a random task due on the [offset] due date in your list


Project page
Download file

today: Display tasks tagged for today

Any task with t:YYYY-MM-DD matching today’s date will be displayed.

Example:

$ date +%Y-%m-%d
2020-05-28
$ todo.sh list
1 2020-05-27 A task I plan to do in a days time t:2020-05-28
2 2020-05-28 A task I want to do today t:2020-05-28
3 2020-05-28 A task I want to do tomorrow t:2020-05-29
4 2020-05-28 A task without a date on it
$ todo.sh today
===================================
Tasks for today:
===================================
1 2020-05-27 A task I plan to do in a days time t:2020-05-28
2 2020-05-28 A task I want to do today t:2020-05-28

Project page
Download file

autopri: Autoprioritise tasks

Autoprioritise tasks X days before thet are due.

todo.sh autopri [days, priority]

To autoprioritise tasks to priority A 2 days before they are due:

todo.sh autopri 2

Project Page

dorecur: Add new tasks as required for recurrence

dorecur provides a drop-in replacement for the do action. It handles recurring tasks by adding a new task when the old task is finished. It does not require an external scheduler such as cron.

Normal recurrence example (based on date of completion):

$ todo-txt ls
1 Water flowers t:2021-01-01 rec:5d
$ date -I
2021-01-02
$ todo-txt do 1
1 x 2021-01-02 Water flowers t:2021-01-01 rec:5d
TODO: 1 marked as done.
1 Water flowers t:2021-01-07 rec:5d
TODO: 1 added.

Strict recurrence example (based on original start/due dates):

$ todo-txt ls
1 Send birthday greeting to friend t:2021-04-04 rec:+1y
$ todo-txt do 1
1 x 2021-04-05 Send birthday greeting to friend t:2021-04-04 rec:+1y
TODO: 1 marked as done.
1 Send birthday greeting to friend t:2022-04-04 rec:+1y

Project Page

gimme: Select a task at random based on criteria

gimme selects a task at random based on criteria. (gimmef does the same, but using a specified file).


$ todo.sh gimme @computer # Selects an item from your default todo.txt file having @computer.
$ todo.sh gimme @computer +foo  # Selects an item from your default todo.txt file matching @computer and +foo.
$ todo.sh gimmef someday.txt  # Selects an item from your someday.txt file.
$ todo.sh gimmef someday.txt pepper  # Selects an item from your someday.txt file having "pepper".

Project Page

⚠️ **GitHub.com Fallback** ⚠️