Skip to content

Finny: a local finance assistant for Linux that answers without a language model

Open-source software · 2 min read · updated

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.sh from the repository folder
Finny desktop window: a chat comparing the policy rate in the US and China with a small bar chart and source line.

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?

ClassExample
Direct lookuplatest US CPI
Comparisoncompare policy rate across US UK Japan
Calculationcalculate bond duration D=7 and 25bp
Causal scenariohow could yen appreciation affect carry trades
Definitiondefine duration
Trend or forecastUS CPI over the last 5 years, forecast US CPI next year
Data-availability challengeexact 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.

More on Downloads