greed

module
v1.0.0-beta-1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 15, 2025 License: MIT

README

Test Status Go Report Card

GREED

Table of Contents

Overview

Greed is a financial application written almost entirely in Golang, used to view/track data easily across financial institutions/accounts. It utilizes the third-party API Plaid to connect your account with your financial institutions, and obtain your account and transaction history. This data can then be viewed in a user friendly format, which can be used to track past expenditures and plan future ones.

Since this app utilizes paid Plaid functions, users are restricted in a 'demo' mode, in the number of calls they can make to certain server endpoints, specifically those that talk to Plaid.

Server Features
  • RESTful API
  • Endpoints
  • Postgres database
  • No storing of sensitive personal or financial information, with the exception of Plaid Access Tokens, which are encrypted at rest
  • JWT authentication
  • Integration with financial data aggregator Plaid
  • Plaid webhooks, allowing notification of users of updates available for their items
  • Account-email verification utilizing SendGrid
CLI Features
  • Cobra-based CLI tool
  • CLI Commands
  • Client SQLite database
  • Allows for registering, logging in/out, and deleting users
  • Basic reporting of account information for financial institutions
  • 24 months of account financial history
  • In-depth transaction history reporting
    • Utilizing paginated tables in terminal
    • Extensive sorting through amount, date, merchant, etc.
    • Allows summary reporting as well
      • ex. All transactions summed, showing count and total amount for each merchant, for each month
      • ex. All transactions for merchant 'A' for month 'X' summed, showing count, total amount, dates
      • ex. All transactions for merchant 'A' summed over full 24-month history, showing count, total amount
  • Income/Expense viewing
    • View Income vs. Expenses per account
    • Viewable in tables and graphs
  • Export data into a CSV file

System Requirements

  • No dependencies for binary installation
  • Docker (for Docker installation)
  • Go 1.24+ (for source installation)

Installation Options

  1. Download Binary (Recommended)

    • Download from Releases based on your operating system
    • No installation required - just run!
  2. Docker

    • Have Docker installed
    • Pull the image:
    docker pull jmsguy/greed-cli
    
    • Add an alias for easy input:

      • Linux/macOS:
      alias greed='docker run -v ~/.greed:/root/.config/greed jmsguy/greed-cli'
      
      • Windows (PowerShell):
      function greed { docker run -v "$env:USERPROFILE\.greed:/root/.config/greed" jmsguy/greed-cli $args }
      
      • To make the alias permanent, add it to your shell profile:

        • Linux/macOS:
        echo "alias greed='docker run -v ~/.greed:/root/.config/greed jmsguy/greed-cli'" >> ~/.bashrc
        source ~/.bashrc
        
        • Windows PowerShell:
        Add-Content $PROFILE "function greed { docker run -v `"`$env:USERPROFILE\.greed:/root/.config/greed`" jmsguy/greed-cli `$args }"
        . $PROFILE
        
    • Run commands!

    greed register ExampleUser
    greed login ExampleUser
    
  3. Install directly

    • Requires Go
    go install github.com/jms-guy/greed@latest
    greed --help
    
  4. Clone repo

    • Requires Go
    git clone https://github.com/jms-guy/greed
    cd greed
    go build
    ./greed --help
    

Usage

  • List of CLI commands found here
  • Help can be found with the command:
greed --help

To-Do List

  • CLI tests + integration tests
  • Recurring transaction detection
  • Custom transaction tags and filtering
    • Tag certain merchants/transactions with custom labels (fixed expense, variable expense, tax-deductible, vacation fund, etc.)
  • Web client

Contributing & Issues

To contribute, clone the repo as described above in Installation Options. Please fork the repository and open a pull request to the main branch. If you have an issue, please report it here.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL