A local-first, self-hostable personal finance backend for AI agents and power users.
money pulls account and transaction data from user-configured financial providers, stores it in a user-owned encrypted SQLite database, and exposes stable CLI + JSON contracts for external agents, scripts, and cron jobs.
It does not embed AI chat, model providers, hosted billing, telemetry, or a required long-running server. Your data stays local. Your agent owns the reasoning.
Existing personal finance tools either lock data behind a paid SaaS, embed opinionated AI advisors, or assume a full web-app product shape. money takes a different approach:
- Local-first data ownership — your financial data lives in an encrypted file you control.
- Agent-friendly contracts — stable JSON envelopes that any AI agent, script, or automation can parse.
- Provider-neutral — Plaid, Bridge, CSV imports — providers are replaceable adapters.
- No server required — runs as a CLI on your laptop, in cron, or in CI.
New to money? Read the full Getting Started guide for step-by-step setup and pricing details.
# macOS/Linux
curl -fsSL https://raw.githubusercontent.com/thedavidweng/money/main/install.sh | sh
money setup
money link
money sync
money accounts list --json
money transactions search "Costco" --jsonThe installer detects Homebrew automatically and uses the cask when available. Otherwise it downloads the release binary to ~/.local/bin.
Other installation methods
Windows PowerShell:
powershell -ExecutionPolicy ByPass -c "irm https://raw.githubusercontent.com/thedavidweng/money/main/install.ps1 | iex"The latest release must include a Windows archive for this installer to complete. If it does not, the script fails explicitly and points you to go install.
Homebrew Cask (macOS/Linux):
brew install --cask thedavidweng/tap/moneyIf you installed an older Homebrew formula release, migrate to the cask:
brew update
brew uninstall --formula thedavidweng/tap/money
brew install --cask thedavidweng/tap/money
money versionGo:
go install github.com/thedavidweng/money/cmd/money@latestManual download: grab the archive for your platform from the latest GitHub Release, extract it, and place the money binary on your PATH.
Try it without real credentials:
money demo accounts list --json
money demo transactions search "coffee" --json# Homebrew Cask
brew uninstall --cask thedavidweng/tap/money
# install.sh
curl -fsSL https://raw.githubusercontent.com/thedavidweng/money/main/install.sh | sh -s uninstall
# Go
rm "$(go env GOPATH)/bin/money"Your local ~/.money config, secrets, and database are not removed by uninstalling.
cmd/money/ CLI entrypoint (Cobra)
internal/cli/ CLI commands and doctor diagnostics
internal/config/ Configuration loading and validation
internal/contracts/ JSON envelopes, schema versions, error codes
internal/core/ Finance primitives and domain types
internal/importsource/ CSV and Monarch Money importers
internal/linking/ Plaid Link helper functions
internal/plaidlogin/ Plaid Dashboard OAuth login flow
internal/prompt/ Interactive TUI prompts (via Charm huh)
internal/providers/ Provider adapters (Plaid, Bridge, …)
internal/store/ Encrypted SQLite store and migrations
internal/syncer/ Transaction sync orchestration
Read commands use local data only. Sync is the explicit boundary where outbound provider calls happen. See docs/ARCHITECTURE.md for the full design.
- CLI-first — human output by default,
--jsonfor automation. - Stable contracts — versioned JSON envelopes with deterministic sorting and pagination.
- Explicit failures — no hidden fallbacks, no silent downgrades.
- BYOK providers — bring your own Plaid/Bridge credentials; no managed proxy or subscription.
- Encrypted at rest — real financial data never touches plaintext SQLite.
- Small deep modules — simple interfaces over pass-through wrappers.
| Document | Purpose |
|---|---|
docs/GETTING_STARTED.md |
Install, setup, and pricing guide |
docs/COMMANDS.md |
Command inventory and global flags |
docs/PRD.md |
Product requirements |
docs/ARCHITECTURE.md |
Module boundaries and data flow |
docs/CONTRACTS.md |
Current CLI JSON contracts |
docs/SCHEMA.md |
Database schema contract |
docs/CONFIG.md |
Configuration loading rules |
docs/ROADMAP.md |
Development phases |
CHANGELOG.md |
Release history |
SECURITY.md |
Vulnerability reporting policy |
Project docs and landing page: https://thedavidweng.github.io/site/money/
money draws inspiration from several excellent projects:
- monarchmoney-cli — agent-friendly CLI contract design, JSON envelope patterns, and safety model.
- Ray Finance — Plaid/Bridge sync architecture, local encrypted database patterns, and provider adapter design.
- Actual Budget — local-first budgeting philosophy and automation API patterns.
- Maybe Finance — personal finance domain modeling and product vocabulary.
- CI/CD: cli-workflow-template — reusable GitHub Actions workflows
- Docs: site — landing page and documentation
