Skip to content

Manage budgets and expenses in terminal and Google Spreadsheet

License

Notifications You must be signed in to change notification settings

coderustle/budgetcli

Repository files navigation

Budget CLI

Build Test License

A simple terminal app written in Python to manage budgets and expenses in Google Sheet.

Features

  • Add income transactions
  • Add outcome transactions
  • Add spending categories
  • Add budget for category
  • List spending categories
  • List transactions by month

Installation

pip install budgetcli

In order to use the app you need first to enable Google Spreadsheet API. Please follow this link for more details: Authorize credentials for a desktop application

Configuration

Before start adding transactions and data, you need to do the following steps:

Provide Google spreadsheet id

The spreadsheet id can be found in the browser url, for example https://docs.google.com/spreadsheets/d/SPREADSHEET_ID/edit#gid=2121817768.

budgetcli config spreadsheet-id ID

Copy the client_secret_XXX.json to app config

budgetcli config credentials-file-path /path/to/client_secret.json

Authorize the app access to spreadsheet data

budgetcli auth

Init sheets and tables

budgetcli init

Usage

The commands follow the below structure.

budgetcli <VERB> <OBJECT> <OPTIONS>

Incomes

To add an income you need to provide only an amount and a category. By default, all the income transactions are added with default today date and without no description.

Add an income

budgetcli add income 5000 salary

Add an income with description

budgetcli add income 5000 projects --description "Project A"

Add an income with date and description

budgetcli add income 500 projects --description "Project A" --date 2023-04-01

Outcomes

Same for outcome transactions, you need to provide only an amount and a category. By default, all the outcome transactions are added with default today date and without no description.

Add an outcome

budgetcli add outcome 400 rent

Add an outcome with description

budgetcli add 400 rent --date 2023-05-01 --description "Rent for May"

List transactions

List first 100 transactions

budgetcli list transactions

List only first 10 transactions

budgetcli list transaction --rows 10

List transactions for a specific month

budgetcli list transactions --month April 

Budget

Add budget for category

budgetcli add budget 400 rent