Skip to content

moneyPersonal Finance Backend

Local-first finance data your agent can rely on. Encrypted SQLite, stable CLI + JSON contracts, BYOK providers — no embedded AI, no required server.

~/projects/finance — money
# no credentials needed$ money demo accounts list --json{"meta": { "schema": "1.0.0", "demo": true },"data": { "accounts": [ { "name": "Chase Checking" }, { "name": "Amex Gold" } ] },"errors": []}$ money tx search "Costco"

See money in action

A product introduction: what money does, how the CLI fits in, and how JSON contracts work for external agents.

Hosted on YouTube · Open in new tab

Step 1 · Try without credentials

Demo mode

Bundled sample data; safe to run anywhere. meta.demo: true on every envelope.

# Install via Homebrew
$ brew install --cask thedavidweng/tap/money

# Or via Go
$ go install github.com/thedavidweng/money/cmd/money@latest

# Try with sample data
$ money demo accounts list --json
$ money demo transactions search "coffee"

Step 2 · Connect a provider

Real sync (BYOK)

Bring your own Plaid / Bridge credentials. Stored in your encrypted local DB.

# Interactive setup
$ money setup

# Link an institution, then sync
$ money link
$ money sync
$ money accounts list --json

All commands accept --json. Write operations require --dry-run or --confirm.

Why money ​

Many personal finance workflows depend on a single SaaS for truth, on products that bundle AI advisors, or on a full web app you must keep online. That conflicts with owning your data, choosing providers, and giving an external agent predictable, deterministic primitives.

money takes the opposite shape: a user-owned encrypted database, explicit sync to BYOK providers, and machine-readable envelopes. Your agent owns reasoning and memory — not the tool.

Key Commands ​

CommandDescription
money demo accounts list --jsonTry with sample data (no credentials)
money setupInitialize config and encrypted database
money linkLink a financial institution
money syncSync linked provider data
money accounts listList all accounts
money transactions searchSearch transactions
money doctorDiagnose environment

Architecture ​

Read commands never call the network. Outbound provider traffic only happens when you explicitly link or sync.

Providers map into canonical records — accounts, transactions, categories, tags, recurring items — and land in encrypted SQLite. Every command returns a versioned JSON envelope with deterministic sorting and pagination.

Read the full architecture document.

Built with VitePress