mnemo − an aid for rote memorization


mnemo [−s] [file_or_dir ...]

mnemo [−t] [file_or_dir ...]

mnemo [−d] [file_or_dir ...]

mnemo −[h│m│w]


This program was inspired by a shareware program called "SuperMemo" which I ran across back in the early 90’s. I’ve heard that it has come a long way since then, but I haven’t tried it.

The general idea is similar: small pieces of information, such as vocabulary words, are presented in a demando-respondo format. The user grades him or her self on how well they remember the material, while the program presents items based on an algorithm intended to optimize memorization.

If no arguments are given on the command line, it will attempt to find *.mnemo files under the "$HOME/mnemo/" directory.



Produces a statistical report.


Produces a test report.


Dumps the requested database into XML/RTF files in /tmp. This is the format understood by the newer graphical version of Mnemo.


Displays this documentation, immediately, using "less".


Generates this documentation in nroff format for use by the "man" system.


Generates this documentation in HTML on the standard output.


Configuration parameters are stored in the user’s home directory, in a file called ".mnemorc" which is expected to be in the format:

variable_name: value string


This is used as a Perl regexp and matched against the "filtrovortoj" key of each item. If it matches, the item is skipped. The default is to skip any questionable content. However...

Since most items don’t even have a "filtrovortoj" key, this won’t make any difference. The "filtrovortoj" is supposed to hold keywords describing any offensive type of content, as a courtesey to users who would rather not be exposed. Categories suggested include "adult" and "profanity". More categories will undoubtedly be needed when multimedia content is included.

To exclude any questionable content (the default, if this option is not explicitely set), your ".mnemorc" file would look like this:

escepta_filtrilo: .

To exclude items marked as containing "profanity" and/or "adult" material, for example, your ".mnemorc" file would look like this:

escepta_filtrilo: (adult)│(profanity)

Note that the previous filter would allow any new category! Sorry for the inconvenience. Maybe this will change later.

To allow any items, regardless how they’re marked, your ".mnemorc" file would look like this:

escepta_filtrilo: nenio


This is the default pauxzo to use when a new record is encountered which doesn’t already have one specified.


The card file format follows the "record jar" format described in Eric Raymond’s "The Art of UNIX Programming". This specific implementation ignores upper/lower−case differences.

demando / respondo

(required) These are the question and answer content. Unless otherwise specified, they are assumed to be text/ascii.


This specifies (in seconds) the time between presentations of this record. It typically represents the value which was last added to the system time to calculate the current value of the "matura" field. If this field is missing, mnemo will use a default value which can be configured as "unua_pauxzo".

You can specify your own pauxzo in a more human-readable form:

pauxzo: 3 tagoj

mnemo understands "horoj", "tagoj", "semajnoj", "monatoj", and "jaroj". Don’t put parentheses around the value.


This is the date-time-stamp (in seconds since 12:00am Jan. 1, 1970) after which the current record will again be eligible for presentation to the user. mnemo will use the current time if this field is missing.

The "matura" time can also be specified in more human-readable forms. Given a value like "3 weeks", it will make the item come due that far in the future from the first time the item is read. An absolute due-date can be given in ISO 8601 format ( YYYY−MM−DD ) like "2003−11−30". Again, don’t put parentheses around the value.


(disappearing flag) A "inversebla: 1" field and value will cause the record to be automatically duplicated, but with the "demando" and "respondo" fields swapped. This is an aid to hand-generated card files.


(information tag) Tells when the item was last modified.


This field can contain a list of keywords to be matched by the expression configured for the "escepta_filtrilo". It’s intended to be used to specify certain types of possibly-offensive content such as "adult", "profanity", etc.




Copyright 2003,2005 Rick MILLER . See "gpl.txt" for GNU terms.