Quickstart

To use tackler, you will need tackler binary and an accounting journal.

Install tackler binary
cargo install --locked tackler
Create journal example
tackler new journal
tackler --config journal/conf/tackler.toml

That’s it, you are all done!

You are now ready to start your accounting journey. Feel free to add, modify or delete transaction files under the journal/txns directory. After all, it’s your journal. Tackler will pick up automatically all files ending as .txn under that directory.

See Tackler Journal and Command Line Reference how to get started with tackler.

Longer version of the same story

You need Rust toolchain to build tackler binary.

Build and install Tackler
cargo install --locked tackler

This will build and install tackler so that’s available on your PATH environment variable. Assuming that you’ve followed default Rust toolchain installation. See Installation Manual for full instructions. You can uninstall it by running cargo uninstall tackler.

Creating a journal

Once you have installed tackler, create default journal setup with:

Create journal template
tackler new journal

This will create a new bookkeeping setup, with default configuration journal/conf and example transactions in journal/txns (feel free to modify or delete these transaction files).

The next step is to run default reports for the journal:

Run example reports
tackler \
   --config journal/conf/tackler.toml

This will run Balance and Register reports by default. You can select which reports to run by using --reports option, see tackler --reports for more information.

Example reports
Balance Report
--------------
                 0.00    17.50  Expenses
                 0.00    12.00  Expenses:Food
                12.00    12.00  Expenses:Food:Fast-Food
                 0.00     5.50  Expenses:Sweets
                 2.50     2.50  Expenses:Sweets:Candy
                 3.00     3.00  Expenses:Sweets:Ice·Cream
=====================
                17.50

Register Report
---------------
...

See tackler.toml, accounts.toml, commodities.toml and tags.toml for full configuration options.

Journal examples and source code

Tackler repository contains several example journals, which you can use to play and test tackler further: to test git integration, running tackler in audit mode, or playing with demo setup of one hundred thousand transactions.

Get source code and test journals
git clone --recurse-submodules https://github.com/tackler-ng/tackler
cd tackler

Simple example

The simple.toml example uses filesystem based storage backend, no account name validations, no auditing features.

Command

tackler --config examples/simple.toml

Output

Balance Report
--------------
                 0.00   12.00  Expenses:Food
                12.00   12.00  Expenses:Food:Groceries
                 0.00    3.32  Expenses:Sweets
                 2.12    2.12  Expenses:Sweets:Ice·cream
                 1.20    1.20  Expenses:Sweets:Salmiakki
=====================
                15.32

Let’s play for real - Git storage and Audit mode

The audit.toml example uses a bare git repository as transaction storage, and also strict and audit mode is activated by configuration. This means that all accounts, commodity names and tags are validated. The triplet of git commit id, Txn Set Checksum and Account Selector Checksum provides an auditable (cryptographic) proof of transactions used by reports.

Command

tackler --config examples/audit.toml

Output

Git Storage
      reference : set-1e1
      directory : txns
      extension : txn
         commit : ed6e4b10de2daea8d143569c473d14a9b09c3270
         author : tackler <accounting@example.com>
           date : 2016-11-25 09:36:00 +0000
        subject : set-1e1: 2016-11-25

Txn Set Checksum
        SHA-256 : 4a0eb2f8836447a025030a87136c047b4a737031162f593cb00f390c6ba113a3
       set size : 10

**********************************************************************************
Account Selector Checksum
        SHA-256 : df4714ff3f5bd031a8256df95863a8085f740b436f1b47febb45c9eb9aaa9e9e
       selector : 'a:.*'


Balance Report
--------------
                -1.00   a:ay2016:am01
                -6.00   a:ay2016:am02
               -14.00   a:ay2016:am03
               -19.00   a:ay2016:am04
               -26.00   a:ay2016:am05
                -2.00   a:ay2016:am07
                -7.00   a:ay2016:am08
               -13.00   a:ay2016:am09
               -19.00   a:ay2016:am10
               -25.00   a:ay2016:am11
=====================
              -132.00
##################################################################################

Journal with one hundred thousand transactions

The audit repository contains a branch which has set of 100_000 transactions, and it’s named as set-1e5.

The following command will run reports in the audit mode with the journal data in branch set-1e5. Only accounts starting as a:ay2016:am1 are selected into reports.

Command

tackler \
    --config examples/audit.toml \
    --input.git.ref set-1e5 \
    --accounts "a:ay2016:am1.*"

Output

Git Storage
      reference : set-1e5
      directory : txns
      extension : txn
         commit : 4648a2994b41ed341b544a148b3060fd2d267d79
         author : tackler <accounting@example.com>
           date : 2016-12-31 17:41:24 +0000
        subject : set-1e5: 2016-12-31

Txn Set Checksum
        SHA-256 : 2f4bc22df78502182aa27037d8d0f72462adb018be3e768399e0b803fa75baa7
       set size : 100000

**********************************************************************************
Account Selector Checksum
        SHA-256 : 49bfb37038bd82c1f23eeb3ea018a721b1f9503732493b7a6d7c96f187bc1505
       selector : 'a:ay2016:am1.*'


Balance Report
--------------
              -135619.00   a:ay2016:am10
              -127126.00   a:ay2016:am11
              -133402.00   a:ay2016:am12
========================
              -396147.00
##################################################################################