Split, persistent terminals
Split panes with per-pane titles, scrollback restored on restart and searchable. Local, SSH and remote runtime hosts all behave the same, and sessions survive a window close.
Overview
Run several coding agents at once, in chat threads or full code workspaces. Tasks, WordPress sites, terminals and review share one window, and the sidebar tells you when an agent needs you.
Before you open it — one Terminal command
macOS quarantines apps it can't verify with Apple and will claim Muster is damaged.
After dragging the app into /Applications, run this once:
xattr -cr /Applications/Muster.app
The model
Agents sharing one working tree overwrite each other's edits. Muster gives each run its own git worktree, so they can't touch the same files.
A workspace is a git worktree on a branch you choose, in its own
directory, with your setup script already run. It stays completely separate from
your main checkout.
Your CLI agent launches inside that directory with its own terminal, and reports its status through hooks. Several can run at once without touching each other's files.
When an agent stops, whether it finished, hit a blocker or has a question, its row lights up in the sidebar. The others keep running while you deal with it.
Chat
Code mode is the workspace-and-terminal view above. Chat mode runs the same agents without the terminal: threads in a sidebar, replies streaming in, and no branch or checkout to think about. You pick which mode to start in on first launch; Chat is the default.
Agents
Each agent runs as a session with a real status (working, waiting on you, done), reported by hooks installed into the agent's own config rather than guessed from terminal output. The status bar tracks your plan usage for each provider you're signed into.
Sites
Each site keeps its environments, SSH credentials and per-branch targets. The branch you have checked out decides where a run goes. If it doesn't match a known environment, the run is blocked rather than falling back to production.
Import steps
Deploy steps
Local stacks
Tasks
ActiveCollab by default; Jira, Linear, GitHub and GitLab can be switched on in settings. My Work lists what is assigned to you, and opening a project shows every task under its own lists, with labels, assignee avatars and who created it.
Review
Every workspace has a diff view of what its agent changed. Leave a comment on a line and send it to the agent as its next instruction. When it's right, open the pull request from the app — GitHub, GitLab, Bitbucket, Gitea or Azure DevOps.
Workbench
The rest of the window: split terminals that survive a window close, a browser pane for checking the site you're changing, and a command palette that covers all of it.
Split panes with per-pane titles, scrollback restored on restart and searchable. Local, SSH and remote runtime hosts all behave the same, and sessions survive a window close.
Open the site next to the agent changing it. Annotate what's wrong on the page and send the annotation to the agent.
Speak instead of typing. Transcription lands in whatever field has focus — the chat composer, a commit message, a task comment.
⌘J jumps to any workspace, task or action. Recently used entries come first.
VS Code's editor, with autosave, quick-open that includes hidden files, and drag-and-drop of files or Finder images straight into an agent's prompt. A Markdown editor for notes sits beside it.
Click an element in the browser pane to send its HTML, CSS and a cropped screenshot to the agent.
PDFs, image diffs, CSV as tables, and Markdown with wiki links and full-text search.
Load your own unpacked Chrome extensions. A bundled one fills WordPress logins from credentials Muster stores, and your existing cookies can be imported so you stay signed in.
Automations
An automation is a prompt, a project and a schedule. Muster starts the agent run unattended, keeps the full history, and can require a precheck to pass before anything starts.
Skills
A skill is a folder with a SKILL.md that teaches an agent how to do one
thing properly. Muster finds them wherever they already live and shows every agent the
same set.
One for driving Muster itself from an agent, one for Linear tickets, and one for standing up a disposable dev environment per workspace.
Drop a folder in a repo's .agents/skills and every agent CLI you use
picks it up. Muster links its own into each agent's directory but never overwrites a
copy you have edited.
Your home directory, the current repo, the ones bundled with the app and Claude Code's plugin cache are all scanned, each listed with its source and when it last changed. Still in beta.
The composer autocompletes skills next to slash commands, so you can invoke one mid-conversation.
Sessions
Agent CLIs write their transcripts to disk. Muster reads them, so its history is not limited to what you happened to run inside its own tabs.
Claude, Codex, Cursor, Gemini, Copilot, Grok, Droid, Devin, Hermes, Pi, OMP, OpenCode, Antigravity, Rovo Dev, OpenClaw and Kimi.
Each session lists its title, working directory, branch, model and token totals.
Resume any of them with the correct invocation for that CLI, built for the shell and platform you are on.
Sessions that never got a reply still show up if they left a queued prompt or a subagent transcript behind.
Install
Step three is a Terminal command, with an explanation of what it does underneath.
Apple Silicon (M1 and later) or Intel. Unsure? Apple menu → About This Mac → look for Chip or Processor.
Open the .dmg and drag the app across. Installing elsewhere works, but
the command in step three assumes /Applications.
Paste this into Terminal and press Return. If it worked, it prints nothing.
xattr -cr /Applications/Muster.app
Why this is needed
Muster is signed with our own certificate rather than a paid Apple Developer ID.
macOS puts a quarantine flag on anything downloaded from the internet and won't
open apps it can't verify with Apple, which is why it claims the app is damaged.
xattr -cr removes that flag from the copy you just installed. You
only need to run it once; updates installed through the app are never
quarantined.
First launch takes you through a short setup: your default agent, a theme, and whether Chat or Code opens by default. Then connect ActiveCollab (the same login is used for Claude), GitHub and Bitbucket, and import any existing sites. All of it can be changed later.
gh)Updates
Muster checks for a newer build periodically and offers it when one is ready. Nothing installs until you approve the restart.
Hold ⌥, open the Help menu in the sidebar, choose Check for updates.
Quarantine applies only to files you download yourself. In-app updates are verified against the installed signature and need no Terminal command.
Spec
| Current release | 1.14.30 · published 28 Sep 2026 |
|---|---|
| Platform | macOS 12 Monterey or newer |
| Architectures | Apple Silicon (arm64) and Intel (x64), separate builds |
| Download size | ~190 MB disk image |
| Code signing | Signed with our own certificate · not Apple-notarised |
| Gatekeeper | Needs xattr -cr once per manual install |
| Update channel | GitHub Releases · verified against the installed signature |
| Agent status | Installed CLI hooks report state; no scraping of terminal output |
| Remote work | Local, SSH hosts and remote runtimes |
| Site credentials | Stored per environment in the macOS keychain |
| Licence | MIT · internal fork of Orca |
For agents
Muster ships an MCP server. An agent working in a checkout gets 25 tools to inspect and operate that site, with the same guard rails as the UI.
Discovery
List sites, work out which one the current checkout belongs to, read git status and which environment a branch targets.
Config
Read and edit site fields, environments, and which import or deploy steps are enabled.
Runs
Dry-run a plan, then start an import or deploy. A branch with no matching environment is blocked, never sent to production.
Jobs
Poll a run, read its log, cancel it. Logs are shared with the app, so you watch the same output the UI shows.
SSH
Run a command on the site's server with the stored credential, passwords scrubbed from the output.
Trouble
Step three was skipped, or the app was replaced after it. Run it again.
xattr -cr /Applications/Muster.app
Same cause. If the command has already run, right-click the app and choose Open once — macOS remembers that decision for the copy.
macOS only replaces an app with one carrying a matching signature. This happens when the installed copy was built locally rather than downloaded from a release. Take the current build, drag it over the old one, run step three.
xattr: No such file or directory
The app is not at that path. Type xattr -cr and a space, then drag the
app into the Terminal window to paste its real location.
Status comes from hooks the app installs into each agent's own config. In Settings → Agents, check that Agent status hooks is on; with it off, rows fall back to reading terminal titles and can vanish when an agent retitles its tab.
Commands in Muster’s terminals start failing to read your project. Homebrew says “The current working directory must be readable”, and agents exit with an unexplained error. Nothing is corrupted and your files are fine.
macOS ties permission for your Desktop and Documents folders to an app’s signature. After an update it can stop recognising Muster as the app you granted access to, and quietly withdraws it. Everything Muster launches — your shell, Homebrew, coding agents — inherits that refusal.
Quit Muster, then run this in the macOS Terminal app. Copies of Muster can outlive their window, and an old one keeps the old refusal for as long as it runs, which is why quitting and reopening on its own often changes nothing.
pkill -f "Muster.app"
Then open System Settings → Privacy & Security → Full Disk Access, switch Muster on (add it with + if it is not listed), and open Muster again.
Grant it there rather than waiting for a permission prompt. The thing that needs access is usually something Muster started in the background, and a background process cannot show a prompt — so none appears and the access simply keeps failing.
agent-local is a separate command-line tool with its own permission, and that permission is tied to the exact binary — so upgrading it withdraws access every time. Clear the stale grant:
tccutil reset SystemPolicyDocumentsFolder "$HOME/.local/bin/agent-local"
Then run any agent-local command from Terminal and choose
Allow. Run it in Terminal, not inside Muster: a command you start
yourself can show the prompt.
Open an issue with what you did, what happened, and the version from the Help menu.
JV line 42
Round once at the end, not per step — cents drift otherwise.
↩ Sent to Claude Code