Finny: a local finance assistant for Linux that answers without a language model
Finny is a local-first personal finance assistant with a native Linux desktop window, written in Rust with eframe/egui. It answers questions about rates, inflation, exchange rates and calculators with a Naive-Bayes classifier and fuzzy matching, not a language model, and it cites its public sources. It is one binary and one SQLite database, with no web server, cloud account or telemetry.
- Platform
- Linux (Ubuntu)
- Language
- Rust
- Licence
- Not stated in the repository
- Requires
- Rust stable toolchain (run.sh can install it via rustup)
- X11 or Wayland client libraries
- Run
./run.shfrom the repository folder
How do I install and run Finny?
git clone https://github.com/yunusemrejr/finny.git
cd finny
./run.sh
The first run resolves dependencies, builds the release binary and opens a native window. Chat history persists to ./data/finny.db. run.sh installs the Rust toolchain through rustup if it is missing, asks before running anything with sudo, and never touches your data. ./verify.sh runs a release build, the unit tests, a headless GUI self-test (Xvfb with software GL when available) and checks that the database is created.
What can Finny answer?
| Class | Example |
|---|---|
| Direct lookup | latest US CPI |
| Comparison | compare policy rate across US UK Japan |
| Calculation | calculate bond duration D=7 and 25bp |
| Causal scenario | how could yen appreciation affect carry trades |
| Definition | define duration |
| Trend or forecast | US CPI over the last 5 years, forecast US CPI next year |
| Data-availability challenge | exact volume of stop-loss orders at 152.50, which gets a firm refusal |
Where does Finny get its data?
Live retrieval is on by default and uses a fixed set of keyless public APIs (World Bank, BLS, frankfurter.app) and central-bank or statistics-agency pages. Fast JSON APIs are tried first and slow page scrapes last. Requests are HTTPS only, guarded against server-side request forgery, and carry full provenance. Switch it off with the toggle or with FINNY_NETWORK=0. The currency converter covers 10 currencies (USD, EUR, GBP, JPY, CHF, CAD, AUD, CNY, INR, TRY) with live reference rates from frankfurter.app (ECB) and a built-in approximate matrix as the fallback.
Which calculators are built in?
All are deterministic: bond duration, FX percentage change, CAGR, mortgage and loan payments, amortization schedules, present value, inflation adjustment, P/E, debt-to-equity, current ratio, ROE, dividend yield, Black-Scholes, Sharpe ratio, portfolio variance, break-even, WACC, compound interest and currency conversion.
Quick answers
- Is Finny powered by a large language model?
- No. It uses a Naive-Bayes intent and small-talk classifier with fuzzy, typo-tolerant slot matching. The calculators are deterministic.
- Does Finny need an internet connection?
- Not for the core experience: there are no accounts and no internet is required. Live retrieval of rates and statistics is on by default and can be switched off with the toggle or FINNY_NETWORK=0.
- Where is my chat history stored?
- In a local SQLite database at ./data/finny.db; FINNY_DATA_DIR changes the location. A button clears every chat and cached source after a confirm step, and the database file itself is never deleted.