Agentic plain-text accounting, from every surface you work in. Open-source web and mobile clients, a Python CLI and reporting library, and skills for coding agents.
Mobile apps
Snapshot 2026-08-03 23:56:39 UTC · version 1
Research document
Beancount.io
Agentic plain-text accounting, from every surface you work in.
Open-source web and mobile clients, a Python CLI and reporting library, and skills for coding agents.
⭐ Star on GitHub · Web app · Mobile apps · Start building · Contribute · Roadmap · Issues
Turn a plain-text ledger into reports you can explore — open the live example.
Beancount.io is a developer-friendly workspace for Beancount ledgers. Your books remain readable plain text while the surrounding tools add polished reports, transaction entry, Git-backed collaboration, automation, and access from the browser, phone, terminal, or a coding agent.
Mobile apps
Review your finances, add transactions, scan receipts, and edit ledger files from the native Beancount client. The same open ledger remains available from the web, terminal, Python, and agent workflows.
Explore the mobile product tour or run the Expo app locally.
Why developers build with it
- Open, inspectable data — ledgers are text files that work with Git, scripts, editors, and the wider Beancount ecosystem.
- Useful at every layer — use the finished interfaces, automate local
.beanfiles from Python, or build new workflows on the parsing and reporting library. - Modern, typed stacks — React 19, React Native, TypeScript, GraphQL, Python 3.12, strict type checking, and package-scoped CI.
- Agent-ready workflows — the CLI and reusable skills give coding agents structured ways to create, validate, query, and update ledgers.
- MIT licensed — clients, developer tools, and libraries can be studied, adapted, and extended.
What is here today
| Package | Status | What you can build with it |
|---|---|---|
dashboard/ |
Active web client | Ledgers, journal, reports, Monaco editor, imports, collaboration, and an AI assistant. React 19 + TanStack Start + Apollo. |
mobile/ |
Active iOS & Android client | Native transaction entry, account views, receipt capture, ledger editing, light/dark themes, and 13 locales. Expo + React Native + Apollo. |
cli/ |
0.1.0 |
Read and write directives, check and format files, run BQL and reports, manage remote ledgers, or chat with a local-ledger agent. Python + Typer. |
fava-slim/ |
0.1.0 |
Load and filter ledgers, build account trees, query data, and generate financial statements without the Fava web UI. Typed Python. |
skills/ |
Active skills | The agent-native accounting loop: scaffold a ledger, import bank exports with dedup, author tested beangulp importers, reconcile against statements, migrate from Mint/Monarch/QuickBooks, query your finances in plain language, run a month-end close, and record options trades — all confirm-gated and bean-check-verified. |
The dashboard and mobile app are clients for the hosted Beancount.io API. The backend behind that API will be open-sourced soon. The CLI, fava-slim, and ledger skills also support local-first workflows that do not require the hosted service.
Choose your entry point
There is no root package to install. Each package owns its dependencies and checks.
Web dashboard
Requires Node.js 22, Yarn 4 through Corepack, and a Beancount.io API endpoint.
cd dashboard
corepack enable
yarn install --immutable
cp .env.example .env
yarn dev
The app runs at http://localhost:5173. See the dashboard setup guide for environment variables and architecture.
Mobile app
Requires Node.js 20.19.4 or newer and Yarn Classic.
cd mobile
yarn install
yarn start
Expo will guide you to iOS, Android, or a connected device. See the mobile development guide for the full workflow.
CLI and Python tooling
Requires Python 3.12 and uv.
cd cli
uv sync --all-groups
uv run beancount-cli --help
The CLI reference covers local reads and writes, validation, formatting, queries, reports, authentication, and ledger management. Library contributors can start independently in fava-slim/.
Quality bar
Every active package has path-filtered CI so unrelated changes stay fast:
| Package | Run before opening a PR |
|---|---|
| Dashboard | cd dashboard && yarn format:check && yarn lint && yarn test && yarn build |
| Mobile | cd mobile && yarn lint && yarn typecheck && yarn test:unit |
| CLI | cd cli && make check-all |
| fava-slim | cd fava-slim && make check-all |
A repository-wide secret scan also gates every push and pull request.
Contributing
Contributions are welcome across product UI, accounting workflows, accessibility, translations, tests, Python tooling, and agent skills. Start with the contributing guide, browse open issues and the public adoption roadmap, and keep changes focused on one package when possible.
If Beancount.io is the kind of open, programmable finance software you want to see more of, star the repository and help more developers find it.
Community
- Website: beancount.io
- Chat: Telegram
- Mobile: App Store · Google Play
License
MIT © Beancount.io
Why MDRSS assigned this score
- Production catalog audit 2026-08-04
- Taxonomy classified from title, annotation, source and Markdown signals
- Agent usefulness evaluated from structure, procedures, examples, evidence and retrieval value
Evidence (1)
Discussion 0
Sign in to join the discussion.