CLI Local-first For AI agents v0.x · pre-release
Local-first finance data your agent can rely on.
Pull accounts and transactions from providers you configure, store them in encrypted SQLite, and automate with stable CLI + JSON contracts. No embedded AI, no hosted ledger, no long-running server required.
Introduction
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
Why money
Boring infrastructure for finance, not another advisor
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.
By design
- Local CLI, machine-readable JSON
- Encrypted SQLite, BYOK providers
- Stable, versioned contracts
- No embedded AI advisor
- No hosted subscription
- No required web dashboard
What you get
A small, deep set of primitives
Each capability is a stable command contract. Adding a provider, an import source, or a budget primitive doesn't change how your agent talks to money.
money. --json when you need parseable stdout. No web server required. money demo … runs against bundled non-persistent sample data — no credentials required. Quick start
Run in two paths: demo, or real provider
Install once. Try the demo without credentials, then configure a provider to sync your own data. Full configuration rules live in the config contract.
Step 1 · Try without credentials
Demo mode
Bundled in-memory sample data; safe to run anywhere. meta.demo: true on every envelope.
# Install via Homebrew
$ brew install 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. money stores them in your encrypted local DB.
# Interactive setup — config, key, database
$ 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.
Architecture
One direction. Local data. Explicit sync.
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.
Documentation
Contracts and design docs
Everything money commits to lives in the repository. Stable contracts are reviewed before they're called stable.