Financial infrastructure for you and your agents
Use one part of Expensicat, or all of it.
Invoicing, time tracking, bank transactions, and receipts and bills each work on their own. Use one today and switch on the next when you need it. Your agent reaches every part through MCP, the CLI and the API.
npx @expensicat/cli@latest login expensicat tracking start "Website rebuild"
Every part works alone
Pick the part you need.
Onboarding asks which parts you'll use, and the rest start hidden in your sidebar until you bring them back.
- Time tracking
Only need to track time?
Run a timer from the app, from Claude or from your terminal, against your projects and their rates. Nothing else needs setting up.
expensicat tracking start "Website rebuild"Better togetherAdd invoicing and your hours become invoice lines at the project rate.
- Bank transactions
Only need your bank transactions?
Connect a bank in Europe, or import a statement from any other. Transactions come in categorized, and one command gets them into your script or spreadsheet.
expensicat transaction list --jsonBetter togetherAdd receipts and bills, and each one is matched to its transaction.
- Invoicing
Only need invoicing?
Quotes, invoices, credit notes and recurring invoices, numbered in sequence and issued in the format the law asks for, by email or over Peppol (early access). Customers can pay by card into your own Stripe account.
expensicat invoice createBetter togetherAdd your bank and incoming payments are matched to the invoices they settle.
- Receipts and bills
Only need receipts and bills?
Forward them to your inbox address, connect Gmail or Outlook, or send a photo on WhatsApp. Each document is read when it arrives: supplier, date, amount and currency.
expensicat inbox upload ./receipts --recursiveBetter togetherAdd your bank and each receipt is matched to the payment it covers.
Your agent, our tools
Bring the agent you already use.
Cat works in the app and on WhatsApp. Anywhere else, connect your own agent to every part of Expensicat.
MCP
Claude, ChatGPT, Cursor, Raycast, Perplexity and OpenCode connect with one sign-in and reach every part of Expensicat.
Connect an AI clientCLI
Commands print JSON with
CLI docs--json, and--describeprints the full command schema for an agent to read.REST API and SDK
A REST API and a TypeScript SDK, for the scripts and dashboards you build yourself.
API referenceOAuth apps
Build an app other Expensicat users can connect. It gets only the scopes each user approves.
Authentication docs
Control
Whoever does the work, you decide.
An agent with access to your books works within limits you set.
- 01
Cat asks first.
Anything that sends, issues, deletes or changes access waits for your approval.
- 02
Keys do what you allow.
Each API key and OAuth app carries only the scopes you grant it.
- 03
Retries are safe.
Repeat a request with the same idempotency key and Expensicat returns the invoice it already created.
- 04
Numbers come from code.
Expensicat calculates every total and tax amount. A model never makes up a figure.
Build on it
Invoicing inside your own product.
Sending invoices from a marketplace, a SaaS billing flow or your own agent? Expensicat issues them for you: sequential numbering, Factur-X, ZUGFeRD, XRechnung and Peppol UBL, a PDF with the structured file beside it, and the same European checks as the dashboard.
Start with the part you need.
Expensicat is free during beta, and you can start without a credit card. Hide or show any part in your sidebar whenever you like.