Welcome to Yokadi website

Yokadi is a command line oriented, sqlite powered, todo-list.

Yokadi is free software, released under the GPLv3 license.

Have a look at the documentation to find out more about it, then get it from the download page.

News

04 Nov 2024 - Yokadi 1.3.0 has been released

By Aurelien

In June I got a bug report about Yokadi being broken in Debian Trixie, the upcoming version of Debian. Turns out SQL Alchemy 1.4 is no longer packaged, replaced by SQL Alchemy 2.0, which is not supported by Yokadi 1.2.0. I spent a bit of time to port to SQL Alchemy 2.0, modernized a few things on the way (that code base is starting to show its age!), made one (1) visible change and released 1.3.0!

Here is the complete changelog:

  • Yokadi has been updated to SQLAlchemy 2.0.32.
  • t_list now uses color to display keywords.
  • Fixed the crash handler failing on Windows.

As usual, you can install it with pipx install yokadi or download an archive from the download page.

10 Feb 2019 - Yokadi 1.2.0 has been released

By Aurelien

I recently received a bug report for Yokadi, fixed it and realized two things. First, it has been almost 3 years since the last release… Second, I added a few features which were worth releasing. That means it was time for Yokadi v1.2.0!

What’s new in this release?

  • New features:
    • The new p_merge command lets you merge a project into another.
    • It is now possible to turn a task into a note with t_to_note and a note into a task with n_to_task.
  • Bug fixes:
    • The k_remove command no longer ignores unused keywords.
    • HTML output has been fixed to no longer output strings wrapped in b"".
    • t_list filtering has been fixed so that t_list --urgency 0 filters out tasks with a negative urgency, as expected.
  • Improvements:
    • HTML output has been refreshed:
      • It looks more modern now.
      • Some fields have been removed (doneDate, creationDate).
      • The title, keywords and description fields have been merged.
      • An ID field has been added (handy to run a command on a task listed in the output).
      • Columns now use human-friendly titles.
  • Misc:
    • The --db option is now deprecated and replaced by the --datadir option. --db will be removed in the next version.
    • Similarly, the YOKADI_DB environment variable is now deprecated and will be removed in the next version.
    • Yokadi no longer supports cryptography: encrypted databases will be decrypted at update.

This last point is worth a more detailed explanation. Yokadi used to let you encrypt task titles and descriptions, but this part of the code was unmaintained and based on PyCrypto, which suffers from unsolved security problems.

Since I do not use this feature and I am not a cryptography expert, I decided to remove it. I think it’s better to have no cryptographic support than a broken one: it does not give users a false sense of security.

When you run Yokadi 1.2.0 with an existing database, it will ask you to update your database from version 10 to version 12. Update from 10 to 11 adds a new database index, but update from 11 to 12 will ask for your passphrase and decrypt your tasks (if you have encrypted tasks, otherwise it will be a no-op)

That’s all for this release. You can install it with pip3 install -U yokadi or download an archive from the download page. I hope you like it and are not mad at me because of the feature removal.

11 Nov 2016 - Yokadi 1.1.1 has been released

By Aurelien

Today is the 11th of November: 11-11 is a great date to release version 1.1.1 :) Lame joke apart, this new version brings the following changes:

  • Improvements:
    • When listing multiple projects, order them alphabetically.
  • Bug fixes:
    • Fixed parse error if the user sets a time of “17m”.
    • When the user edits a task with t_edit and removes a keyword, remove the keyword from the task.
    • Made recurrence code work with dateutil 2.6.0.

Nothing earth-shattering, but a few nice to have. Get it from the download page.

03 Sep 2016 - Yokadi 1.1.0 is out

By Aurelien

I am happy to announce version 1.1.0 of Yokadi!

This new version adds a new command to manipulate your tasks: t_medit. t_medit lets you edit all tasks of a project in one go. Learn more about it from this article about t_medit on my blog.

This new version also brings some new goodies for aliases: they can now be modified. The name of the alias can be modified with a_edit_name and the command with a_edit_command.

It also brings the following changes:

  • New features & Improvements:
    • Database format updates are now easier to run: just run yokadi -u, no more separate update.py command. Updates are also much faster.
    • Task lists have been improved:
      • Borders look nicer.
      • Some bugs in the rendering of the title column have been fixed (wrong width, badly cropped text).
    • Yokadi now uses standard paths by default: the database is stored in ~/.local/share/yokadi/yokadi.db and non-essential data is in ~/.cache/yokadi/.
    • Reviewed and improved documentation. Moved developer documentation to a separate dir (doc/dev).
  • Bug fixes:
    • The code handling recurrences has been made more robust.
    • Recurrences are now stored in a more future proof way.
    • Fixed bug_edit crash.
    • Fixed negative keyword filter: A task with two keywords k1 and k2 would not be excluded by a filter !k1.

Get it from the download page.

28 Mar 2016 - Yokadi 1.0.2 released, more fixes!

By Aurelien

A few bugs managed to sneak in 1.0.1, hopefully all of them has been fixed in this new version.

Here is the bug fix list for this version:

  • Use a more portable way to get the terminal size. This makes it possible to use Yokadi inside Android terminal emulators like Termux
  • Sometimes the task lock used to prevent editing the same task description from multiple Yokadi instances was not correctly released
  • Deleting a keyword from the database caused a crash when a t_list returned tasks which previously contained this keyword

Get it from the download page.

03 Dec 2015 - Yokadi 1.0.1 released, only minor changes

By Aurelien

Shortly after the release of 1.0.0, I realized installing Yokadi via pip was broken: pip would not automatically install the required dependencies.

I fixed that issue and improved the release process so that pip install is always tested before releasing. These changes are in version 1.0.1, which has just been released.

29 Nov 2015 - Yokadi 1.0.0!

By Aurelien

After a long delay, here is Yokadi 1.0.0. This new version does not brings new features, but comes with internal changes which makes it nicer and more future-proof: Yokadi has been ported to Python 3 and now uses SQLAlchemy instead of SQLObject.

Switching to SQLAlchemy and porting to Python 3 was a long and tedious job, most of it was done by Sébastien Renard and Benjamin Port, thanks a lot to them.

Besides those technical changes, here is the (rather short) list of changes:

  • Fixed an issue which caused t_list to fail when filtering by keywords on large lists
  • Removed the project keywords feature. It was not very useful and made the searching code more complicated
  • Fixed ical support: it now works with ical 3.6 or later
  • Improved documentation
  • Added Keywords field to yokadi.desktop

Now that this version is out, work on new features can resume. Hopefully we will get a 1.1.0 release in less time that it took us to release this version, but that’s not a promise :)

As usual, tarballs and zip archives are available from the download page. Hope you like it!

03 May 2014 - A new version of Yokadi, can you believe it?

By Aurelien

Today we are happy to announce a new release of Yokadi, version 0.14. This version replaces 0.13.0 which was released… 3 years ago. Wow!

What have we been doing for all these years? We made many incremental changes, nothing ground-breaking, and so we have been happily running Yokadi directly from the Git master branch. It was thus high time to put a new version out.

What’s in the box? Here is a list of changes I compiled from the git log (we really need to release more often, reading 3 years of git history is not fun):

  • Command changes:
    • t_add, n_add:
      • Allow creating two tasks with the same title (useful for recurrent tasks, like “buy bread”).
      • Allow using _ to select last project, making it possible to do multiple t_add on the same project with t_add _ <task description>.
      • Add --describe option to start describing the task right after adding it.
    • t_describe, n_describe:
      • Safer task description editing: task is updated each time the editor saves, a lock manager now prevents multiple edits.
      • Use .md suffix instead of .txt for the temporary filename to allow some smart things with editors that understand Markdown.
      • Use project and task name for the temporary filename. Useful when using graphical editors or when your terminal title shows the current running command.
    • t_due:
      • When called with a time argument which is before current time, set due date to the day after.
    • t_show:
      • Show the task ID.
    • t_list:
      • Use month and year for the task age if the task is older than 12 months.
      • Add support for arbitrary minimum date for –done.
      • Fixed broken help.
    • n_list:
      • Display creation date instead of age.
      • Notes are now grouped by date.
    • p_list:
      • Show task count per project.
    • p_remove:
      • Show the number of associated tasks in the prompt.
    • p_edit:
      • Handle case where user tries to rename a project using the name of an existing project.
  • yokadid:
    • Add --restart option and --log options.
    • Set process name with setproctitle.
    • Configuration keys can now be overridden using environment variables.
  • Misc:
    • Date/time commands now support %d/%m/%y date format.
    • Replaced xyokadi with a desktop file.
    • Updated README to match real output.
  • Developer specific changes:
    • Command parser has been ported from optparse to argparse.
    • Code is now PEP 8 compliant, with the exception of camelCase usage.
    • All imports have been changed to absolute imports (ie import yokadi.<something>).
    • Code has been reorganized into different sub directories.
    • The scripts in the bin directory are now smart enough to run the source tree version instead of the installed version if possible.
    • We now use Travis for continuous integration.

That’s it for this new version. Tarballs and zip archives are available from the download page. Hope you like it!

09 Apr 2011 - Spring, time to release 0.13.0!

By Sebastien

The sun is shining, it’s time to release new yokadi stuff!

Here are the highlights of the 0.13.0 release:

  • cryptographic support to encrypt tasks title and description
  • t_apply now accept id range (x-y)
  • Special keyword __ can used in t_apply to affect all tasks previously select by t_list

Crypto stuff leads to optional new dependancy on the Python Cryptographic Toolkit. But it you don’t have it yokadi will work as before, you will just have new crypto function deactivated.

Grab it, have a look at the README that explain new crypto stuff and tasks range. Keep organized!

06 Jul 2010 - Akademy release!

By Sebastien

It is more and more an habit: a new yokadi release was done during Akademy, the annual world summit of the KDE community.

Here are the highlights of the 0.12 release:

  • Negative keyword support. Ex.: t_list !@home
  • Permanent filters on keyword or project. ‘t_filter @foo’ will filter any further call to t_list on @foo keyword.
  • filter tasks on due date. Ex.: t_list –due tomorrow, t_list –due sunday
  • add Notes support for things that belong to a project without being a task. Add it with n_add and list it with n_list.

As usual, we hope you like it as much as we do.

Grab it, have a look at the README and start getting organized!

25 Nov 2009 - 0.11.2, bugfix release

By Sébastien

A small glitch has been found in bug_edit function. The 0.11.2 release fixes that.

20 Nov 2009 - Yokadi packages!

By Sébastien

Some nice people make very good work to make software easily usable by everyone: packagers. We are very pleased to announce that Yokadi is packaged for all major Linux Distribution (Debian, Ubuntu, Fedora, Slackware, SuSe…) and for OpenBSD.

Grab it, and start getting organized!

02 Nov 2009 - 0.11.1, a brown bag release

By Aurélien

It turned out I broke the ability to run Yokadi without installing it in 0.11.0: the ‘yokadi’ symbolic link got turned into a regular file. 0.11.1 is here to fix this.

01 Nov 2009 - Version 0.11.0 has been released!

By Aurélien

Here it is, a new release of Yokadi for your TODO listing pleasure! Version 0.11.0 brings you a much nicer t_list output:

  • The width of the title column now adjusts itself to fit your terminal width and the content to display.
  • Task keywords are now printed in the title column.
  • Using the new -k switch, you can group tasks by keywords instead of grouping them by project.

0.11.0 also brings you a few handy shortcuts:

  • Special character ‘_’ can be used to represent last task id in all task commands: handy to add a due date after adding a task: just type “t_due _ tomorrow” to set the last used task due date to tomorrow.
  • Custom aliases can be defined for all commands with a_add.

Other changes:

  • Bugs keywords are prefixed with a ‘_’ to distinguish them from user keywords.
  • YOKADI_DB environment variable can be defined to set default yokadi database path.
  • Switch from “GPL v3” to “GPL v3 or newer” license.

Get it now!

12 Jul 2009 - Second release of Yokadi is out!

By Sebastien

During the Gran Canaria Desktop Summit, there were a conspiracy of some guys who were using text based tool to manage their tasks!

So we decided to make an Akademy release. Here are the highlights:

  • Ability to assign keywords to a project.
  • Shortened some commands (old ones are still available but are considered deprecated):

    • t_set_due => t_due
    • t_set_project => t_project
    • t_set_urgency => t_urgency
  • Changed keyword syntax: use @foo instead of -k foo.
  • Added t_recurs command to define task recursion (weekly, monthly, yearly…)
  • Added full text search with t_list -s foo.
  • Enhanced t_list display.
  • Added purge command (t_purge) to remove old tasks.
  • Added Windows support.
  • Fixed install script to be more friendly to users and packagers.

We focused on adding new features while keeping the software easy to use and easy to maintain. We hope you like it as much as we do.

Grab it, have a look at the README and start getting organized! Should anything go wrong, let us know.

07 Feb 2009 - First release of Yokadi is out!

By Aurélien

That’s it, the first release is available.

Yokadi started as a simple tool to help me centralize all tasks I have to accomplish, whether they come from everyday-life, work or personal projects. Prior to starting this project, I tried a few other solutions, but none of them satisfied me:

  • Some were web-based, which made them useless in the train.

  • Others were based on a plain text file, making it impossible to enter multi-line task descriptions.

  • A few others were GUI solutions. While attractive, they did not provide a fast enough work-flow and I failed to adopt them.

Yokadi was not initially created to be used by anyone else but me, but when I showed it to a few friends, they adopted it and even started to improve it.

So here we are, 0.9.0 is out for your organizing pleasure. We have been using it and relying on it daily for a few months now and consider it to be stable. Still this is the first public release, you may find rough edges here and there.

Enough talk: grab it, have a look at the README and start getting organized! Should anything go wrong, let us know.

03 Feb 2009 - Website is up

By Aurélien

Here we are, Yokadi website is taking shape. Right now we are busy getting ready for the 0.9.0 release.