Getting started


qiqif is written for Python 2.7 and is tested on Linux, Mac OS X and (somewhat) Windows.

Install with pip via pip install qifqif command. If you’re on Windows and don’t have pip yet, follow this guide to install it.

To install without pip, download qifqif from its PyPI page and run python install in the directory therein.

The best way to upgrade is by running pip install -U qifqif.
A RSS feed allowing to hear about delivery of new releases is yet to come.

How it works

qifqif augment your qif files by adding a category line for each transaction, that additional information can then be used by accounting software to perform automatic QIF imports.

It picks categories by searching for keywords you previously defined in transactions fields and by repeating choices you made regarding similar transactions.

Learning as time goes by

On first run, qifqif starts with an empty configuration file and prompt you to enter a category and corresponding keywords for each transaction it reads.

The mappings you enter at prompts are saved in the configuration file which builds up upon the time as you use the software, allowing qifqif to tag always more transactions automatically.


While not recommended, it’s possible to mass-edit the configuration file in a text editor. Typically, the goal would be to add matchings in bulk and speed up qifqif learning process as a consequence.
See explanations about the configuration file format if you want to go that way.

Entering keywords

The main interaction you will have with qifqif consist to enter a category and keywords that are required for the transactions to belong to that category.

Entering a category is pretty basic: it can be any string of your choice, use <TAB> completion to reuse existing ones.
For a software like Gnucash, that info must correspond to the account name you want the transaction to be attached to.

Entering keywords has a more advanced interface.
Basic & simple case: you enter (successive) word(s) present in the Payee field of the current transaction.
If you are interested to detect transactions on field(s) other than Payee, using partial words matching or –foul you!– using regexes, then please read mastering keywords.