Typing invoices into a spreadsheet is the least glamorous job in a small business and one of the most reliably paid-for. The products that do it are good, and they share two properties that are easy to accept one at a time and harder to accept together: they charge per page, and they only work once you have uploaded the invoices.
A folder of supplier invoices is not a neutral pile of paper. It is a map of who you buy from, what you pay them, what your margins probably are, and which bank accounts the money moves between. Handing that to a third party is a real decision, and it is usually made by nobody, in a hurry, at the end of a quarter, because the alternative is typing three hundred lines by hand.
Running the model on your own machine removes the decision. There is no upload, so there is no data-processing agreement to read, no retention policy to trust, and nothing in a bucket after you stop paying. And since the model runs locally, there is nothing to pay: the per-page meter, which is exactly the wrong shape for a shoebox of receipts, simply is not there.
So we built QVAC Invoice Manager: an illustrative example, not a product, that reads a folder of invoices and fills in an accounting table, on-device and for free. It is built on the QVAC SDK, and the point is the pattern, so you can clone it and make it your own. See it in our video below:
Repo: github.com/tetherto/qvac-examples (the qvac-invoice-manager-demo example).
What the demo does
Point it at folders, not files, because a year of expenses is never one flat directory.
- You decide the columns. Name them, give each a type, add a hint. Those columns become the table. A bookkeeper in France needs different ones than a freelancer filing VAT, and neither should wait for a vendor to add a field. Three tables ship with it to start from.
- Folders are read all the way down, several at once, so
2026/<supplier>/works as one batch. - Scans and photos work too, not just PDFs with a text layer. The app picks the right reader per document.
- It tells you what it is unsure about. A field that is not on the document says so. A value that failed a sanity check says that instead, with the reason. Then
net + tax = totalis checked with arithmetic, and a row that does not add up is flagged whatever the model said. You still check the numbers, but you know where to look. - CSV out, with a European semicolon flavour, so it opens cleanly in the spreadsheet you already use.
Why local makes sense here
- Nothing is uploaded. Supplier names, prices, VAT numbers, and bank details stay on the machine they are already on. There is no third party to trust, because there is no third party.
- It is free. No per-page charge, no monthly minimum, no quota to weigh before pointing it at a full year.
- It works offline. The models download once and cache, and after that a plane is as good as an office.
- It works on documents you would not upload. Which, for anything financial, is most of them.
Recommended hardware
| Requirement | |
|---|---|
| RAM | 8 GB with one model at a time, 16 GB or more comfortable |
| Disk | About 2.5 GB for the text model and about 1.6 GB for the vision one. |
| GPU | Apple Silicon (Metal) or a Vulkan GPU. CPU works, slower |
| OS / runtime | macOS 14+, Windows 10+ or Linux; Node.js 22.17 or newer |
Not sure your machine can handle it? Run npx -y @qvac/cli doctor.
Get it
git clone https://github.com/tetherto/qvac-examples
cd qvac-examples/qvac-invoice-manager-demo
npm install
npm start
Click Choose folders, point it at a year of expenses, and watch the table fill. Four sample documents ship in demo/ so you can try it without supplying your own. QVAC is open source (Apache 2.0) and free. Docs: docs.qvac.tether.io. If you build something with it, star the repo and show us.
A note on what this is
This is not a QVAC product, and it is not an accounting, bookkeeping, or tax product. It is an illustrative example, provided “as is”, to show what a local AI app can do with the QVAC SDK. A local model will misread documents: the flags and the arithmetic check catch a lot, not everything, and every figure must be checked by a human before it is filed or paid. You alone are responsible for how you use it, including complying with the accounting and tax rules that apply to you.