muster

agent
Security Audit
Fail
Health Pass
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Community trust — 85 GitHub stars
Code Fail
  • rm -rf — Recursive force deletion command in scripts/changelog.sh
  • rm -rf — Recursive force deletion command in scripts/dmg.sh
  • rm -rf — Recursive force deletion command in scripts/e2e.sh
Permissions Pass
  • Permissions — No dangerous permissions requested

No AI report is available for this listing yet.

SUMMARY

Never keep an agent waiting. A free, open-source Mac menu bar app for Claude Code, Codex and Cursor: see which session needs you and answer it with one keystroke.

README.md

Muster

Muster

Never keep an agent waiting.
A free, open-source Mac menu bar app for your Claude Code, Codex and Cursor sessions.

Download for Mac · brew install --cask josefchen/tap/muster · agentmuster.app · Changelog · 简体中文

Claude Code and then Codex ask to run a command. Muster's alert shows the newest first with its keys along the bottom; ⌥↓ unfolds why Codex asks, and ⌥↩ answers each in turn.

Two agents ask. ⌥↓ shows why, two presses of ⌥↩ answer them, and you never left what you were doing. Recorded from the app.

If you run a few coding agents at once, the slow part isn't the agents. It's noticing which one has been waiting on you for ten minutes. Muster sits in the menu bar, tells you the moment one needs you, and lets you answer without switching apps.

See who needs you.

A glass alert at the top of the screen the moment an agent waits on you. It stays until you answer.

Answer from anywhere.

Allow a command or pick an answer with ⌥↩, or right from the notification. The alert shows its keys.

See why before you answer.

⌥↓ unfolds the agent's reason, the whole command, or every option with its note.

Your keys stay yours.

Muster takes its keys only while something on screen needs them, and lets go while you type elsewhere.

⌥Tab to any agent.

Most urgent first. Let go to land in its window, or the terminal it runs in.

Find any session.

⌃⌥Space searches the last three hours, with tokens and API-rate cost for each.

The alert unfolded with ⌥↓ on a question from Claude Code: three options, each with the agent's note, answered with ⌥1 to ⌥3

Hold ⌥ and tap Tab to move through sessions, most urgent first, then ⌥↩ answers the one waiting

Search every session with ⌃⌥Space

Native AppKit and Liquid Glass · macOS 14+ · Apple silicon and Intel · no accounts or app analytics · MIT


Install

Download Muster.dmg and drag it to Applications, or:

brew install --cask josefchen/tap/muster

macOS 14 or later, Apple silicon or Intel. Liquid Glass needs macOS 26.

Answer prompts from Muster

Turn it on per agent in Settings → Answer prompts from Muster.

What you can answer
Claude Code Permission requests, multiple-choice questions, plan approvals
Codex Approval requests (enable and trust the Muster hook in Codex Settings → Hooks, or /hooks in the CLI)
Cursor Opens the prompt in Cursor

The tour and Settings show each connection's progress. For Codex, Muster reads the client's hook status when supported, so a disabled, untrusted or changed hook stays pending. It never enables or trusts hooks on your behalf.

Use Copy check prompt, paste it into a local agent session that asks for approval, and answer the request from Muster. The connection is verified only when the request arrives, the answer is delivered, and the same session resumes in its transcript. The sample alert in the tour is practice and does not verify anything. Full access or automatic approval can skip this test because no permission request is made.

You can choose Set up later and use switching and search immediately. Unfinished answering setup remains visible in Settings and the menu. Verification records the last successful check, rather than a continuous connection: changed hooks require another check, and evidence older than a day is no longer marked current.

Muster adds one hook to the agent's own settings and removes exactly that when you turn it off. Beside the file it keeps .muster-original, the file as it was before Muster first changed it, and .muster-backup, the file before the latest change. A symlinked settings file stays a link, and a file Muster can't parse is left alone. Claude's native dialog stays live alongside Muster, and the first answer wins. If Muster isn't running, the agent asks as usual. Hooks talk to Muster on 127.0.0.1 with a per-install token.

Shortcuts

Keys
⌥ Tab Switch. Tap to step, release to open, or click a row
⌥ ↩ · ⌥ ⌫ · ⌥ 1–9 Allow · deny · answer the prompt on the alert or in the switcher
⌥ ↓ · ⌥ ↑ Unfold the alert's details · fold them
⌃ ⌥ Space Search every session

Muster takes ⌥↩, ⌥⌫, the arrows and the digits only while a prompt or the switcher is on screen, and lets go of them while you type in another app, so they keep working in your editor. Both shortcuts can be changed in Settings. Scripting: muster://search, muster://next, muster://settings, muster://welcome, muster://whats-new.

Why not just a notification?

Claude Code can notify you on its own in some terminals, and a few lines of settings add a sound or a banner anywhere else; this guide compares every option. A notification tells you that something happened. With several sessions running you still have to work out which one, find its window and type the answer. Muster shows which one, answers it from where you are, and does the same for Codex and Cursor.

How it works

Muster reads the session files each app already writes. Nothing to configure.

App Read from
Claude (desktop, CLI, SSH sessions) ~/.claude/projects transcripts and Claude's session list
Codex (app and CLI) ~/.codex/state_*.sqlite threads and rollout logs
Cursor The Agents window's chat list and agent transcripts

Everything is opened read-only. File system events trigger a rescan, at most once a second; transcripts are read incrementally, only the bytes added since the last look.

Cost estimates

Public list prices for the standard API tier, bundled and dated in Settings. Claude is priced message by message, including subagents, with 5-minute and 1-hour cache writes kept apart. Codex is priced from its running totals; OpenAI's long-context tier isn't applied, so Codex figures are a floor. Cursor records no token counts on disk.

Use your own prices from Settings → Use my own prices…, which writes ~/Library/Application Support/Muster/pricing.json.

Privacy

No accounts or app analytics. The only network request is the update check, which asks GitHub for the latest release when you click Check for Updates, or once a day if you leave "Updates" on in the welcome tour (or tick it in What's New, or turn it on in Settings). The prompt server listens on 127.0.0.1 only and needs a token that lives in your user defaults and the agents' hook settings.

The website keeps aggregate daily page-load and download-click counts, with no cookies or visitor identifiers. It honors Do Not Track and Global Privacy Control. See the privacy page and measurement guide.

Build from source
git clone https://github.com/josefchen/muster.git && cd muster
./build.sh            # build, install to ~/Applications, launch
./test.sh             # reader tests against fixture files
scripts/e2e.sh        # end-to-end: the real app against a fake home folder

scripts/e2e.sh drives the built app the way the agents and you would (transcripts, hook requests, the switcher, deck and alert) without touching your own agents or settings; --soak [minutes] checks CPU and memory under load, and --ui replays real keystrokes and clicks (it takes over the keyboard while it runs).

scripts/release.sh <version> builds a universal, signed and notarized DMG and writes its GitHub release notes from CHANGELOG.md, and scripts/site.sh deploy publishes agentmuster.app and its changelog page to Cloudflare. scripts/capture-stills.sh, scripts/record-scene.sh, scripts/record-answer.sh and scripts/tour.sh regenerate the screenshots, the videos and the welcome tour from demo mode (Muster --demo). Muster opens and plays each scene itself, so they need Screen Recording and nothing else.

See CONTRIBUTING.md.


MIT License. Muster is independent and not affiliated with Anthropic, OpenAI or Anysphere.

Reviews (0)

No results found