A MacBook open on a walnut desk in warm lamplight

macOS · Epiphani Studios

Your menu bar, orchestrated.

Your menu bar is the stage. StageMenu decides who is on it: the readouts you glance at, the icons you manage, and rules you write in a sentence, all in one app.

3:34PM || Jul 26 87° 80% C 12%  M 67%
Each element is a separate item you can drag anywhere in the bar.
You: "Hide everything when I'm presenting."
You: "Show battery and weather only."
You: "Bring the central processing unit (CPU) reading back if anything is pegged for a minute."
And the bar: icons step back, and the menu names the rule that did it.
Get StageMenu See how it compares Planned price $29, once. No subscription. macOS 14 or later, Apple Silicon.

The problem

Your menu bar is either cluttered or blind.

You keep the readouts visible because you want to know the moment something is wrong. So the bar fills up. Then you install a second app to hide the mess the first one made, and now you run two utilities that do not know the other exists. Neither knows you are about to share your screen. Neither knows the difference between a laptop on battery in a coffee shop and the same laptop plugged in at your desk.

The tools that react to anything you can describe are built for people who write shell scripts. Everyone else gets a grid of preset triggers, which covers the conditions the developer thought of and nothing you would say in a sentence.

Two apps competing for one strip of screen

A monitor and a hider, bought separately, updated separately, neither aware of the other.

Static by design

What you configured on a Tuesday is what you get in a client presentation on Friday.

Rules for programmers only

Fully conditional bars exist. They are configured in Lua and shell scripts.

Proof

The counts below come from tests that can fail.

Each part of the app ships a headless self-test with negative controls, so a regression these checks cover fails the build instead of passing quietly. These are the current counts, and they run on the same build you receive.

Twenty-six checks on the rules engine

Ten are negative controls: gibberish and half-sentences must produce nothing, a dip must reset a sustained timer, a switched-off rule must never fire.

Eighty-two icons across 27 apps

The fixture the icon-detection self-test runs against, measured on a live Mac. Reading your own bar at runtime uses the Accessibility grant described below, not this number.

Thirteen checks on the agent surface

Four are negative controls, including that an unknown module and an unparseable sentence are both refused rather than guessed at.

Run them yourself, for example StageMenu --rules-selftest. Every test is named on the capabilities page.

How it works

Say it, and the bar arranges itself.

1

Put up what you want to see

Clock, weather, battery, CPU, memory, disk, network. Each is its own item, so you drag them where you like and they stay there.

2

Tuck the rest behind the divider

Drag any icon to the left of StageMenu's divider and it hides, and no permission is involved. Click the chevron to see everything hidden, each with its own app icon, and click one to open its real menu; that list is the one place the app asks for Accessibility, and it asks when you first open it.

3

Write a rule as a sentence

"Hide everything when I'm presenting." That becomes a real rule with a condition and an action, parsed on your Mac. A sentence it cannot parse gives you nothing rather than a rule you did not mean.

4

It tells you what it did

The menu shows what is in force right now and the reason: "hiding the icons: presenting." Nothing changes silently.

Features

The whole job, on one stage.

The readouts you glance at, the icons you command, and rules you write in a sentence: your whole bar, working together.

Clock and calendar

Your exact format, world clocks, and a crisp calendar mark with a month grid and your events.

Weather

From the National Weather Service. No key, no account, and no weather subscription. United States only today.

Battery, including AirPods

Your Mac plus connected Bluetooth accessories, read from the same sources the system itself uses.

CPU, memory, disk, network

No background helper, no daemon left running behind your back, and no runtime bundled with the app. (The optional agent server described below is a Python script, and it runs only while an agent is talking to it.)

Icon hiding without Screen Recording

Hiding and revealing through the divider need no permission at all, and nothing here ever needs Screen Recording. The cross-app icon list is the one feature that uses Accessibility: both reading the items to build the list and pressing one to open its real menu. The app asks for the grant at that point and not before. Nothing about your screen is ever captured.

Rules in plain English

Power state, presenting, the app in front, the hour, or a metric held above a threshold. It explains every decision it makes.

Model Context Protocol ("MCP") server for agents

Seven tools over standard input and output using JavaScript Object Notation Remote Procedure Call ("JSON-RPC"), with no third-party dependencies (it runs on the Python 3 that ships with the Xcode command line tools), so your artificial intelligence (AI) assistant can read and compose the bar.

Everyday

The moments this is actually for.

You share your screen

The bar empties the moment a display starts mirroring or a presentation or call app comes to the front, so your Virtual Private Network (VPN), your password manager, and the other client's project stop being part of the presentation. macOS publishes no "I am presenting" flag, so those two signals are what the app reads, and it names which one fired when it explains the decision.

You unplug and walk out

On battery, the heavy readouts step aside and battery moves front and center. Plug in at your desk and the full set comes back.

Something starts eating the machine

The fan spins up and you want to know why. Say the CPU readout should return when anything stays pegged for a minute, and it is there when it matters and gone when it does not.

You are deep in a full-screen editor

When your editor is in front the bar can clear itself, then come back the moment you switch away.

Your agent is already working

An assistant that can read your repository can now read your menu bar: what is showing, what is collapsed, and which rules are active. It can compose the bar for what you are about to do, through the seven tools the agent surface exposes.

It is late

After nine, a rule can drop the work readouts and leave the clock and the weather.

A conductor's baton in low gold light

Not everything belongs on stage at once

A good show is staged: the right thing in the light at the right moment, everything else seated in the rows just off it. That is the whole idea, applied to the strip of screen you glance at all day.

Who it is for

Four people who live in the same strip of screen.

The developer with 30 icons

You run Docker, a VPN, a tunnel, a password manager, two cloud drives, and a battery of build tools, and every one of them wants a permanent seat. You want them reachable in one click and invisible the rest of the time, and you want the machine's load in front of you the moment a build goes sideways. Today that is two paid apps and a compromise.

The consultant who shares a screen daily

Every call is a live broadcast of your bar. One client's project name in a status item is a bad afternoon. A rule that empties the bar the instant a display mirrors, or the instant your call app takes the front, is worth more than any readout on it.

The laptop user who actually unplugs

Your needs at a desk and your needs on a train are different, and no static configuration serves both. The bar should know which one you are in, without being asked twice.

The person already working with agents

Your assistant reads your code, runs your tests, and opens your pull requests. It has no idea whether your machine is thermally throttled or your VPN dropped. Giving it the menu bar is a small, concrete step toward it knowing the state of the computer it is working on.

If none of these is you, and a static bar has never bothered you, the honest recommendation is in the comparison below: take the free tools and keep your $29.

Compare

Where it wins, and where it does not.

Prices read from each maker's own page in July 2026. Several rows below are wins for other products, because a comparison that never loses is not worth reading.

 StageMenu iStat Menus Bartender Stats Ice
Price$29 once$11.99 to $14.99 once, plus a weather subscription$24 once, plus $15 a year for ProFreeFree
Readouts and icon hiding in one appYesReadouts onlyHiding onlyReadouts onlyHiding only
Rules written as sentencesYesThreshold alertsTriggers, as checkboxesNoNo dynamic rules
Explains its own decisionsYesNoNoNoNo
MCP server for AI agentsYesNoNoNoNo
Weather without a separate subscriptionYes, US onlySubscription for the dataNot applicableNo weatherNo weather
Depth of sensors and fan controlPlannedAhead of us todayNot applicableAhead of us todayNot applicable
A good static bar for nothing$29$11.99+$24Free, and genuinely goodFree
Weather coverageUnited States onlyWorldwideNot applicableNot applicableNot applicable
Open sourceNoNoNoYes, under the Massachusetts Institute of Technology ("MIT") LicenseYes, under the GNU General Public License ("GPL")
Actively developedYesYes, for about 18 yearsYesYesNo code push since September 2025

If a static bar is all you need, Stats plus Ice is a genuinely good free answer, and we would rather say that here than have you discover it after paying. StageMenu is for the part they do not do.

For agents

Your assistant can run the bar too.

StageMenu ships a Model Context Protocol server, which is the standard way an AI assistant discovers and calls tools. It speaks JSON-RPC over standard input and output with no third-party dependencies, so if you have Xcode's Command Line Tools, the Python 3 they install is enough and there is nothing further to install and no account to create. Seven tools, grouped below into the three things they let an agent do: read status; show a module, hide a module, and one collapse-or-reveal switch for the icons; and list, add, and clear rules. Every one of them refuses bad input rather than guessing.

Read the bar

Which modules are visible, whether the icons are collapsed, which rules are active, and whether the app is running.

Compose the bar

Show or hide any module, collapse or reveal the managed icons, all by name rather than by clicking.

Write rules from sentences

Hand it "hide everything when I'm presenting" and it returns the parsed rule, or an error if the sentence was not understood. It never invents one.

Rules are a plain file at ~/Library/Application Support/Barchestra/rules.json, the same file the app evaluates, so anything that can write JSON can drive the bar. Nothing about this surface is a private back door: it is the same typed rules you write yourself.

Under the hood

Built to be boring in the ways that matter.

No private APIs

The icon mechanic is an ordinary status item that gets very wide. That is the whole trick: it uses documented AppKit behavior rather than private interfaces or window-server tricks, so there is less of the app sitting on undocumented ground when macOS changes.

No background helper

Every reading comes from public system calls inside the app itself, and the optional agent server runs only while an agent is talking to it. Nothing is installed as root and no daemon is left behind. Dragging the app to the trash removes the app; your rules and usage-counter files sit in ~/Library/Application Support/Barchestra, and deleting that folder is the rest of it.

Timers that sleep

The clock wakes on the minute boundary it needs, not every second. Metrics and rules timers exist only while those features are on, and they carry a tolerance so macOS can group their wakeups with others.

Redraws that do not happen

If the text to display has not changed, nothing is drawn. Most seconds in a day, a menu-bar readout has nothing new to say.

Alerts you can see

Anything needing attention changes the menu-bar item itself. Notifications are not used as a channel, so there is no silent failure hiding behind a permission you never granted.

Tests that can fail

Every module ships a headless self-test with negative controls, so a broken build is loud. The counts on this page come from those tests, not from a marketing meeting.

Switching

You already own one of these. What changes?

You use iStat Menus

You keep everything you actually look at. The clock format, the world clocks, the calendar glyph, the battery with your AirPods in it: all of that is here, and United States weather arrives without the separate data subscription, though iStat's worldwide coverage is one thing you would give up outside the country. What you gain is the other half of the job, because iStat does not hide icons at all. What you give up today is depth of thermal detail, and that is a real loss until the sensor work ships. Keep iStat installed while you decide; nothing here interferes with it.

You use Bartender

You keep the divider, the click-to-reveal, and the positions you have arranged, and you drop the Screen Recording permission, because this hiding mechanic does not photograph your menu bar to work, plus the $15 a year if you pay for Bartender's Pro features. You also stop maintaining trigger checkboxes, and start writing the same intent as a sentence. If the 2024 sale and the telemetry that followed are why you have not upgraded, that is exactly the itch this scratches.

You use Stats, or Stats plus Ice

You are the hardest person to sell, and you should be: your setup is free, open source, and good. Stats has broader sensor coverage than StageMenu does today. The honest pitch is that your two apps cannot coordinate, Ice has not shipped code since September 2025, and neither app empties your bar when you start sharing your screen. If that has never cost you anything, stay where you are.

You built a bar in SketchyBar

You already proved the thesis: a menu bar that reacts to context is worth real effort. You wrote shell scripts to get there and you maintain them. StageMenu is the same idea for the days you would rather write a sentence than a config, plus a store of rules any agent can read and write. Your scripts will still be more powerful at the extremes, and that is fine.

StageMenu runs alongside all of them. Nothing is taken over, no other app is disabled, and you can decide after a week of watching both instead of on the strength of this page.

Privacy

It watches your Mac, not you.

Nothing about your Mac, your apps, or your bar is uploaded

The app makes outbound requests for two things and no others: the weather lookup described below, and a check for a newer version at launch and every six hours, which carries no account identifier, device identifier, or usage data and can be switched off. As with any network request, the server on the other end sees standard network metadata such as your address. Nothing else leaves. Usage counters live in a file on your Mac, against a fixed list of feature names. A name outside that list is discarded, so free text cannot enter the file by construction, and the self-test proves it with a negative control.

Nothing about your screen is captured

Hiding icons uses a divider item, not a picture of your menu bar. The cross-app icon list is the only feature that touches the Accessibility grant, for reading the items and for pressing the one you pick, and the press goes to the real item rather than through synthetic mouse events.

Permissions are staged and explained

The readouts and the hiding need no permission at all, with one exception you control: showing your events in the calendar glyph asks for Calendar access, in context, the first time you turn it on. Accessibility is requested only when you want the cross-app icon list, the same way, with a link to the exact settings pane.

Your sentences never leave the Mac

Rules are parsed locally and stored as a plain file you can read, edit, or delete yourself.

Pricing

One price, no subscription.

Planned launch price $29 once

The rules layer is included rather than metered, because sentences are parsed on your Mac and cost nothing to run. There is no weather subscription, and no Pro tier holding the good parts back. It is one purchase, not a subscription.

For comparison: iStat Menus is $11.99 to $14.99 plus its weather data, and Bartender is $24 plus $15 a year for its Pro features.

FAQ

The questions people actually ask.

Does it need Screen Recording permission to hide icons?

No. Hiding and revealing uses a divider status item that expands past the width of the screen, which needs no permission at all. Accessibility is requested only if you want the app to list every icon across all your apps, and it is asked for in context with a link to the exact settings pane.

Why pay when Stats and Ice are free?

Stats is an excellent free monitor and Ice is a capable free hider. If a static bar plus manual hiding is what you want, they are the right answer and you should use them. StageMenu is for the part neither does: a bar that changes itself by rules you write in a sentence, and tells you why. Ice has had no code push since September 2025 and does not offer dynamic rules.

Is $29 really one time?

Yes, and the number itself is the planned launch price. One purchase, no subscription, and the rules layer is included rather than metered. Sentences are parsed on your Mac, so there is no per-use cost to pass on to you.

How much CPU and battery does it use?

No measured figure is published yet, so here is the design instead. The clock wakes once a minute rather than once a second, redraws are skipped when the text has not changed, the metrics and rules timers exist only while those features are on and carry a tolerance so macOS can coalesce wakeups, and fast power events arrive by notification instead of polling.

What happens when macOS gets a major update?

The icon mechanic uses ordinary status items rather than private APIs or window-server tricks, so less of it sits on undocumented ground. Every module ships a headless self-test you can run against a new operating system in seconds, including one that asserts every icon state still resolves on the running system.

Does the plain-English parser send anything to the cloud?

No. Sentences are parsed on your Mac and compile to a typed rule. No network call, no API key, no per-use cost. A sentence it does not understand produces nothing rather than a guessed rule.

Is there a weather subscription?

No. Weather comes from the United States National Weather Service, which is public domain and needs no key and no account. The honest tradeoff is that it is US-only today.

What is the MCP server for?

It lets an AI agent read and compose your menu bar. Seven tools: read status; show a module; hide a module; one collapse-or-reveal switch for the icons; and list, add, and clear the rules you have written from sentences. It speaks JSON-RPC over standard input and output, with no third-party dependencies, so it runs on the Python 3 that comes with the Xcode command line tools.

Why is it not on the Mac App Store?

Reading hardware sensors through Apple's IOKit framework is incompatible with the App Store sandbox. StageMenu is distributed directly, signed with an Apple Developer ID and notarized by Apple.

Will it be sold to someone else and start collecting data?

It is made by Epiphani Studios, an independent studio. The analytics it keeps are local counters over a fixed list of feature names stored in a file on your Mac; an unrecognized name is discarded, and nothing is uploaded.

Limits

What it does not do yet.

Weather is United States only, because it uses the National Weather Service rather than a paid provider.

Readouts cover processor, memory, network, disk, battery, weather, and the clock. Fan speed and per-sensor temperatures are outside that set.

Hidden icons are listed, not redrawn in a second bar. Redrawing them would require Screen Recording permission, which this design deliberately avoids.

The plain-English parser covers documented sentence patterns, not arbitrary language. It refuses what it does not understand rather than guessing, and a fully on-device language model is the planned upgrade behind the same interface.

Notifications are not used as an alert channel. The menu-bar item itself carries anything needing your attention.

macOS 14 or later, Apple Silicon. There is no Windows version, because the macOS menu bar is the product.

Get it

Buy it once and the whole bar is yours to command.

A single purchase when it opens, with no subscription, no screen recording, and no second app to clean up after the first. Two things leave your Mac, both of them yours to stop: the weather lookup, where the location you set in Settings goes to the National Weather Service once to resolve its forecast grid and after that only that grid is requested, and the check for a newer version, which is a plain fetch of the version file. Nothing about your machine, your apps, or your bar goes with either.

Planned price $29, once. macOS 14 or later, Apple Silicon. Developer ID signed and notarized. The build is available by request, and the capabilities page lists exactly what ships.