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
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.
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.
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.
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.
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.
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.
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!
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
:
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!
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!
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!
By Sébastien
A small glitch has been found in bug_edit function. The 0.11.2 release fixes that.
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!
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.
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!
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:
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.
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.
By Aurélien
Here we are, Yokadi website is taking shape. Right now we are busy getting ready
for the 0.9.0 release.