Skip to main content

MooMoolah - Personal Budget Planner

Project description

MooMoolah

A terminal-based personal budget planning application built with Python and Textual.

Your data is stored locally in a JSON file, keeping your financial information private and accessible offline.

Features

  • 12-month forecast view - Shows projected expenses, income, and balance for the next 12 months
  • Expense and Income management - Add, edit, and delete expense/income entries
    • Recurring entries - Support for one-time, monthly, and yearly recurring transactions
    • Category tracking - Organize entries by categories

Screenshots

Main screen:

Main Screen

Adding an expense:

Add Expense

Installation

Install MooMoolah using pip:

pip install moomoolah

Usage

Run the application with an optional state file:

moomoolah [state_file.json]

If no state file is provided, MooMoolah will use a default location following the XDG Base Directory specification:

  • $XDG_DATA_HOME/moomoolah/state.json (if XDG_DATA_HOME is set)
  • ~/.local/share/moomoolah/state.json (default on Linux/Unix)

The state file will be created if it doesn't exist. State files are stored with restricted permissions (600) for security.

Usage

Navigation

  • Main screen: e (manage expenses), i (manage income)
  • Entry screens: Insert (add entry), Delete (remove entry), click row to edit
  • Global shortcuts: Ctrl+S (save), Ctrl+Q (quit), Escape/Backspace (back)

Entry Management

Each entry includes:

  • Description and amount
  • Category for organization
  • Recurrence type (once, monthly, yearly)
  • Start date and optional end date
  • Frequency interval (e.g., every 2 months)

Development

See plan.md for current development roadmap and planned features.

This project uses uv for dependency management.

Setup

  1. Install uv if you haven't already:

    curl -LsSf https://astral.sh/uv/install.sh | sh
    
  2. Install dependencies:

    uv sync
    
  3. Run the application:

    # With default state file location
    uv run moomoolah
    
    # Or with a specific state file
    uv run moomoolah <state_file.json>
    

Running Tests

uv run pytest

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

moomoolah-0.3.0.tar.gz (13.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

moomoolah-0.3.0-py3-none-any.whl (14.4 kB view details)

Uploaded Python 3

File details

Details for the file moomoolah-0.3.0.tar.gz.

File metadata

  • Download URL: moomoolah-0.3.0.tar.gz
  • Upload date:
  • Size: 13.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.13

File hashes

Hashes for moomoolah-0.3.0.tar.gz
Algorithm Hash digest
SHA256 86f977a2c3519b2f1d85037ba6c41b9ef1c5ad0e303d318a98ef8d780338e9fe
MD5 c291755efa305b2b47c5146b7e233649
BLAKE2b-256 e23a4332a080e97a6db685632d78fd76e2b3302a28f01a845a97675bd851b2ad

See more details on using hashes here.

File details

Details for the file moomoolah-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: moomoolah-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 14.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.13

File hashes

Hashes for moomoolah-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 227606a0f6f4d7e27d7643329be77047a365882bb637317a9a159124318a58ce
MD5 16fc9f9f8d24f110613e10c4b87525a3
BLAKE2b-256 50a5239c237bf1302e126f6b65c4ae2a299baaa58baf376b9e54c8effd837b4d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page