| name | monarch-money |
| description | TypeScript library and CLI for Monarch Money budget management. Search transactions by date/merchant/amount, update categories, list accounts and budgets, manage authentication. Use when user asks about Monarch Money transactions, wants to categorize spending, needs to find specific transactions, or wants to automate budget tasks. |
| metadata | {"clawdbot":{"requires":{"env":["MONARCH_EMAIL","MONARCH_PASSWORD","MONARCH_MFA_SECRET"]},"install":[{"id":"node","kind":"node","package":".","bins":["monarch-money"],"label":"Install Monarch Money CLI"}]}} |
Monarch Money
CLI and TypeScript library for Monarch Money budget automation.
Prerequisites
Environment Variables (Required)
| Variable | Required | Description |
|---|
MONARCH_EMAIL | Yes | Monarch Money account email |
MONARCH_PASSWORD | Yes | Monarch Money account password |
MONARCH_MFA_SECRET | Yes | TOTP secret for MFA (see below) |
Getting Your MFA Secret
Monarch Money requires MFA. Generate the TOTP secret:
- Login to https://app.monarchmoney.com
- Go to Settings > Security > Two-Factor Authentication
- If MFA is already enabled: disable and re-enable to get a new secret
- When shown the QR code: click "Can't scan? View setup key"
- Copy the secret key (base32 string like
JBSWY3DPEHPK3PXP)
- Complete MFA setup in Monarch Money with an authenticator app
- Set the secret:
export MONARCH_MFA_SECRET="YOUR_SECRET"
Quick Start
monarch-money doctor
monarch-money auth login
monarch-money tx list --limit 10
monarch-money cat list
CLI Commands
Authentication
monarch-money auth login
monarch-money auth login -e email@example.com -p password --mfa-secret SECRET
monarch-money auth status
monarch-money auth logout
Transactions
monarch-money tx list --limit 20
monarch-money tx list --start-date 2026-01-01 --end-date 2026-01-31
monarch-money tx list --merchant "Walmart"
monarch-money tx get <transaction_id>
monarch-money tx update <id> --category <category_id>
monarch-money tx update <id> --merchant "New Name"
monarch-money tx update <id> --notes "My notes here"
Categories
monarch-money cat list
monarch-money cat list --show-ids
Accounts
monarch-money acc list
monarch-money acc get <account_id>
Doctor (Diagnostics)
monarch-money doctor
Checks:
- Environment variables set
- API connectivity
- Session validity
- Node.js version
Library Usage
Import and use the TypeScript library directly:
import { MonarchClient } from 'monarch-money';
const client = new MonarchClient({ baseURL: 'https://api.monarch.com' });
await client.login({
email: process.env.MONARCH_EMAIL,
password: process.env.MONARCH_PASSWORD,
mfaSecretKey: process.env.MONARCH_MFA_SECRET
});
const transactions = await client.transactions.getTransactions({ limit: 10 });
const categories = await client.categories.getCategories();
const accounts = await client.accounts.getAll();
Common Workflows
Find and Update a Transaction
monarch-money tx list --date 2026-01-15 --merchant "Target"
monarch-money cat list --show-ids
monarch-money tx update <transaction_id> --category <category_id>
Search Transactions by Date Range
monarch-money tx list --start-date 2026-01-01 --end-date 2026-01-31 --limit 100
Check Budget Status
monarch-money acc list
Error Handling
| Error | Solution |
|---|
| "Not logged in" | Run monarch-money auth login |
| "MFA code required" | Set MONARCH_MFA_SECRET environment variable |
| "Invalid credentials" | Verify email/password work at app.monarchmoney.com |
| "Session expired" | Run monarch-money auth login again |
Session Management
Sessions are cached locally at ~/.mm/session.json. After initial login, subsequent commands reuse the saved session for faster execution.
To clear the session: monarch-money auth logout
References