Skip to content

tryonlinux/dave

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dave - Debt Tracking CLI

Dave is a command-line tool for tracking debts and visualizing your path to becoming debt-free using the snowball or avalanche method.

Dave Screenshot

Track your debts, visualize payoff dates, and accelerate your path to financial freedom

Features

  • Multiple Payoff Strategies: Snowball (lowest balance first), Avalanche (highest interest first), or Manual ordering
  • Payment Tracking: Full payment history with interest/principal breakdown, optional custom payment dates
  • Payoff Projections: See exactly when each debt will be paid off and your overall debt-free date
  • Auto-Snowball: When you pay off a debt, its minimum payment automatically adds to your snowball amount
  • Order Number Support: Use position numbers (1, 2, 3) or names for all commands
  • Beautiful Terminal UI: Clean, colorful tables powered by Lipgloss with order numbers, totals, and projections
  • SQLite Storage: All data stored locally in ~/.dave/debts.db
  • Hidden Paid Debts: Paid-off debts are automatically hidden from view but preserved in the database
  • Reset Command: Clear all debts and start fresh with a single command (with confirmation prompt)

Installation

go build -o dave.exe

Or add to your PATH for system-wide access.

Quick Start

# Add your first debt
dave add "Credit Card" 5000 18.5 150

# Add more debts
dave add "Car Loan" 15000 5.5 350
dave add "Student Loan" 25000 4.2 200

# Set extra monthly payment (snowball amount)
dave snowball 500

# View your debt table (default command)
dave

# Make a payment using debt name
dave pay "Credit Card" 1000

# Or use the order number from the table
dave pay 1 1000

# Backdate a payment
dave pay 2 500 2024-11-15

# Switch to avalanche mode
dave mode avalanche

Commands

dave or dave show

Display the debt table with projections. This is the default command.

dave add <creditor> <balance> <rate> <payment>

Add a new debt.

  • creditor: Name of the creditor (e.g., "Credit Card")
  • balance: Current balance
  • rate: Annual Percentage Rate (APR)
  • payment: Minimum monthly payment

Example: dave add "Visa" 3500 19.99 75

dave remove <creditor|#>

Remove a debt by name or order number.

Examples:

  • dave remove "Visa"
  • dave remove 2

dave pay <creditor|#> <amount> [yyyy-mm-dd]

Record a payment on a debt. Updates the balance and tracks interest vs principal. Optionally backdate the payment.

When a debt is fully paid off, its minimum payment is automatically added to your snowball amount!

Examples:

  • dave pay "Visa" 500 (payment today)
  • dave pay 1 500 (using order number)
  • dave pay 2 750 2024-11-15 (backdated payment)

dave snowball <amount>

Set the extra monthly payment amount to apply on top of minimum payments.

Example: dave snowball 500

dave mode <snowball|avalanche|manual>

Change the debt sorting/prioritization mode:

  • snowball: Pay off smallest balance first (psychological wins)
  • avalanche: Pay off highest interest rate first (mathematically optimal)
  • manual: Use custom ordering

Example: dave mode avalanche

dave adjust-rate <creditor|#> <rate>

Update the APR for a debt.

Examples:

  • dave adjust-rate "Visa" 15.99
  • dave adjust-rate 1 15.99

dave adjust-amount <creditor|#> <amount>

Manually adjust the current balance (for corrections).

Examples:

  • dave adjust-amount "Visa" 3400
  • dave adjust-amount 2 3400

dave adjust-order <creditor|#> <order>

Change the priority order (manual mode only).

Examples:

  • dave adjust-order "Student Loan" 1
  • dave adjust-order 3 1

dave reset

Clear all debts, payment history, and reset settings to defaults. This action cannot be undone.

You will be prompted for confirmation before deletion:

  • Deletes all debts
  • Deletes all payment history
  • Resets mode to snowball
  • Resets snowball amount to $0.00

Example: dave reset

Warning: This is a destructive operation. All data will be permanently deleted.

Table Display

The debt table shows:

  • #: Order number (use this in commands instead of typing the full name)
  • Creditor: Name of the debt
  • Original: Starting balance
  • Current: Current balance
  • Rate: Annual Percentage Rate (APR)
  • Payment: Minimum monthly payment
  • Interest: Projected total interest to be paid
  • Payoff: Estimated payoff date
  • Months: Months until paid off
  • Years: Years until paid off (decimal format)

The table also displays:

  • DEBT FREE DATE: When all debts will be paid off
  • Total Debt: Sum of all current balances
  • Totals row: Summary of all debts
  • Footer: Current mode, monthly payment total, snowball amount, and total payment

Note: Paid-off debts (balance = $0) are automatically hidden from the table but remain in the database.

How It Works

Debt Snowball Method

  1. List debts from smallest to largest balance
  2. Pay minimum on all debts
  3. Apply extra payment (snowball amount) to the smallest debt
  4. When a debt is paid off, add its minimum payment to the snowball amount
  5. Repeat until debt-free!

Debt Avalanche Method

Same as snowball, but prioritize by highest interest rate instead of smallest balance. Mathematically optimal but may take longer to see first payoff.

Projections

Dave simulates your monthly payments with compound interest to calculate:

  • Months to pay off each debt
  • Total interest paid on each debt
  • Individual payoff dates
  • Overall debt-free date

Data Storage

All data is stored in ~/.dave/debts.db (SQLite database) with three tables:

  • debts: Current debt information
  • payments: Full payment history
  • settings: Current mode and snowball amount

Examples

Example: Adding debts and seeing the impact of snowball

# Start with no extra payment
dave add "Credit Card" 5000 18.5 150
# Shows: 48 months to payoff, $2072 in interest

# Add $500 snowball
dave snowball 500
# Shows: 9 months to payoff, $364 in interest
# Saves $1708 in interest and 39 months!

Example: Comparing modes

# Snowball mode (smallest balance first)
dave mode snowball
dave

# Avalanche mode (highest rate first)
dave mode avalanche
dave

# Manual mode with custom priority
dave mode manual
dave adjust-order "Student Loan" 1

Building from Source

Requirements:

  • Go 1.25 or later
go mod download
go build -o dave.exe

License

See LICENSE file for details.

About

CLI Debt Snowball Tool

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages