README

What is it?

Yokadi is a command-line oriented, SQLite powered, TODO list tool. It helps
you organize all the things you have to do and must not forget. It aims to be
simple, intuitive and very efficient.

In Yokadi you manage projects, which contain tasks. At the minimum, a task has
a title, but it can also have a description, a due date, an urgency or
keywords. Keywords can be any word that help you find and sort your tasks.

Dependencies

Yokadi should run on any Unix-like systems. There is also some support for
Windows but it is not as tested.

Yokadi requires Python 3.4 or more and a few other modules, which you can install with:

pip install -r requirements.txt

It can also make use of other modules listed in extra-requirements.txt. You can
install them with:

pip install -r extra-requirements.txt

These modules are needed for the Yokadi Daemon and for the cryptography features.

There is much more, we only scratched the surface, but this should get you
started. You can get a list of all commands by typing help and get the
detailed documentation of a command with help <command>.

Advanced stuff

Quick access to last task

When you execute multiple commands on the same task, you can use _ as a
shortcut to the last task id. Assuming you created a task like this:

yokadi> t_add home Buy chocolate
Added task 'Buy chocolate' (id=1069)

Then the following commands are equivalents (until you work on another task):

yokadi> t_edit 1069
yokadi> t_edit _

Due dates

You can define due dates for your tasks with t_due. This can be done with a
relative or absolute date:

Yokadi asks you for a passphrase. Don’t forget it! It is a global passphrase
for this Yokadi database. Each time you will want to encrypt something, you
will have to use this passphrase. For convenience, Yokadi will keep this
passphrase in memory during your Yokadi session. If you are quite paranoiac
and feel bad with that, don’t panic, you can set the PASSPHRASE_CACHE
option to 0 to disable passphrase cache:

yokadi> c_set PASSPHRASE_CACHE 0
Info: Parameter updated

If you list encrypted stuff but haven’t given your passphrase in the current
session, Yokadi won’t bother you with asking for passphrase, but won’t display
data in a clear way:

But sometimes tasks are not consecutive and you would like to use wonderful
t_list options to select your tasks. Here’s the trick: each time you display
tasks with t_list, Yokadi stores the id list in the magic keyword __ that
you can give to t_apply like this:

Oh, by the way, one Yokadi dev uses the following alias which is quite self
explanatory:

yokadi> a_list
procrastinate => t_apply __ t_due +1d

Mass editing tasks

t_medit lets you edit all tasks of a project at once by opening a text editor
with all the tasks and let you editing them, applying the changes when you
quit. If you are familiar with git, this is similar to the way the git
rebase --interactive command works.

For example to edit all the tasks of the “birthday” project do the following:

yokadi> t_medit birthday

Make adjustments to the task list (the syntax is documented as comments in the
text opened in the editor), then save the file and quit to apply the changes.

Yokadi provides Vim syntax highlighting files to make mass edit more
convenient. You can find them in editors/vim. To install them, run the
following:

If you use another editor and can provide support for highlighting files, your
contribution is very welcome! Get in touch so that we can add your work to the
next version of Yokadi.

Integration

Database location

By default, Yokadi creates a database in $HOME/.local/share/yokadi/yokadi.db,
but you can specify an alternative location with the --db option.

A convenient way to start Yokadi is by creating an alias in your .bashrc file
like this:

alias y=yokadi

The single letter y will start Yokadi with your favorite database from
wherever you are.

If you do not want to use the default database location, you can define
the YOKADI_DB environment variable to point to your database:

export YOKADI_DB=$HOME/work/yokadi.db

History location

By default, Yokadi will store input history in $HOME/.cache/yokadi/history.
This file stores commands used in Yokadi for future use and reference.

If you do now want to use the default history file location, you can define
the YOKADI_HISTORY environment variable to point to your history file:

export YOKADI_HISTORY=$HOME/.hist/yokadi_history

Yokadid, the Yokadid daemon

If you want to be automatically reminded of due tasks, you can use the Yokadi
daemon.

The Yokadi daemon can be launched via desktop autostart services. In most
desktop environments, you just need to create a symbolic link to yokadid (or a
shell script that calls it) in $HOME/.config/autostart/: