A chart is a filter you have to know how to write. Expense has had those for a while: type the filter, get the chart. The interesting case is the one where you do not know the filter, because you are asking a question instead.
Ask "did I spend
π₯ All about software design, development, and culture. A mix of insightful and funny. Goes great with coffee. β
Labnotes (by Assaf Arkin)
β’ Assaf Arkin
A chart is a filter you have to know how to write. Expense has had those for a while: type the filter, get the chart. The interesting case is the one where you do not know the filter, because you are asking a question instead.
Ask "did I spend
Labnotes (by Assaf Arkin)
β’ Assaf Arkin
Connect to Expense There's a debate going on whether MCP is better than API/CLI access, since modern LLMs have access to the CLI and can do REST over HTTP easily. I think it's a pointless debate. APIs have their own design guidelines,
Labnotes (by Assaf Arkin)
β’ Assaf Arkin
The IRS wants foreign spending in dollars, converted at the rate for the day you paid. Not the day you file, and not the day you finally remember the receipt. Expense does that conversion itself now.
The rate is the ECB's daily reference for the expense date, fetched
Labnotes (by Assaf Arkin)
β’ Assaf Arkin
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
Labnotes (by Assaf Arkin)
β’ Assaf Arkin
Labnotes (by Assaf Arkin)
β’ Assaf Arkin
There are many 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 look at metadata on its own, so the same PDF
Labnotes (by Assaf Arkin)
β’ Assaf Arkin
The search box on the expense list in Expense understands fields now. report:, category:, and merchant: match exactly, case-insensitive, and description: matches anywhere in the description. Values can contain spaces: report:2026 travel is one filter, not two. Repeating a key ORs (merchant:shell merchant:chevron), mixing keys ANDs,
Labnotes (by Assaf Arkin)
β’ Assaf Arkin
Fold I love this. β€οΈ It's yet another one-person app coded with AI that solves the eternal todo list problem. Sounds utterly redundant, but when you're not building for a huge target market, you can make some insightful choices.
Write the task,
Labnotes (by Assaf Arkin)
β’ Assaf Arkin
Every receipt that lands in Expense has to become structured data: merchant, date, amount, category. A language model can do that, but model calls cost money and seconds, so the pipeline is designed around not making them. Most receipts never reach a model.
The order goes like this.
Text first.
Labnotes (by Assaf Arkin)
β’ Assaf Arkin
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.
Some of the keys I actually use:
g e expenses, g r reports, g m emails, g
Labnotes (by Assaf Arkin)
β’ Assaf Arkin
A nosy polar bear and a lucky squirrel: Wildlife Photographer of the Year 2026 shortlist Some wildlife photos for your viewing pleasure.
The world is changing. This weekend we got a post about the software industry emulating fast fashion, because AI makes software so cheap to produce. We'll
Labnotes (by Assaf Arkin)
β’ Assaf Arkin
Most expense apps only auto-import receipts from Gmail accounts. Expense now works with FastMail β this is how it works, what it gets right, and what it lacks.
I built Expense for people who file taxes as individuals β freelancers, self-employed, side hustlers. The pain point is always
Labnotes (by Assaf Arkin)
β’ Assaf Arkin
Clarissa "What if we kissed on the Cray supercomputer loveseat?"
Vibe coding and quality "When you hear that some app was βvibe codedβ, how much quality do you expect?"
I was just wondering about this very topic. I think LLMs can do a remarkably
Labnotes (by Assaf Arkin)
β’ Assaf Arkin
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
Labnotes (by Assaf Arkin)
β’ Assaf Arkin
I second that recommendation: An Update on Leaving Gmail for Fastmail. I've been using FastMail for over a year now and I like the progress they're making adding useful new features to the app. Sadly, there are not enough services that support the FastMail API
Labnotes (by Assaf Arkin)
β’ Assaf Arkin
How I Replaced USPS Informed Delivery With a Cleaner Email Digest
So I read this article and I just thought, why not try it out myself?
I like Informed Delivery because it emails on days when I receive new mail, so that I donβt have to go downstairs
Labnotes (by Assaf Arkin)
β’ Assaf Arkin
Karel Titeca "Richard Scarry already summarized everything there is to know about cyber security, about 50 years ago."
Yes, I just asked DeepSeek V4 to run a security audit of my code, because why not? The code is not super valuable, the service doesn't hold any
Labnotes (by Assaf Arkin)
β’ Assaf Arkin
Me just asking DeepSeek to make my app go faster, to which it replies with:
The cumulative effect across all the changes so far: the list page went from 6 DB queries to 4 (removed merchants + cached rates + cached account), and the edit page went from loading all expenses to
Labnotes (by Assaf Arkin)
β’ Assaf Arkin
a brief history of consumption
This week I completed developing the expense report app. This is the software that I am working on for getting all my tax stuff together β receipts, mileage and what not. This is made using Deepseek V4 Flash and the total cost of the project
Labnotes (by Assaf Arkin)
β’ Assaf Arkin
$9.20 to vibe-code 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
Labnotes (by Assaf Arkin)
β’ Assaf Arkin
Pixelcats "Opened the mail .. Derpy arrived early! SQUEE!"
Did I just vibe-code an app because I didnβt like the new UI? Why yes I did. Iβve been using Expensify for many years to keep track of my expenses. It was good. There were
Labnotes (by Assaf Arkin)
β’ Assaf Arkin
I have an AI agent that helps me handle legal cases. It's not a lawyer, but I can iterate with it for hours on different scenarios, work on collecting evidence, ask clarifying questions, etc. It charges me an hourly rate of $1.20, so 100x cheaper than an
Labnotes (by Assaf Arkin)
β’ Assaf Arkin
MacPaw releases CleanMyMac CLI for cleaning developer and AI environments on macOS I love that it's a CLI, super easy to use, and cleans up your developer caches, build artifacts, and AI coding junk. brew install cleanmymac

Writing & Editing Stack Using Zed, Harper, Vale
Labnotes (by Assaf Arkin)
β’ Assaf Arkin
Cat "Jeez, would you look at the time?"
InkLeaf Foldable screen, but not a phone β an e-Ink tablet on which you can read and write. Stylus included.

In defense of not understanding your codebase
Thatβs why many engineers take up open-source
Labnotes (by Assaf Arkin)
β’ Assaf Arkin
David Phd "The British are adding panels to the Bayeux Tapestry while its in London"
Chatto aims to be the group chat application that you actually enjoy using. Youβre probably familiar with the one that rhymes with βknack&
Labnotes (by Assaf Arkin)
β’ Assaf Arkin
Shawn "Fruan" Poulsen "Thirst trap"
SmoothCSV CSV editor without the Excel overhead. Features include smooth cell editing, SQL queries, cell and row swapping, command palette, and more. Since it's a Tauri app, minimal memory usage and super smooth UI.

Wordgard Open-source
Labnotes (by Assaf Arkin)
β’ Assaf Arkin
Tjeerd Royaards "Hot. Cartoon from last year."
DevCleaner Free space on your Mac that's currently used by the caches of Xcode, npm, Cursor, Claude, et al. Runs local, minimum memory footprint, and there's a free version.

Cotypist Text auto-complete that runs
Labnotes (by Assaf Arkin)
β’ Assaf Arkin
Labnotes (by Assaf Arkin)
β’ Assaf Arkin
Labnotes (by Assaf Arkin)
β’ Assaf Arkin
Frechrotz_Pix 'Lego- bzw. Klemmbausteine'
pitchfork A devilishly good daemons manager: start/stop daemon, automatic restarts, health checks, file watching, cron scheduling, and many more useful features.

OH: "Their version of agile is, we can keep changing our mind until it's