Repository navigation
Releases: hellotham/finvestlens
Release list
FinvestLens 1.2
FinvestLens on the 27 releases, on a phone, in the reader's language, and with
your own choice of where the Apple Intelligence features run. The first version
on the App Store, for Mac, iPhone and iPad; the notarized disk image for Mac is
the same version from the same source (published 4 November 2026).
New
- A phone layout. On an iPhone — and in an iPad window narrowed to a
phone's width — FinvestLens is a tab bar: Dashboard, Accounts,
Investments, Reports and More. It used to be the iPad's layout, centred
and cut off on both sides. The register is a list of postings with the
row actions on a long press; the editor changes the date, description,
notes and each split's account and amount. - Books on Box. Keep a book in your own Box account and open it with
Open from Box…, in the File menu or on the welcome screen. It goes
through a Box app you set up yourself, so no one else's app is ever
between you and your files. Saving with ⌘S, closing the book or quitting
uploads a new version — a large book in parts, so a cut-off upload carries
on where it stopped; opening it again fetches the latest first; work saved
without a connection goes up when it returns; and a version another device
saved is never replaced — Keep Both puts yours beside it. - A model of your own. Point Settings ▸ Apple Intelligence at a folder
of MLX models and choose one: it serves every Apple Intelligence feature
on your Mac. The pane is on iPhone and iPad too, where no device run has
been made yet. Nothing is bundled, recommended or downloaded. - Invoices read from their picture. Split from Invoice, Smart Import's
invoices and Categorise from Attachment read a photographed or scanned
invoice as a picture, with Vision's text reader to hand — it got every
field right on every test page, where reading the text alone missed two
totals in fifteen. A photo is turned the right way up first. - Where each request runs, said where you start it. Every command that
could leave the device says where it runs, beside its button. The App
Store version can use Apple's Private Cloud Compute, and asks you first.
The disk image cannot, because Apple does not offer it to apps distributed
outside the App Store, so it stays on your Mac. - Everything in your language. Reports, the review decks, error
messages, undo names, toasts, Siri's phrases and the starter chart of
accounts are now translated too, in all eight languages. - Investment reports rebuilt. Nine reports on one history of every
security — every buy, sell, dividend, credit, distribution and split —
laid out the same way: by portfolio, then security, with the parcels or
the history beneath, and every date, count and rate a column of its own.
Capital Gains is now the report a tax return is prepared from: each
parcel sold with its acquisition and sale dates, cost base, proceeds, gain,
days held and the ATO's treatment, and the year's net capital gain by the
ATO's steps — including, from 1 July 2027, the reform's CPI indexation,
the split of a parcel owned across that day, and the 30% minimum tax.
Who the gains are assessed for and the CPI table live under Planning ▸ Tax,
with a button that fetches the index from the Reserve Bank. Investment
Return is total return since you bought — never a figure cut to the
period — with each security's history under it, the period's own
contribution beside the total, and a money-weighted annualised rate
(XIRR). New: Income, Historical Cost, Returns by Period and
Drawdown. Closed positions on Capital Gains now means the whole history
of every position sold out of by the period's end. - Price History, readable. One security at a time over the window's
period, with quick ranges from a month to all time: the 50- and 200-day
averages and their crosses, the RSI, your buys and sells with your average
cost, the range's high, low, change, volatility and largest fall, a
benchmark drawn alongside — a cash rate you set or any other priced
security or index — and the price with the income it paid against the
price alone. The PDF carries the statistics and the month-end closes.
Better
- Saving doesn't freeze the window. The write to the book's file — seconds
on a network or cloud folder — runs in the background; on the reference
book the window's share of a save fell from 9.6 s to 0.24 s. - Apple Intelligence on Foundation Models 27. A document is cut to fit
by the model's own count of it, and a written summary has every figure
in it checked against the book before you see it. - A crashed copy no longer locks you out. A lock left behind by a
FinvestLens on this Mac that is no longer running is cleared when the
book opens, rather than the app opening with no window. - iPhone and iPad save when you leave the app. iOS can end an app in
the background without warning; the book is saved as you switch away. - Search keeps up with your typing, and its results are a register. A
keystroke searches a large book in a few milliseconds, and what it finds
shows as All Transactions narrowed to the matches, which you edit as you
would any register — the way GnuCash's Find opens its results. Void or
Delete over a selection takes every selected transaction, as one Undo. - Reports in full. Income & Expense breaks every category down into its
subcategories, every level; Cash Flow and the Account Summary show every
level of your accounts, each parent with its subtotal; and on the income
statement and balance sheet a small group shows all of its accounts. - The Transactions report covers every account until you choose some,
and an account you choose brings its subaccounts with it; a security's
postings show in its units. The account pickers scroll through every match. - Sidebar clicks land. On the Mac, clicking an account's name or balance
could select nothing — only the gap between them worked. The sidebar, and
every other list you choose from, no longer offers its text for copying,
which is what was taking the click. Accounts are dragged by a grip at the
end of the row. - Accounts opens faster on the Mac — in under a third of the time on a
large book, and faster again the next time. - The investment reports read alike. All of them share one set of
controls — the period, a Portfolio filter and, where it means something,
Closed positions and the cost-basis method — and one layout: by portfolio,
then security, largest first. - Closed positions, where you look for them. Investments says how many
are hidden, with Show beside it, and an investment report's Closed positions
switch says what it does on that report. - Wide reports fit the phone. A report's controls scroll sideways on an
iPhone instead of pushing the page off both edges, and a table with more
than three columns — the investment reports, Average Balance — reads as a
block per row, each figure under its heading. - Choosing accounts narrows a report. In Cash Flow and Average Balance,
as in Transactions, nothing chosen is the report's default scope and an
account you choose is exactly what it covers, subaccounts included. The
picker used to open with every bank account already ticked, so one click
unticked an account instead of narrowing to it. Changing the cost-basis
method or fee treatment now recomputes the report, too. - No lock left behind. Closing the last window now quits FinvestLens,
saving the book and releasing it for your other Macs. If FinvestLens is
stopped without warning — by an update or a crash — with nothing unsaved,
another Mac opens the book without asking after half an hour. - Autosave works wherever the book is. It could fail with "you don't
have permission" in a folder the app had not been given; it no longer
needs the folder.
Moving from the 1.1 disk image
The Mac app is now sandboxed, as the Mac App Store requires. A book opened
before 1.2 reopens by itself only after you have opened it once with
File ▸ Open, a drag or the Finder; the same goes for the two document folders
in Settings.
Privacy
The privacy policy now names one more request, updated 4 November 2026:
Fetch from the RBA, in the tax estimator, downloads the Reserve Bank of
Australia's public table of the consumer price index. It is started by you and
carries nothing from your book. The policy also says what it had left out:
Auto-refresh, if you turn it on for a book, updates its prices when you open
it and every six hours while it stays open.
Requirements
macOS 27 on Apple silicon, iPadOS 27 or iOS 27. FinvestLens 1.1 stays on GitHub
for macOS 26.5 and Intel Macs.
Getting it
On the App Store for Mac, iPhone and iPad, or the disk image below for a Mac. Both are version 1.2, build 11, from this tag.
FinvestLens-1.2.dmg needs macOS 27 or later on Apple silicon. It is signed with Developer ID and notarized by Apple.
SHA-256: ad75affc22df62efb10e2a9a484bd222ee86c65f279ecbc221289faede26b3fc
FinvestLens 1.1
The first release after 1.0, and a large one: 392 commits. 1.0 was a working
double-entry ledger. 1.1 is that ledger with the things a real book turned out
to need — a business side, an investments side, a planning side, a
command-line, and a navigation model that copes with all of them at once.
New
- Investments. A hub with a tab per portfolio, security detail pages,
holdings and reconciliation, bond and fund providers alongside the equity
ones, and a fundamentals sidecar. Prices come from a chosen provider with
its provenance recorded, so a figure can always be traced to where it came
from. - Business. Customers, vendors, employees and jobs; invoices, bills and
vouchers with terms and tax tables; posting, payments and credit notes;
aging and customer-summary reports; a printable invoice PDF. Verified
against GnuCash 5.16's own reports on a real book, to the cent. - Planning. Debt, lifetime and tax planners, insights, wellbeing,
a financial passport, challenges and records. Every default is visible and
editable, and none of it is advice. finlens, a read-only command line. Ledger-modelled queries over a
book — registers, balances, budgets, forecasts — with its own query and
period grammars and a REPL. Read-only by design: it cannot write to a book.
docs/cli.md is the manual.- Bank-statement importers. MT940/MT942 and CAMT.053 join CSV, QIF and
OFX, with an import matcher that heals transfers, claims rows one-to-one,
and refuses to treat free text as a bank's unique identifier. - Eight languages. German, Spanish, French, Italian, Japanese, Brazilian
Portuguese and Simplified Chinese alongside English.
Changed
- Navigation is modes, not menus. Seven modes each with their own sidebar
and tab strip; a mode's home tab cannot be closed, and the tabs a mode
always has are derived rather than remembered. One period selector governs
the surfaces that have a period. - The register was rebuilt on GnuCash's own sheet model, with in-place row
editing, working Tab order, an editable Num field, and the same view modes
on iOS. - Reports read like statements. Annual-report presentation, a Financial
Review deck, comparative statements, Average Balance, and a Trial Balance
treatment. AI-written slide narratives are gated by a validator that checks
every figure against the book. - The dashboard is a tile board that never scrolls — it fits the viewport
or it is not on it.
Fixed
Two rounds of full-codebase review closed 60 findings in July and 16 in
August. The ones a user would have felt:
- A balance sheet could fail to balance on a converted book: each column
was rounded independently, so assets and equity could differ by a cent.
Both invariants now hold at once — every column adds up to the total
printed under it, and assets equal liabilities plus equity — with any
currency-translation residue disclosed as its own equity line rather than
hidden. - A daily schedule older than about thirteen years silently stopped. The
occurrence walk spent its whole budget crossing history and returned
nothing, so the bill simply stopped appearing, with no error anywhere. "500.00 DR"imported as a deposit. Accounting exports mark the side
with aDR/CRtoken rather than a sign; the parser stripped the letters
and read the magnitude, flipping every withdrawal in the file.- A download covering several accounts posted all of it into one. Files
carrying more than one statement — an OFX with severalSTMTRSblocks, an
MT940 with several:25:blocks, a CAMT with severalStmtblocks — are
now imported one statement at a time, each against its own account. - A rule reading "amount greater than 1,000" fired on everything over a
dollar, because the threshold was parsed with a reader that stops at the
comma. Money typed by a person is now read by one parser everywhere. - A budget's rollover compared against the wrong month. The previous
period was stepped back by the current window's length in seconds, so
March's comparison ran 29 January – 28 February. - Quotes from three providers were dated a day late for readers east of
the exchange, because an instant with no timezone was read in the reader's
own. - Prices could be stamped with the wrong currency — 1,205 rows on one
reference book, including US closes recorded as an Australian fund's unit
price. The service now refuses a mismatch outright. - A carriage return in a memo broke the GnuCash round-trip, because XML
normalises line endings on parse unless the character is escaped. - Gains and losses were coloured at 2.22:1 contrast, less than half of
legible. Money now uses tokens measured against WCAG AA on every background
the app draws.
FinvestLens 1.0
The first public release of FinvestLens — a native Apple double-entry accounting
app for macOS, iPadOS and iOS, published by Hello Tham.
What's in it
Every planned phase is complete: the accounting engine, the native document with
NAS-safe locking, GnuCash import and export, the register and chart of accounts,
everyday finance, investments and multi-currency, sync and dashboard, Apple
Intelligence, small-business features, extended statement import, the planning
layer, and Ledger interchange with the finlens command line.
- Double-entry that agrees with GnuCash. Exercised against a real book of
46,553 transactions, 559 accounts and 102,706 prices, compared side by side
with GnuCash 5.16 — matching to the cent on net worth, every account subtree,
register running balances, the balance sheet and the investment reports. - Your book is a file you own. One SQLite document on local disk, iCloud
Drive or a NAS. No account, no server, nothing uploaded. - Import from anywhere. CSV, QIF, OFX/QFX, SWIFT MT940/MT942 and ISO 20022
CAMT.053, with duplicate detection and cross-account transfer completion. - Apple Intelligence on device. PDF statements, dividend notices and
invoices read on your Mac and turned into transactions to review. - Eight languages. English, German, Spanish, French, Italian, Japanese,
Brazilian Portuguese and Simplified Chinese. - Never locked in. GnuCash XML round-trips byte-identically, Ledger journals
read and write, andfinlensqueries the book read-only from the shell.
Installing
Open the disk image and drag FinvestLens to Applications. Requires macOS 26 or
later, on Apple silicon or Intel.
Coming from GnuCash? File ▸ Import ▸ GnuCash… brings across accounts,
transactions, prices, schedules and business records.
Signed and notarized
Signed with Hello Tham's Apple Developer ID and notarized by Apple, so macOS
opens it without a Gatekeeper warning. Verify it yourself:
spctl --assess --type open --context context:primary-signature -vv FinvestLens-1.0.dmg
shasum -a 256 FinvestLens-1.0.dmg
771621981936fcfcb33fd72f278f2f2bc2503b67317299e02b364e7a90f6908a
Documentation
The full manual is at https://hellotham.com/finvestlens/manual/, and
inside the app under Help (⌘?).
FinvestLens is free software under the GNU GPL v3.