CLI for Monarch Money - access your financial data from the command line
Project description
mmoney-cli
Disclaimer: This is an unofficial, community-built CLI tool. It is not affiliated with, endorsed by, or supported by Monarch Money. Use at your own risk.
CLI for Monarch Money - access your financial data from the command line.
Built on top of monarchmoneycommunity.
Installation
# One-liner install (recommended - prompts to install uv or pipx if needed)
curl -sSL https://raw.githubusercontent.com/theFong/mmoney-cli/main/install.sh | bash
Or install directly if you have a package manager:
# Using uv (fast, modern)
uv tool install mmoney
# Using pipx (stable, widely used)
pipx install mmoney
# Using pip (may require PATH setup)
pip install mmoney
Development
# Clone and install with uv
git clone https://github.com/theFong/mmoney-cli.git
cd mmoney-cli
uv sync
# Run CLI
uv run mmoney --help
Quick Start
# Best: Email + Password + MFA Secret (longest lasting, fully automated)
# Enable MFA in Monarch settings, copy the secret key when setting up authenticator
mmoney auth login -e your@email.com -p yourpassword --mfa-secret YOUR_SECRET --no-interactive
# Good: Email + Password + MFA Code (requires manual code entry)
mmoney auth login -e your@email.com -p yourpassword --mfa-code 123456
# Alternative: Email + Password + Device UUID (requires browser)
# 1. Open app.monarch.com, login, open DevTools Console
# 2. Run: copy(localStorage.getItem('monarchDeviceUUID'))
mmoney auth login -e your@email.com -p yourpassword --device-uuid YOUR_UUID --no-interactive
# Fallback: Token from browser (shortest lived)
# 1. Open app.monarch.com, login, open DevTools Network tab
# 2. Click any 'graphql' request, find 'Authorization: Token YOUR_TOKEN' in Headers
mmoney auth login --token YOUR_TOKEN
Commands
Authentication
mmoney auth login # Login to Monarch Money
mmoney auth logout # Delete saved session
mmoney auth status # Check authentication status
Accounts
mmoney accounts list # List all accounts
mmoney accounts types # List account types
mmoney accounts create # Create manual account
mmoney accounts update <id> # Update account
mmoney accounts delete <id> # Delete account
mmoney accounts refresh # Refresh from institutions
mmoney accounts refresh-status # Check refresh status
Holdings
mmoney holdings list <account_id> # List holdings
mmoney holdings history <account_id> # Balance history
mmoney holdings snapshots # Aggregate snapshots
mmoney holdings balances # Recent balances
Transactions
mmoney transactions list # List transactions
mmoney transactions get <id> # Get transaction details
mmoney transactions summary # Transaction summary
mmoney transactions splits <id> # Get splits
mmoney transactions create # Create transaction
mmoney transactions update <id> # Update transaction
mmoney transactions delete <id> # Delete transaction
Categories
mmoney categories list # List categories
mmoney categories groups # List category groups
mmoney categories create # Create category
mmoney categories delete # Delete category
Tags
mmoney tags list # List tags
mmoney tags create # Create tag
mmoney tags set <transaction_id> # Set tags on transaction
Budgets
mmoney budgets list # List budgets
mmoney budgets set # Set budget amount
Cashflow
mmoney cashflow summary # Income, expenses, savings
mmoney cashflow details # By category and merchant
Other
mmoney recurring list # Recurring transactions
mmoney institutions list # Linked institutions
mmoney subscription status # Subscription details
Common Options
Most list commands support filtering:
--limit,-l: Number of records--start-date,-s: Start date (YYYY-MM-DD)--end-date,-e: End date (YYYY-MM-DD)
Example:
mmoney transactions list --limit 50 --start-date 2024-01-01 --end-date 2024-12-31
Output
All commands output JSON by default, making it easy to pipe to tools like jq:
mmoney accounts list | jq '.accounts[] | {name: .displayName, balance: .currentBalance}'
Session Storage
Sessions are stored securely using your system's keychain (macOS Keychain, Windows Credential Manager, or Linux Secret Service). Falls back to ~/.mmoney/session.pickle if keychain is unavailable.
Authentication Methods
Recommended authentication methods in order of preference:
- MFA Secret (Best): Enable MFA in Monarch, copy the secret key when setting up your authenticator. Use
--mfa-secretfor fully automated, long-lasting auth - MFA Code: Use
--mfa-codewith the 6-digit code from your authenticator app - Device UUID: Get from browser console with
localStorage.getItem('monarchDeviceUUID')and use--device-uuid - Token: Get from browser Network tab (Authorization header) and use
--token- shortest lived
Run mmoney auth login --help for detailed instructions on each method.
License
MIT
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mmoney-0.1.2.tar.gz.
File metadata
- Download URL: mmoney-0.1.2.tar.gz
- Upload date:
- Size: 24.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cfbca49520873324b26d11c591ac150e1edaf291fa5a0148865128c719857462
|
|
| MD5 |
d70559c90f1ec95fe85b803f7e8469c8
|
|
| BLAKE2b-256 |
e7277f37230a1787d7e2f8a14809240ac02a822fe850fda4854a0ebe4a51ff16
|
Provenance
The following attestation bundles were made for mmoney-0.1.2.tar.gz:
Publisher:
publish.yml on theFong/mmoney-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mmoney-0.1.2.tar.gz -
Subject digest:
cfbca49520873324b26d11c591ac150e1edaf291fa5a0148865128c719857462 - Sigstore transparency entry: 844022657
- Sigstore integration time:
-
Permalink:
theFong/mmoney-cli@1d4303758b98304f22de2b8372375b6156460bd4 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/theFong
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1d4303758b98304f22de2b8372375b6156460bd4 -
Trigger Event:
release
-
Statement type:
File details
Details for the file mmoney-0.1.2-py3-none-any.whl.
File metadata
- Download URL: mmoney-0.1.2-py3-none-any.whl
- Upload date:
- Size: 25.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
24c5770743493649fa361cfb310c68e755d3ae452dbf4480e87ad0b5a98aded7
|
|
| MD5 |
a80ef290d2d54025a976577405474d5c
|
|
| BLAKE2b-256 |
882d4558910bec821e7e9196ab749ae5451fb9a680d703c618afb0c9a9a6b20a
|
Provenance
The following attestation bundles were made for mmoney-0.1.2-py3-none-any.whl:
Publisher:
publish.yml on theFong/mmoney-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mmoney-0.1.2-py3-none-any.whl -
Subject digest:
24c5770743493649fa361cfb310c68e755d3ae452dbf4480e87ad0b5a98aded7 - Sigstore transparency entry: 844022660
- Sigstore integration time:
-
Permalink:
theFong/mmoney-cli@1d4303758b98304f22de2b8372375b6156460bd4 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/theFong
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1d4303758b98304f22de2b8372375b6156460bd4 -
Trigger Event:
release
-
Statement type: