
Pomeroy
Pomeroy connects Claude to your native Apple MacOS apps
Pomeroy is a $19 Mac menu-bar app that connects Claude Desktop to eight apps that already hold your life: Mail, Calendar, Reminders, Notes, Contacts, Messages, Maps and Shortcuts. You ask Claude "find the message with the door code" or "what's on today, and how long is the drive to Bristol?", and it answers from your Mac. I'm Joe, I built it alone, and it went from a research note to a signed public build in about three weeks. This is the story of the parts I'm proud of, and the one decision I still argue with myself about.
The gap
Claude Desktop can use local tools through MCP, and there were already open-source projects that hooked it up to Apple's apps. I read three of them end to end before writing a line. They taught me a lot, and they all shared the same shape: clone a repo, run a terminal command, edit a JSON config, then hope the permission prompts fire in the right order. Two of the three had effectively stopped being maintained. One advertised itself over the local network with no authentication.
The people who'd get the most out of this are exactly the people who will never open Terminal. So the product bet was small and boring: the same idea, but you double-click it.
What "double-click" hid
The install is one file. Claude Desktop opens it, and a menu-bar app appears. But making that true meant splitting the product in two.
macOS permissions belong to a signed app, not to whatever process Claude happens to spawn. So Pomeroy is a Swift menu-bar app that holds every permission and runs the actual MCP server. The thing Claude Desktop talks to is a tiny bridge with zero runtime dependencies that pipes bytes over a local Unix socket and launches the app if it isn't running. It never parses a single message. That split is why the extension you install never needs to change: the app updates itself, the pipe stays a pipe.
Each app starts switched off. Flipping one on is the only thing that triggers the macOS permission prompt for it, so Claude cannot reach an app you never chose, and a tool call for a switched-off app gets refused with the exact toggle to flip.
The Messages decision
Messages was the hard one. There's no scripting interface worth using. The words live in one SQLite file, and macOS guards it behind Full Disk Access.
Full Disk Access is the obvious answer. It's also a switch that hands an app every file on your Mac when it wants one. For a product whose whole pitch is "this reads your private stuff, trust it", I couldn't ask for that.
So switching Messages on opens a standard file picker, pointed at the database, with every other file greyed out. You pick the one file. Pomeroy keeps a read-only bookmark to it and nothing else. It cost me a custom parser for Apple's archived message format, because newer macOS versions don't store the text in the obvious column. Worth it. Nothing in the app or the docs mentions Full Disk Access.
What it will not do
Mail: search and read. It cannot send.
Messages: search and read. It cannot reply.
Contacts: look up. It never edits.
Nothing you ask, and nothing Claude reads, leaves your Mac. Pomeroy has no server to send it to.
Every host the app connects to is listed on one page, with what each request carries. There are four: the licence check, the update feed, and two addresses for exactly four usage counts (installed, first answer, free limit hit, upgraded). Those counts share a random ID minted on your Mac, which makes them pseudonymous, not anonymous, and the page says so in those words. A test parses that page and the Swift source and fails the build if they disagree. Adding a fifth host without updating the pledge is a red CI run, not a policy question.
The one I argue with myself about: 50 free actions a week
Pricing is free for 50 actions a week, no account, no card. $19 once lifts the limit on one Mac. No subscription, 14-day refund.
Why a weekly cap instead of a trial? Because the habit is the product. Most weeks, most people won't need more than 50. The ones who do have already made it part of their day, and $19 once is an easy yes for something you use daily. A 14-day trial ends before the habit forms.
The awkward part: the app is offline by design, so there's no server to ask what time it is, and the clock belongs to the person being metered. The meter only credits time from the Mac's monotonic clock, ties it to the boot session, and when anything looks strange it holds the window rather than reopening it. Moving your clock forward does nothing. Yes, I spent real days defending a $19 purchase against people who'd rather edit System Settings than pay. I'd do it again, because a cap that resets when you fiddle with the date isn't a cap, and the free tier is the marketing budget.
The licence goes the other way and fails open. If the licence server is unreachable, you stay licensed for as long as you're offline. A refunded key working for a week on a plane costs me one sale. A paying customer locked out mid-flight costs me the product.
Numbers so far
Days from first commit to first public release: 5
Downloads: 27
Paid: 4
I'll update this thread as they move.
What I'd love your take on
Weekly cap versus trial. Have you sold a one-time desktop utility with a recurring free allowance? Did it convert, or did people settle into the free tier forever?
$19 once. It's priced as an impulse buy. I keep wondering whether "read my private messages safely" is worth more than that, or whether a higher price just adds friction to a product that's meant to disappear into the menu bar.
The launch channel. Pomeroy needs Claude Desktop on macOS 15 or later, which is a narrow slice. Where do those people actually hang out?
Site: pomeroy.app. Not made by Anthropic. The bridge that Claude Desktop talks to is on GitHub if you want to read what's piping your bytes.
About
Users can't give Claude access to their native MacOS apps like messages, mail or calendar without stitching together developer extensions. Pomeroy gives Claude a single, local-only connection to your MacOS apps.

3 Comments
I don't have tracking to tell me (we mean it when we say privacy first)!