Man Linux: Main Page and Category List


       task-faq - A FAQ for the task(1) command line todo manager.


       Task  is a command line TODO list manager. It maintains a list of tasks
       that you  want  to  do,  allowing  you  to  add/remove,  and  otherwise
       manipulate them.  Task has a rich list of commands that allow you to do
       various things with it.


       Welcome to the task FAQ.  If you have would  like  to  see  a  question
       answered here, please send us a note at <>.

       Q: When I redirect the output of task to a file, I lose all the colors.
       How do I fix this?
              A:  Task knows (or thinks it knows) when the output is not going
              directly to a terminal, and strips out  all  the  color  control
              characters.   This  is  based  on  the assumption that the color
              control codes are not wanted in the file.  Prevent this with the
              following entry in your .taskrc file:


       Q: How do I backup my task data files? Where are they?
              A: Task writes all pending tasks to the file


              and all completed and deleted tasks to


              They  are  text  files,  so  they  can just be copied to another
              location for  safekeeping.   Don't  forget  there  is  also  the
              ~/.taskrc  file  that contains your task configuration data.  To
              be sure, and to future-proof your backup,  consider  backing  up
              all the files in the ~/.task directory.

       Q:  How  can I separate my work tasks from my home tasks? Specifically,
       can I keep them completely separate?
              A:  You  can do this by creating an alternate .taskrc file, then
              using shell aliases. Here are example Bash commands  to  achieve

                  % cp ~/.taskrc ~/.taskrc_home
                  %   (now   edit   .taskrc_home   to   change  the  value  of
                  % alias wtask="task"
                  % alias htask="task rc:~/.taskrc_home"

              This gives you two commands, 'wtask' and  'htask'  that  operate
              using two different sets of task data files.

       Q: Can I revert to a previous version of task? How?
              A:  Yes, you can revert to a previous version of task, simply by
              downloading an older version and installing it. If  you  find  a
              bug  in  task,  then this may be the only way to work around the
              bug, until a patch release is made.

              Note that it is possible that the task file format will  change.
              For  example,  the  format  changed  between  versions 1.5.0 and
              1.6.0. Task will automatically upgrade the file but if you  need
              to  revert  to  a  previous  version  of task, there is the file
              format to consider. This is yet another good reason to  back  up
              your task data files!

       Q:  I'm  using  Ubuntu 9.04, and I want task to word-wrap descriptions.
       How do I do this?
              A: You need to install ncurses, by doing this:

                  % sudo apt-get install libncurses5-dev

              Then you need to rebuild task from scratch, starting with

                  % cd task-X.X.X
                  % ./configure

              The  result should be a task program that knows the width of the
              terminal window, and wraps accordingly.

              Note that there  are  binary  packages  that  all  include  this

       Q: How do I build task under Cygwin?
              A:  Task  is  built  the  same way everywhere. But under Cygwin,
              you'll need  to  make  sure  you  have  the  following  packages
              available first:


              The gcc and make packages allow you to compile the code, and are
              therefore required,  but  the  ncurses  packages  are  optional.
              Ncurses  will  allow  task to determine the width of the window,
              and therefore use the whole width and wrap text accordingly, for
              a more aesthetically pleasing display.

              Note  that  there  are  binary  packages  that  all include this

       Q: Do colors work under Cygwin?
              A: They do, but only in a  limited  way.  You  can  use  regular
              foreground  colors  (black,  red, green ...) and you can regular
              background  colors  (on_black,  on_red,   on_green   ...),   but
              underline and bold are not supported.

              If you run the command:

                  % task colors

              Task  will  display  all the colors it can use, and you will see
              which ones you can use.

              See the 'man task-color' for more details on which colors can be

       Q: Where does task store the data?
              By  default,  task creates a .taskrc file in your home directory
              and populates it with  defaults.   Task  also  creates  a  .task
              directory in your home directory and puts data files there.

       Q: Can I edit that data?
              Of course you can.  It is a simple text file, and looks somewhat
              like the JSON format, and if you are careful not  to  break  the
              format,  there is no reason not to edit it.  But task provides a
              rich command set to do that  manipulation  for  you,  so  it  is
              probably best to leave those files alone.

       Q: How do I restore my .taskrc file to defaults?
              If  you delete (or rename) your .taskrc file, task will offer to
              create a default one for you.  Another way to do  this  is  with
              the command:

                  $ task rc:new-file version

              Task  will  create 'new-file' if it doesn't already exist.  Note
              that this is  a  good  way  to  learn  about  new  configuration
              settings,  if  your .taskrc file was created by an older version
              of task.

       Q: Do I need to back up my task data?
              Yes.  You should back up your ~/.task  directory,  and  probably
              your ~/.taskrc file too.

       Q: Can I share my tasks between different machines?
              Yes,  you can.  Most people have success with a DropBox - a free
              and secure file synching tool.  Simply configure task  to  store
              it's data in a dropbox folder, by modifying the:


              configuration     variable.      Check     out     DropBox    at

       Q: The file gets very large - do I need it?
              You need it if you want the undo capability.   But  if  it  gets
              large,  you  can  certainly  truncate  it to save space, just be
              careful to delete lines from the top of  the  file,  up  to  and
              including  a  separator  '---'.   The  simplest way is to simply
              delete the file.  Note that  it  does  not  slow  down
              task,  because  task  never  reads  it  until  you want to undo.
              Otherwise task only appends to the file.

       Q: How do I know whether my terminal support 256 colors?
              You will need to make sure your TERM environment variable is set
              to  xterm-color,  otherwise  the  easiest way is to just try it!
              With task 1.9 or later, you simply run

                  $ task color

              and a full color palette is displayed.  If you see only 8 or  16
              colors,  perhaps  with those colors repeated, then your terminal
              does not support 256 colors.

              See the task-color(5) man page for more details.

       Q: How do I make use of all these colors?
              See the task-color(5) man page for an  in-depth  explanation  of
              the task color rules.

       Q: How can I make task put the command in the terminal window title?
              You  cannot.  But you can make the shell do it, and you can make
              the shell call the task program.  Here is  a  Bash  script  that
              does this:

                  #! /bin/bash

                  printf "\033]0;task $*"
                  /usr/local/bin/task $*

              You  just  need  to run the script, and let the script run task.
              Here is a Bash function that does the same thing:

                  t ()
                    printf "\033]0;task $*"
                    /usr/local/bin/task $*

       Q: Task searches in a case-sensitive fashion - can I change that?
              You can.  Just set the following value in your .taskrc file:


              This will affect searching for keywords:

                  $ task list Document

              task will perform a caseless search in the description  and  any
              annotations   for  the  keyword  'Document'.   It  also  affects
              description and annotation substitutions:

                  $ task 1 /teh/the/

              The pattern on the left will now be a caseless search term.

       Q: Why do the task ID numbers change?
              Task does this to always show you the smallest numbers  it  can.
              The idea is that if your tasks are numbered 1 - 33, for example,
              those are easy to type in.   If  instead  task  kept  a  rolling
              sequence  number, after a while your tasks might be numbered 481
              - 513, which makes it more  likely  to  enter  one  incorrectly,
              because there are more digits.

              When you run a report (such as "list"), task assigns the numbers
              before it displays them.  For example, you can do this:

                  $ task list
                  $ task do 12
                  $ task add Pay the rent
                  $ task delete 31

              Those id numbers are then good until the  next  report  is  run.
              This is because task performs a garbage-collect operation on the
              pending tasks file when a report is run, which moves the deleted
              and   completed   tasks   from  the  file  to  the
     file.  This keeps the pending tasks  file  small,
              and  therefore  keeps task fast.  The completed data file is the
              one that grows unbounded with use, but that one  isn't  accessed
              as much, so it doesn't matter as much.  So in all, the ID number
              resequencing is about efficiency.

       Q: How do I list tasks that are either priority 'H'  or  'M',  but  not
              Task's filters are all combined with and  implicit  logical  AND
              operator, so if you were to try this:

                  $ task list priority:H priority:M

              There  would  be  no  results,  because  the  priority could not
              simultaneously be 'H' AND 'M'.  What is required is some way  to
              use OR instead of an AND operator. The solution is to invert the
              filter in this way:

                  $ task list priority.not:L priority.any:

              This filter states that the priority must not be 'L', AND  there
              must  be  a  priority assigned.  This filter then properly lists
              tasks that are 'H' or 'M', because the two logical  restrictions
              are not mutually exclusive as in the original filter.

              Some of you may be familiar with DeMorgan's laws of formal logic
              that relate the AND and OR operators in terms of each other  via
              negation, which can be used to construct task filters.

       Q: How do I delete an annotation?
              Task  now has a 'denotate' command to remove annotations.  First
              here is an example task:

                  $ task add Original task
                  $ task 1 annotate foo
                  $ task 1 annotate bar
                  $ task 1 annotate foo bar

              Now to delete the first annotation, use:

                  $ task 1 denotate foo

              This takes the fragment 'foo' and compares it  to  each  of  the
              annotations.   In   this  example,  it  will  remove  the  first
              annotation, not the third, because it is  an  exact  match.   If
              there  are  no exact matches, it will remove the first non-exact

                  $ task 1 denotate ar

              This will remove the second annotation  -  the  first  non-exact


       task was written by P. Beckingham <>.
       Copyright (C) 2006 - 2010 P. Beckingham

       This man page was originally written by P. Beckingham.

       task  is  distributed  under  the  GNU  General  Public  License.   See for more information.


       task(1), taskrc(5), task-tutorial(5) task-color(5)

       For more information regarding task, the following may be referenced:

       The official site at

       The official code repository at

       You can contact the project by writing an email to


       Bugs in task may be reported to the issue-tracker at