finds.dev← search

// the find

whisper-money/whisper-money

★ 1,129 · PHP · NOASSERTION · updated Oct 2026

Understand your personal finances. Forget Excels, try Whisper Money.

A self-hosted personal finance app built on Laravel 12, PHP 8.4, React 19 and Inertia, with MySQL and Redis underneath. It covers accounts, transaction categorization, automation rules and monthly spending summaries, aimed at people who want their money data off someone else's servers and will run Docker or a setup script to get there.

- The AI layer is set up sensibly. Categorization, rule suggestions and reports go through laravel/ai, and each feature gets its own provider override (AI_CATEGORIZATION_PROVIDER, AI_SUGGESTIONS_PROVIDER, AI_REPORTS_PROVIDER). You can send categorization to a local Ollama server and leave the rest elsewhere, which is a real configuration choice and not just a privacy line.

- Open banking is genuinely optional. Bank connections stay off unless ENABLEBANKING_APP_ID, the private key path and the redirect URL are all set, and manual accounts plus CSV import cover the rest. Brokers and exchanges connect with their own API keys and never touch the aggregator.

- Self-hosting is taken seriously. There is a production Docker image with its own compose file, a Coolify template with health checks and generated database credentials, a CI workflow, and env tables that list defaults for almost every variable.

- The license is CC BY-NC 4.0. That is a Creative Commons license, not an open-source one, and it bars commercial use. You can't sell it or run it as a paid service without separate permission, and the 'open-source' topic tag will mislead anyone who only reads the tags before adopting it.

- The privacy pitch and the default config disagree. AI_PROVIDER defaults to gemini, so a stock install sends transaction descriptions to Google. Keeping everything local means running Ollama yourself and pulling a model. The README offers one example (gemma3:12b) and says nothing about how its categorization compares with the Gemini default.

- The quick start is bash <(curl -fsSL https://whisper.money/setup.sh). For a project whose main claim is that you can check where your data goes, piping a remote script straight into a shell is the first thing a careful adopter will want to read, and the README doesn't mention it or offer a download-then-inspect route.

- Bank sync is the headline feature but the hardest one to run. It needs an EnableBanking application, an RSA key pair registered against it, a redirect URL and a paid third-party aggregator. Most self-hosters will end up on CSV import, which is fine, but the marketing copy doesn't say so.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →