name: mon description: Use when Codex needs to access Monarch Money through the local mon CLI for auth status, accounts, transactions, custom GraphQL queries, or diagnostics while keeping local tokens private.
mon
Use this skill when you need to access Monarch Money from the local mon CLI.
Commands
mon auth login: login and save a local token.mon auth status --online: verify saved auth.mon auth status --browser --json: verify the logged-in Helium/Monarch browser session through OpenBrowserMCP.mon accounts --json: fetch linked accounts.mon accounts --browser --json: fetch accounts through an already logged-in Monarch browser tab.mon transactions --search TEXT --start-date YYYY-MM-DD --end-date YYYY-MM-DD --json: search transactions.mon transactions --browser --start-date YYYY-MM-DD --end-date YYYY-MM-DD --json: search transactions through the browser session.mon gql --operation NAME --query-file FILE --variables '{}': run a custom GraphQL document.mon gql --browser --operation NAME --query-file FILE --variables '{}': run GraphQL inside the Monarch web app tab.mon doctor: inspect local paths and auth state.scripts/mon_spend_review.py --input transactions.json --format markdown: locally review exported transactions for likely shared-expense reimbursements, merchant credits, and adjusted consumption spend.
Auth Strategy
- Use the saved token path for durable unattended CLI work:
mon auth status --online, thenmon ... --json. - If the saved token is expired or password login risks CAPTCHA/rate limits, prefer
--browserwhen Helium is already logged in tohttps://app.monarch.com/. - Browser mode reads the local OpenBrowserMCP bearer token from
~/openbrowsermcp/settings.json, connects tohttp://127.0.0.1:3500/mcp, finds a Monarch tab, and runs GraphQL from inside that page with browser cookies/CSRF. - Do not try to print, scrape, or import a Monarch browser token into
~/.mon/session.json; recent Monarch browser state may not expose a reusable API token. - Use
--browser-tab-id TAB_IDwhen multiple Monarch tabs are open.
Binary Selection
The Homebrew mon may lag local source changes. If mon transactions --help
does not show --browser, use /Users/yupeit/dev/mon/target/release/mon for
browser-mode work, or release/upgrade the Homebrew formula before relying on the
bare mon command.
Safety
Do not print ~/.mon/session.json or Monarch tokens. Prefer JSON command output
for agent workflows. Avoid repeated password login attempts; prefer the saved
session and mon auth status --online. When using --browser, do not print the
OpenBrowserMCP bearer token, browser cookies, localStorage values, or raw
transaction details unless the user explicitly asks for them; aggregate first
for spending summaries.
For spending review, fetch transaction JSON to a local temporary file and run
scripts/mon_spend_review.py against it. Treat matched reimbursement events as
candidates until the user confirms the event semantics; do not automatically
edit Monarch categories or notes from heuristic matches.