AI integration
Let an AI assistant work with your invoices, without your data leaving your Mac
InvoiceOffline speaks MCP, the protocol AI assistants use to work with tools on your computer. Turn it on and Claude, Codex or any other MCP client on the same Mac can look up what you charged a client last time, draft the invoice for the job you just described, and hand you the PDF to attach to an email.
The part that makes it different from an AI feature bolted onto a web app: there is no server in the middle. Your invoices never leave your machine, because the assistant is already on it.
What it can do
Your assistant sees the same data you do and works through the same rules the app enforces for you. Invoice numbering, your business details, tax, currencies, the snapshot taken when a document is issued: all of it applies exactly as if you had clicked the buttons yourself.
| It can | It cannot |
|---|---|
| Look up clients, past invoices and your saved rate card | Send email to anyone |
| Draft a new invoice, and correct it until it is right | Delete or void anything |
| Export an invoice to a PDF file you can attach | Edit an invoice you already issued |
| Record that an invoice was sent, or that it was paid | Reach anything over the network |
You stay the one who sends. The app has never sent an email on its own, and connecting an assistant does not change that. It drafts; you review and send from your own account.
Nothing it does is silent. Every change shows up in the app the moment it happens, the lists update on their own, and invoices your assistant created stay marked as such, so you can always tell them apart from yours.
How your data stays on your Mac
No network port is opened. The app listens on a socket file inside your own user folder, with permissions that let only your account open it. Nothing on your network, and nothing on the internet, can reach it. There is no token to leak because there is nothing to authenticate to from outside your account.
It only works while the app is open. Close InvoiceOffline and the connection is gone. This is deliberate: there is no background service running your invoicing when you are not there.
It is off until you turn it on. A fresh install has it disabled, and turning it on is one button in Settings.
One honest boundary: this page is about what InvoiceOffline does with your data. Once your assistant reads an invoice, what happens to that text is governed by whoever makes your assistant, not by us. If that matters to you, an assistant that runs its model locally keeps the whole chain on your machine.
Setting it up
Open InvoiceOffline, go to Settings, find AI integrations (MCP) and turn it on. The app shows you the exact configuration for your assistant, with the correct path already filled in, and a button to copy it. What follows is the same thing, for reference.
Claude Desktop. Open its menu bar: Settings, Developer, Edit Config. If that file already lists other servers, copy only the invoiceoffline block into the mcpServers it already has, rather than replacing the file. Restart Claude afterwards.
{
"mcpServers": {
"invoiceoffline": {
"command": "/Applications/InvoiceOffline.app/Contents/MacOS/InvoiceOffline",
"args": ["--mcp"]
}
}
}Claude Code. One line in your terminal, no file to edit.
claude mcp add invoiceoffline -- /Applications/InvoiceOffline.app/Contents/MacOS/InvoiceOffline --mcpCodex. Add this to ~/.codex/config.toml, then restart Codex.
[mcp_servers.invoiceoffline]
command = "/Applications/InvoiceOffline.app/Contents/MacOS/InvoiceOffline"
args = ["--mcp"]Then ask it something concrete, with InvoiceOffline open: "list my unpaid invoices", or "draft an invoice for Acme for two shoot days at 1200".
If your assistant cannot connect
Four things cause almost every failure, in order of how often they happen.
InvoiceOffline is not open. The integration runs inside the app, so the app has to be running. Open it and ask again.
The setting is off. Settings, AI integrations (MCP), Turn on. It is off by default.
The app is running from the disk image or Downloads. macOS runs an app opened straight from a .dmg out of a temporary location that changes every time, so the path in your configuration stops working immediately. Drag InvoiceOffline to your Applications folder, open it from there, and copy the configuration again. The app tells you when it is in this state instead of showing you a snippet that cannot work.
The app moved after you set it up. The configuration points at where the app was. If you moved it, copy the configuration again from Settings, which always shows the current path.
One thing that looks like a problem and is not: some clients show the server as "connected" even when InvoiceOffline is closed. That only means the client reached the piece of the app that answers the handshake. Whether the app itself is open shows up when you actually ask for something, with a message that says so.
What it costs
Nothing extra. The integration works on the free plan, with the same limit that applies to everything else: invoices your assistant drafts count towards your 5 new invoices a month, exactly like the ones you make yourself. A one-time license removes the limit, as it always did.
Reading, correcting drafts, exporting PDFs and recording payments are not capped at all.
Requirements
macOS, InvoiceOffline 1.7.0 or later, and an MCP-capable assistant installed on the same Mac. Nothing else: no Node, no npm, no separate server to install or keep updated. The integration is part of the app you already downloaded.
Try it with your own assistant
Download InvoiceOffline, turn on AI integrations in Settings, and paste the configuration it gives you. Free, with 5 new invoices each calendar month.
Free includes 5 new invoices a month, every feature, no account.