MRRDock app icon

Your MRR in the macOS menu bar

MRRDock reads Stripe, RevenueCat, Paddle, Lemon Squeezy, Polar, Dodo Payments and Gumroad, adds them up, and keeps the total one glance away. Free, open source, and your API keys never leave your Mac.

macOS 14+ Apple Silicon & Intel MIT licensed No account Signed & notarized
brew install --cask simonsruggi/tap/mrrdock

One number instead of four dashboards

If you sell software, your revenue is scattered. The SaaS is on Stripe, the iOS apps report through RevenueCat, the desktop app went through Paddle because of VAT, the templates sit on Lemon Squeezy. Answering “how am I doing this month?” means four logins and a mental sum that ignores the fact three of them bill in dollars.

MRRDock does that sum every fifteen minutes and leaves the answer in the menu bar.

MRRDock menu bar popover showing total MRR, 30-day growth and a trend chart

Figures in the screenshots are demo data.

What it does

Multi-platform aggregation

Seven platforms plus any HTTPS endpoint of your own, in any combination. Two Stripe accounts and three RevenueCat projects add up like anything else.

Multi-currency

Every source converted into your display currency with live rates. Amounts that can’t be converted are shown separately, never silently dropped.

MRR trend

24H, 7D, 1Y or a custom range, with the “vs 30 days ago” delta. History is backfilled from your provider’s own MRR series.

Seven menu bar modes

MRR · MRR + 30-day change · ARR · 28-day revenue · active subscriptions · one source at a time · icon only.

Privacy mode

Replaces every figure with ••• for screen sharing or a café, revealed with one click.

Discord & Slack alerts

MRR milestones (“just crossed €5,000”) and an optional daily summary at 22:00.

Failure tolerant

A source that errors keeps its last known figure with a badge instead of dropping the total to zero.

Auto-updates

Native SwiftUI, universal binary, signed with a Developer ID, notarized by Apple, updated in place through a signed feed.

Supported platforms

PlatformMRRActive subsTrials28-day revenue
Stripeoptional
RevenueCat
Paddle Billing
Lemon Squeezy
Polar
Dodo Payments
Gumroad
Custom HTTPS endpoint

Every key is used read-only: MRRDock issues GET requests and nothing else. The custom endpoint is how you cover Superwall, App Store Connect, Google Play or an internal billing table — return a small JSON object and it counts like any other source.

MRR split by source: Stripe, RevenueCat, Paddle, Lemon Squeezy and Gumroad, each with its share of the total

Where your data goes: nowhere

Keychain, not a config file

API keys live in the macOS Keychain, never in the app’s JSON, never in logs.

No MRRDock server

The app talks to your payment platforms directly. There is nothing in between to trust.

No account, no telemetry

No login, no analytics, no crash reporting. Nobody, including the author, can see your revenue.

Readable before you trust it

MIT licensed, no package dependencies, 37 tests. Read the provider code before you paste a Stripe key into it.

MRRDock vs the alternatives

Every MRR tracker for the Mac menu bar makes a different trade. Here is where MRRDock sits, so you can pick the right one rather than the first one.

MRRDockCatBarIndieBarBaremetrics / ChartMogul
PriceFree, MITFreemium, Pro subscriptionPaid, one-timePaid monthly, per MRR tier
Source codeOpenClosedClosedClosed
Platforms readStripe, RevenueCat, Paddle, Lemon Squeezy, Polar, Dodo, Gumroad, customRevenueCatStripe, RevenueCat, GA4Stripe, plus whatever the plan includes
Several accounts per platformYesDepends on plan
Where the data goesNowhere: Mac → platform APIMac → RevenueCat APIMac → platform APIsYour billing data on their servers
Cohorts, LTV, churnYes, that’s the point
Lives inMenu barMenu barMenu barBrowser

Read it this way: MRRDock is for shipping on more than one platform and wanting one number. CatBar is the more polished single-platform app if RevenueCat is all you use. Baremetrics and ChartMogul are for cohorts, LTV and forecasting — MRRDock answers one question, “what is my MRR right now?”, and deliberately stops there.

How the MRR is calculated

For every recurring line item MRRDock knows the price, the interval, the quantity and any percentage discount:

monthly = unit_price × quantity × (intervals_per_month ÷ interval_count) × (1 − discount)

intervals_per_month is 30.4375 for daily, 4.348 for weekly, 1 for monthly and 1/12 for yearly — the average Gregorian month, so twelve monthly plans and one yearly plan reconcile to the cent instead of drifting apart.

CaseWhat MRRDock does
Free trialCounted in Trials, contributes 0 to MRR
Yearly planDivided by 12
Seats / quantityMultiplied
Percentage couponApplied
Fixed-amount couponNot applied — prorating it needs data these APIs don’t return
Usage-based / metered priceNot guessed. Flagged as “could not be priced”, so an understated total is visible
ARRExactly MRR × 12, nothing smoothed behind your back

The full table, including taxes and past-due handling, is in the README.

FAQ

Is it really free?

Yes. MIT licensed, no paid tier, no limit on the number of sources. If it saves you a browser tab a day, sponsoring keeps it going.

Does my revenue data leave my Mac?

No. There is no MRRDock server. The app calls your payment platforms directly and stores settings and history in ~/Library/Application Support/MRRDock/.

Is giving a desktop app my Stripe key safe?

The key is stored in the macOS Keychain and only sent to Stripe over HTTPS — but you don’t have to give it a full key: create a restricted key limited to reading subscriptions, or use the custom endpoint and keep the real key on your own server.

Is there a free alternative to Baremetrics or ChartMogul?

For the MRR figure itself, yes: MRRDock reads the same subscriptions from the same platforms and costs nothing. For cohort analysis, LTV and churn forecasting, no — those products do work a menu bar popover shouldn’t.

Can it show MRR from several Stripe accounts and RevenueCat projects at once?

Yes, that is the main reason it exists. Add one source per account or project, in any mix, and the menu bar shows the converted total.

Does it support Superwall, App Store Connect or Google Play?

Not as first-class sources yet: Superwall has no public revenue API, and Apple and Google expose downloadable reports rather than a metrics endpoint. All three work through the custom HTTPS endpoint today, and native support is on the roadmap.

Why doesn’t the total match my Stripe dashboard exactly?

Stripe’s dashboard applies its own rules to proration, taxes and fixed-amount coupons. MRRDock states its rules openly, so any difference is explainable rather than mysterious.

Which macOS versions?

macOS 14 Sonoma and later, Apple Silicon and Intel, as one universal binary.

Is there a Windows or Linux version?

No. MRRDock is a native macOS menu bar app written in SwiftUI. The provider code is plain Swift and reusable, but there is no cross-platform build.

Install

brew install --cask simonsruggi/tap/mrrdock

Or download the zip, unzip and drag the app to /Applications. It is signed with a Developer ID and notarized, so it opens with a double-click. Auto-updates are built in.

Prefer to build it yourself?

git clone https://github.com/simonsruggi/MRRDock.git
cd MRRDock
./build-app.sh

No package dependencies — nothing to vendor, nothing to audit but the app itself.