Invoice Extractor

PUBLIC BETA Open source · MIT · local-first

Every SaaS invoice,
filed before you ask.

Invoice Extractor logs into your providers' billing pages with the credentials you already keep in 1Password or Bitwarden, finds each invoice and saves it as a PDF on your disk. Use it from a Chrome extension, or hand it to your AI agent.

  • 20 providers built in
  • 0 passwords stored by us
  • 3 operating systems

During the beta the extension is installed manually from this download, not from the Chrome Web Store. The code is public, so you can review exactly what you install.

01 How it works

A

Your vault stays the source of truth

Tag your billing logins by client or company (#Acme) or put them in a folder. Invoice Extractor reads them on demand through the official op or bw CLI — including live 2FA codes. Nothing is copied to a server.

B

A recipe per provider, not a scraper per person

Each provider is a small declarative JSON recipe: where the billing page lives, how to read the table, how to download. When a site changes, one fix in the catalog fixes it for everybody.

C

PDFs on your disk, never twice

Files land in your folder with a consistent name (date, provider, number, amount). A local history avoids duplicates, so you can run it every month without thinking.

02 Two ways to use it

For humans

Chrome extension

Pick a client profile, tick the providers, press start. The extension signs in with your password manager, walks through the billing history and downloads everything — while you watch, or not.

  • Client profiles from your vault tags
  • Record mode to create a new provider
  • Download history and smart file names

For AI agents

CLI · MCP server · Skill

Ask Claude Desktop, Claude Code or any MCP client "download this month's invoices for Acme". Agents can also add a new provider on their own: they inspect the billing page, write the recipe and verify it with one real download.

$ invoice-extractor profiles --sync-1p
✓ 3 profiles · 41 logins matched
$ invoice-extractor run --profile Acme --since 2026-09-01
✓ stripe 2 · github 1 · openai 1 · hetzner 3
$ invoice-extractor onboard --provider vercel
→ needs_creation · recipe draft ready

03 Built-in providers

04 Install

You need Google Chrome, Node.js 18+ (the installer gets it for you on Mac with Homebrew and on Windows) and 1Password or Bitwarden. The installer takes care of everything else: dependencies, the automation browser, the password-manager CLI and Claude Desktop.

  1. Download invoice-extractor.zip and unzip it somewhere permanent, e.g. ~/Applications/invoice-extractor.
  2. Double-click install.command. If macOS blocks it, right-click → Open. Choose 1Password or Bitwarden when asked; secrets are typed into a native system dialog, never into a chat.
  3. Load the extension: open chrome://extensions, enable Developer mode, click Load unpacked and select the unzipped folder.

Using an AI agent? After installing, Claude Desktop already has the invoice-extractor MCP server, and Claude Code / OMP / Antigravity get the invoice-extractor Skill. Just ask:

“Sync my providers from 1Password and download last month's invoices for Acme.”

05 What it does not do

It does not store your passwords. Credentials are read from your own vault at the moment of login and never written anywhere else.

It does not need a cloud account. Profiles and history live in ~/.config/invoice-extractor. Optional profile sync between computers exists, but everything works without it.

It does not phone home. The only network traffic is your browser talking to your providers. Read the code — it is all here.