Skip to content
Go to file
This branch is 102 commits ahead of geekforbrains:master.

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


A CLI budgeting tool for nerds. Uses a sqlite3 db stored in the folder of your choice (hint: Dropbox).

Currently only supports Python 3.x.


To install Oink simply run the following from the same directory as the file:

python install

Now you can launch Oink from anywhere via the command-line with the oink command.


Type ? at any time to see the current sections available commands.

<arg> style arguments are required.

[arg] style arguments are optional.


  • la - List all bank accounts and their details.
  • aa - Add a new bank account.
  • ra - Rename a bank account.
  • da <id> - Delete a bank account.


  • at - Record a new transaction.
  • lt [account] [num] - List [num] recent transactions for account. Defaults to 10. lt * * to list all transactions for all accounts.
  • ar <amount> <source_account> <destination_account> - Add transfer transaction between two accounts.
  • et <id> - Edit a transaction.
  • dt <id> - Delete a transaction.


  • ac <name> - Add new category for budgeting and grouping transactions.
  • lc - List all categories
  • rc <name> <new_name> - Rename a category
  • dc <id> - delete a category


  • ab <account_id> - Add new budget for an account
  • lb [month] [year] - List budgets for all accounts. Use [month] and [year] to filter for specific months.
  • db <id> - Delete a budget


  • rep <file> <from_date> [to_date] [format] - Generate a report for a date range. Default is from <from_date> to the current date. If no <format> is specified, will attempt to infer the format based on the file extension. Date formats are in the YYYY-mm-dd format (e.g. 2018-06-23).


Please be aware this project is still incubating and has not yet reached a fully stable release. Below are some of my top-priority tasks (in an arbitrary order albeit) for Oink:

  • Write base unit tests
  • Add tab completion to command input
  • Implement CSV report support
  • Implement PDF report support
  • Implement JSON report support
  • Implement TXT report support
  • Implement MarkDown report support
  • Implement HTML report support
  • Add support for recurring transactions
  • Add new transaction type for transfer transactions
  • Add category-transaction breakdown to reports
  • Add support for Oink to be run as traditional CLI (e.g. oink <command> <args> [opts])
  • Persist command history between sessions
  • Automatic budget renewals per month
  • Automatic report generation per month
  • OS push notifications
You can’t perform that action at this time.