Labnotes

Connect to Expense

A feature can be finished and still be unusable. Expense has had an MCP server for a while: point an assistant at https://expense.labnotes.org/mcp, it discovers the OAuth flow, you sign in once. That part works. The part that did not was the last mile. The how

Read more 1 min read

Expense: One receipt, once

There are four ways for the same receipt to enter Expense: forward it by email, drag the file into the editor, let the MCP tool fetch it, connect a mailbox and have it imported for you. Each route used to check metadata on its own, so the same PDF arriving

Read more 1 min read

Finding things in Expense

The search box on the expense list in Expense understands fields now. report:, category:, and merchant: match exactly, case-insensitive. description: matches anywhere in the description. Values can contain spaces, so report:2026 travel is one filter and not two. Repeat a key and the values OR together. Mix keys

Read more 1 min read

How Expense reads a receipt

Every receipt that lands in Expense has to become four fields: merchant, date, amount, category. A model can do that. Model calls also cost money and seconds, so the pipeline is built around not making them. Most receipts never reach one. Text comes first. An email body or a PDF

Read more 1 min read
September 8th, 2026 1 min read

Cmd+K at Expense

Expense now has a command palette. Press Cmd+K anywhere (Ctrl+K on Windows and Linux) and type what you want to do: go somewhere, add something, search, export. The mouse is optional. The keys I actually use: * g e expenses, g r reports, g l emails, g x reconcile,

Read more
September 1st, 2026 2 min read

Connect Fastmail: your receipts move from inbox to Expense

Most expense apps auto-import receipts from Gmail. If your mail lives anywhere else, you are the import. Expense connects to FastMail directly now. Link your inbox once and receipts file themselves as they arrive, merchant, amount, and category filled in, dated by the email. Two steps: 1. In FastMail,

Read more
August 25th, 2026 1 min read

Reconcile in Expense

And I made a cool thing in Expense that I find incredibly useful. Once a month comes along and I have my statements, I import the PDFs into Expense and let it reconcile the expenses. It looks up if the expense already exists in my list and reconciles it if

Read more
August 6th, 2026 2 min read

Expense — receipt tracking for easier tax filing

$9.20 to steward an app into existence in one week. It's made of 38,000 lines of code and 15,700 lines of comments. Tests make up about 21% of the code. Spec size is about 3,200 words. I understand that "vibe code" feels

Read more