Skip to main content

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

Metadata

Release files for moomoolah 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for moomoolah 0.3.0
File Size Uploaded
moomoolah-0.3.0.tar.gz 13.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for moomoolah 0.3.0
File Interpreter ABI Platform
moomoolah-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 27.4 kB

Release files / moomoolah-0.3.0.tar.gz

Download URL moomoolah-0.3.0.tar.gz
Size 13.0 kB
Tags Source
SHA-256 checksum
How to use checksums
86f977a2c3519b2f1d85037ba6c41b9ef1c5ad0e303d318a98ef8d780338e9fe
BLAKE2b-256 checksum
How to use checksums
e23a4332a080e97a6db685632d78fd76e2b3302a28f01a845a97675bd851b2ad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.13

Release files / moomoolah-0.3.0-py3-none-any.whl

Download URL moomoolah-0.3.0-py3-none-any.whl
Size 14.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
227606a0f6f4d7e27d7643329be77047a365882bb637317a9a159124318a58ce
BLAKE2b-256 checksum
How to use checksums
50a5239c237bf1302e126f6b65c4ae2a299baaa58baf376b9e54c8effd837b4d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.13

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page