Zero-knowledge money planner. Budgets, recurring bills and a month-by-month ledger, encrypted on your device before it ever reaches your server — not even the server can read it. https://libreportal.org
  • JavaScript 39.7%
  • Python 25.5%
  • Kotlin 25%
  • CSS 8.7%
  • HTML 0.8%
  • Other 0.2%
Find a file
LibrePortal 702cb51aab Open Settings from the cog on the sign-in screens instead of only hiding the header
The header was taken off the screen as Settings opened, and the screen under it was put
back on top of Settings. It now goes back underneath.

Assisted-by: Claude Opus 5.5
2026-11-01 18:46:41 +00:00
android Open Settings from the cog on the sign-in screens instead of only hiding the header 2026-11-01 18:46:41 +00:00
banks Start LibreLedger: an encrypted money ledger that stores only ciphertext 2026-09-17 01:17:16 +01:00
docs Lay Ask about money out as tiles, add notes on entries, and add Pay by a date bills 2026-10-30 13:47:07 +00:00
tests Lay Ask about money out as tiles, add notes on entries, and add Pay by a date bills 2026-10-30 13:47:07 +00:00
vendor Ship Yjs and HKDF with the app, ready for live editing 2026-10-02 19:08:13 +01:00
.dockerignore Add Ask about money: a safe-to-spend figure, plain-words answers from your own Claude or ChatGPT key, and a small helper 2026-10-30 12:11:40 +00:00
.gitignore Start LibreLedger: an encrypted money ledger that stores only ciphertext 2026-09-17 01:17:16 +01:00
accounts.js Rename LibreLedger to LibreMoney and add Upgrade encryption 2026-10-18 20:59:44 +01:00
app-signin.css Let the phone app sign in through the gate, with its own short-lived tokens, and unlock with a fingerprint (2.3.0) 2026-10-21 19:59:54 +01:00
app.js Lay Ask about money out as tiles, add notes on entries, and add Pay by a date bills 2026-10-30 13:47:07 +00:00
appsignin.py Work in progress: SSO names, presence as people, heal incomplete device copies, share window redesign 2026-10-24 11:55:41 +01:00
ask.js Lay Ask about money out as tiles, add notes on entries, and add Pay by a date bills 2026-10-30 13:47:07 +00:00
bio.js Let the phone app sign in through the gate, with its own short-lived tokens, and unlock with a fingerprint (2.3.0) 2026-10-21 19:59:54 +01:00
collab-ui.js Show how much each person spends: people in a ledger, a Who on every payment and recurring item, and a By person card for each month and year 2026-10-26 17:42:40 +00:00
crypto-accounts.js Rename LibreLedger to LibreMoney and add Upgrade encryption 2026-10-18 20:59:44 +01:00
crypto-fallback.js Rename LibreLedger to LibreMoney and add Upgrade encryption 2026-10-18 20:59:44 +01:00
crypto.js Rename LibreLedger to LibreMoney and add Upgrade encryption 2026-10-18 20:59:44 +01:00
Dockerfile LibreMoney 2.7.0 2026-10-30 13:47:07 +00:00
favicon.svg Rename LibreLedger to LibreMoney and add Upgrade encryption 2026-10-18 20:59:44 +01:00
index.html Add Ask about money: a safe-to-spend figure, plain-words answers from your own Claude or ChatGPT key, and a small helper 2026-10-30 12:11:40 +00:00
ledger-doc.js Lay Ask about money out as tiles, add notes on entries, and add Pay by a date bills 2026-10-30 13:47:07 +00:00
LICENSE Start LibreLedger: an encrypted money ledger that stores only ciphertext 2026-09-17 01:17:16 +01:00
money-ask.js Lay Ask about money out as tiles, add notes on entries, and add Pay by a date bills 2026-10-30 13:47:07 +00:00
README.md Lay Ask about money out as tiles, add notes on entries, and add Pay by a date bills 2026-10-30 13:47:07 +00:00
server.py LibreMoney 2.7.0 2026-10-30 13:47:07 +00:00
styles.css Lay Ask about money out as tiles, add notes on entries, and add Pay by a date bills 2026-10-30 13:47:07 +00:00
sync.js The live connection works behind Traefik's compression, the status pill says what is going on, and the month bar sticks 2026-10-25 11:58:41 +00:00
theme.js Start LibreLedger: an encrypted money ledger that stores only ciphertext 2026-09-17 01:17:16 +01:00

LibreMoney

A zero-knowledge money planner. Budgets, recurring bills and a month-by-month ledger, encrypted on your device before it ever reaches your server. Not even the server can read it.

LibreMoney was called LibreLedger until version 2.2. Your ledgers open exactly as before.

It is for households and small groups who want to plan their money together without handing their finances to a bank app, a budgeting service or the person who runs the server.

What you get

  • One clear screen. Your account balances at the top, then a ledger month by month with a running balance that carries from one month into the next.
  • Recurring bills and income. Rent, phone, salary: set the schedule once and drop each month's entries in with a click.
  • Totals, savings and housing summaries, several budgets in one ledger, and CSV or PDF export.
  • Who spends what. Add the people in a ledger (a name, or someone who has the ledger shared with them), mark each payment as theirs or Shared, and see each person's spending, with Shared costs split evenly or by percentage, per month and per year.
  • Ask about money. A safe-to-spend figure and your lowest point before the next payment, worked out on your device. Optionally add your own Claude or ChatGPT key and ask in plain words ("Can I afford £40 on Friday?"); names are swapped for labels before anything is sent, and the sums are never done by the AI.
  • Notes and pay-by bills. Add a note to any entry or recurring item, and set a bill to "Pay by a date" (a total, a due date and what is paid so far) so it is planned for, not treated as due today.
  • Together, live. Share a ledger with the people you choose. Changes appear on everyone's screen within a second, and you can see who is here and what changed. Edits made offline are kept and sent when you are back.
  • Encrypted end to end. Everything is locked in your browser with a key made from your own password. There is no recovery: lose the password and the data is gone, which is the point.
  • Signs in with your LibrePortal account. On a LibrePortal server, people are already known, so there is no extra account to make.
  • Android app. Several accounts, each on its own card, from the LibreMoney app.
  • Works on your home network. Plain http://ip:port is fine on a network you trust.

Get started

  • On LibrePortal: install LibreMoney from the app catalogue in the control panel. It installs private (only reachable from your trusted places) and is included in LibrePortal's backups. New to LibrePortal? Install it first.
  • On your phone: download the Android app, or see the download page.
  • On its own: it also runs as a small container or a single Python program; see docs/self-hosting.md.

Learn more

Contributing and reporting problems

Found a bug or have an idea? Open an issue. Please never post passwords, keys, passphrases or other secrets in an issue; describe the problem and we will say what to share. Security problems: use the report a bug page rather than a public issue. Pull requests are welcome.

Licence

GNU AGPL-3.0-or-later. The bundled encryption libraries and Yjs are MIT-licensed; bank logos belong to their owners.