myMeans: Double-Entry Accounting#

myMeans automates a plain-text, double-entry accounting workflow built on top of ledger-cli. It imports downloaded bank .csv statements or stages read-only Plaid changes, keeps remote source and local Ledger mutation behind separate review boundaries, categorizes transactions, and generates tabular reports.

It is especially useful if you want:

  • a read-only provider sync whose fetched source, immutable plan, and generated sidecar remain separate and recoverable;

  • a visible manual fallback for accounts that Plaid does not cover;

  • regex templates, routes, and interactive tools for uncategorized transactions;

  • exact-cent conditional planning from explicit cashflow and debt assumptions, without reading or mutating a Ledger;

  • an optional, explicitly remote LLM template suggester whose proposals still require local confirmation; or

  • typed, validated accounting primitives for accounts, posts, balanced transactions, and ledgers.

Install#

Install ledger-cli through your operating system, then install the published Python package:

ledger --version
uv tool install my-means
means-bank --help

Python API users can run uv add my-means instead. The hosted LLM path is an optional extra:

uv tool install 'my-means[llms]'

First workflow#

Every data command accepts one configured means directory. Status is read-only and is the safest first probe:

export MY_MEANS=/path/to/your/means-directory
means-bank --directory "$MY_MEANS" status --json

From there, the provider workflow is fetch → inspect accounts → bind → plan → reviewed apply. The deterministic categorizer stays local; the optional LLM command sends unknown memos, templates, and the account tree to Anthropic and writes only after confirmation:

categorize --directory "$MY_MEANS" --auto

export ANTHROPIC_API_KEY=your-api-key
suggest --directory "$MY_MEANS" --dry-run

--dry-run prevents a local write but still makes the remote request. See the command-line guide for the complete security and recovery contract.

The documentation separates user workflows from the Python API and shared infrastructure: