I Built a Menu Bar Revenue Dashboard With Claude Code
For every platform I earn on (like Medium, Substack, Gumroad, PayPal…)
My Medium friends can read this over on Medium.
To find out how last month went, I used to open six browser tabs. Or more.
Two Stripe dashboards, Gumroad, RevenueCat, PayPal, and the Amazon Associates page that, by the way, looks like it was designed in 2011. Probably was.
That's annoying.
So I used Claude Code to build a Mac menu bar app. Now there's a number in my menu bar that shows my earnings in detail. It updates every thirty minutes. I click it and see which platform brought what.
The app I didn't buy
There is probably a paid Mac app for this out there. I bet. I didn't want to buy or subscribe to another tool, though.
So my little menu bar app idea was born. It takes my app subscription payments (for the paid apps I have in the App Store). My earnings from Medium, Substack and Gumroad via Stripe, my PayPal income (mostly from affiliate marketing), and a few other sources.
Then, it checks all, because some overlap. And then I have a clean number of my income.
The tool
About 600 lines of Python, no dependencies, nothing to install. It reads the credentials from a folder where all my keys live, hits five APIs, converts everything to euros using the European Central Bank's daily rate, and prints this:
Umsätze 01.07.2026 bis 31.07.2026
Stripe · Writing (12 Zahlungen)
Medium …
Substack …
Gumroad …
PayPal (2 Zahlungen)
WriteStack (Affiliate) …
RevenueCat (26 aktive Abos)
App subscriptions …German, because it's for me.
It costs nothing to run and there's no account anywhere. My revenue numbers don't travel to a company I've never heard of. The API keys never leave the laptop, and I gave every one of them read-only permission, so the worst case is somebody learns what I earn.
Menu bar
I wanted a number in the menu bar, without opening anything.
Writing that as a native Mac app is a whole lot of Swift code. Don't need that right now.
Instead I used SwiftBar. It's a free, open source app that runs any script on a schedule and puts whatever the script prints into the menu bar. The filename sets the interval, so a file called revenue.30m.sh runs every thirty minutes. First line of output is what you see up top. Everything after a line with three dashes becomes the dropdown menu.
💶 5.234,56 €
---
Stripe · Writing: … | font=Menlo
-- Medium: …
-- Substack: …
PayPal: …
RevenueCat: …
Updated 12:05 | color=gray
Refresh | refresh=trueMine shows a rolling 30 days rather than the calendar month, for a reason. On the first of every month a calendar view says zero, and two days of staring at zero is… depressing.
SwiftBar has hundreds of plugins people wrote for other things. Weather, CPU temperature, crypto prices, unread mail. I only use the one, but the point is you can put anything up there without building an app.
Amazon
One thing is still missing: Amazon Associates. There's no API for affiliate earnings right now. At least, I haven't found one.
The Product Advertising API is being replaced by the Creators API, and I set up credentials before checking what it does. Four operations, all product data. Nothing about commissions. Amazon runs an S3 data feed with the real numbers, but you get in by writing to support and asking nicely, and they don't give it to everyone. I sent the request. No answer so far.
So that one number gets typed into a CSV file once a month, by hand. For now.
Downsides… there are always some
Nobody maintains this but me. If Stripe changes something, my script gets it wrong.
The Stripe CLI login expires every 90 days, so twice a year I have to log in again. I'll forget both times, which is why the script now warns me two weeks ahead. There is a way around this. I'll try that later.
The currency conversion is a compromise. Everything becomes euros at today's rate, including a payment from March. Fine for "how are we doing", not so for a tax return.
The Bottom Line
I've wanted this for months and never built it, because a tool that talks to five APIs was a weekend I didn't have.
But that script with SwiftBar is pretty sweet and works great.
Love the quick check of numbers.
If you're not already, follow me on Medium.



