Skip to content

Monarch Money

Verified

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.

910 downloads
$ Add to .claude/skills/

About This Skill

# 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:

  1. Login to https://app.monarchmoney.com
  2. Go to Settings > Security > Two-Factor Authentication
  3. If MFA is already enabled: disable and re-enable to get a new secret
  4. When shown the QR code: click "Can't scan? View setup key"
  5. Copy the secret key (base32 string like `JBSWY3DPEHPK3PXP`)
  6. Complete MFA setup in Monarch Money with an authenticator app
  7. Set the secret: `export MONARCH_MFA_SECRET="YOUR_SECRET"`

Quick Start

```bash # Check setup monarch-money doctor

# Login (uses env vars by default) monarch-money auth login

# List transactions monarch-money tx list --limit 10

# List categories monarch-money cat list ```

CLI Commands

Authentication

```bash # Login with environment variables monarch-money auth login

# Login with explicit credentials monarch-money auth login -e [email protected] -p password --mfa-secret SECRET

# Check auth status monarch-money auth status

# Logout monarch-money auth logout ```

Transactions

```bash # List recent transactions monarch-money tx list --limit 20

# Search by date monarch-money tx list --start-date 2026-01-01 --end-date 2026-01-31

# Search by merchant monarch-money tx list --merchant "Walmart"

# Get transaction by ID monarch-money tx get <transaction_id>

# Update category monarch-money tx update <id> --category <category_id>

# Update merchant name monarch-money tx update <id> --merchant "New Name"

# Add notes monarch-money tx update <id> --notes "My notes here" ```

Categories

```bash # List all categories monarch-money cat list

# List with IDs (for updates) monarch-money cat list --show-ids ```

Accounts

```bash # List accounts monarch-money acc list

# Show account details monarch-money acc get <account_id> ```

Doctor (Diagnostics)

```bash # Run diagnostic checks monarch-money doctor ```

  • Checks:
  • Environment variables set
  • API connectivity
  • Session validity
  • Node.js version

Library Usage

Import and use the TypeScript library directly:

```typescript import { MonarchClient } from 'monarch-money';

const client = new MonarchClient({ baseURL: 'https://api.monarch.com' });

// Login await client.login({ email: process.env.MONARCH_EMAIL, password: process.env.MONARCH_PASSWORD, mfaSecretKey: process.env.MONARCH_MFA_SECRET });

// Get transactions const transactions = await client.transactions.getTransactions({ limit: 10 });

// Get categories const categories = await client.categories.getCategories();

// Get accounts const accounts = await client.accounts.getAll(); ```

Common Workflows

Find and Update a Transaction

```bash # 1. Find the transaction monarch-money tx list --date 2026-01-15 --merchant "Target"

# 2. Get category ID monarch-money cat list --show-ids

# 3. Update the transaction monarch-money tx update <transaction_id> --category <category_id> ```

Search Transactions by Date Range

```bash monarch-money tx list --start-date 2026-01-01 --end-date 2026-01-31 --limit 100 ```

Check Budget Status

```bash 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

  • API.md - GraphQL API details and advanced usage
  • TROUBLESHOOTING.md - Common issues and solutions

Use Cases

  • Search and filter Monarch Money transactions by date, merchant, and amount
  • Update transaction categories and manage budget tracking
  • List accounts and view budget status across financial portfolios
  • Automate personal finance management through Monarch Money API
  • Build financial reporting workflows from Monarch Money account data

Pros & Cons

Pros

  • +Compatible with multiple platforms including claude-code, openclaw
  • +Well-documented with detailed usage instructions and examples
  • +Strong community adoption with a large number of downloads
  • +Open source with permissive licensing

Cons

  • -No built-in analytics or usage metrics dashboard
  • -Configuration may require familiarity with programming languages concepts

FAQ

What does Monarch Money do?
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.
What platforms support Monarch Money?
Monarch Money is available on Claude Code, OpenClaw.
What are the use cases for Monarch Money?
Search and filter Monarch Money transactions by date, merchant, and amount. Update transaction categories and manage budget tracking. List accounts and view budget status across financial portfolios.

100+ free AI tools

Writing, PDF, image, and developer tools — all in your browser.