bdeshiandClaude Sonnet 5.5 993f82a714 Tighten the README and document the profile-reset-after-update fix
Adds a troubleshooting entry: Claude's auto-updater relaunches the app with
no profile flags, landing in the default profile. Turning off auto-updates
via the disableAutoUpdates policy (macOS, Windows, Linux locations) avoids it.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 14:13:32 +06:00
2026-08-14 23:14:58 +06:00

shannoncoat — which coat will Claude wear today?

Run multiple isolated * Claude profiles on macOS from a menu-bar item — each its own Claude Desktop and paired Claude Code setup, its windows tagged to tell them apart. Your normal install is untouched.


Note

shannoncoat started as the shell script in the first commit, written by hand. Claude built the GUI app out of it — most of the Swift, the icon, and this README — working from human direction, review, and dogfooding.

Install

macOS 13+, Claude Desktop.

  1. Download shannoncoat.app.zip from the latest release, unzip, and move to /Applications or ~/Applications.
  2. First launch is blocked (not notarized): System Settings → Privacy & Security → Open Anyway.
  3. Grant Accessibility when prompted; the tags need it.

Everyday use

With nothing running, shannoncoat offers a checklist and starts whichever profiles you tick. The menu bar shows a dot per running profile in its colour, plus the name when only one is up; hover for the rest.

  • Click a profile — switch to it; the others are quit, even if it's already running.
  • Shift-click — open it alongside them, or focus it if already up.

Settings → Click a profile to swaps the two. ⇆ marks the last one you switched to. Close Profile quits one, Quit Claude all (shannoncoat stays), Manage Profiles… opens the main window.

Each managed window carries a tag in its profile's colour — drag it anywhere, and each profile remembers its spot.

Profiles

default is your real Claude install: start/stop only, never managed, so it gets no tag and can't be deleted.

Manage Profiles… → + adds one. Directories are optional — blank gives ~/.shannoncoat/data/<name>/{app,code}. Two profiles may not share a directory; that would silently merge their sessions, so shannoncoat refuses to start and names the collision.

Profiles are JSON files in ~/.shannoncoat/. Deleting one quits it and removes just that file — the Claude data stays on disk, so recreating it resumes where you left off.

Settings

  • Launch at Login
  • Click a profile to — switch or open alongside; Shift-click does the other.
  • Window tag — name chip or coloured dot.
  • Automatically check for updates — once a day at most, against the latest GitHub release, or Check for Updates… on demand. It never self-updates; download and swap the app in yourself.

Troubleshooting

Tags don't appear. Almost always Accessibility. If shannoncoat is listed and ticked under Privacy & Security → Accessibility, remove it with − and re-add — a differently-signed build leaves the old entry visible but inert, and toggling won't help.

A profile restarts into the default one. Claude's auto-updater relaunches the app with no profile flags. Turn auto-updates off with the disableAutoUpdates policy, then update by hand and restart from shannoncoat:

OS Where
macOS /Library/Managed Preferences/com.anthropic.claudefordesktop.plist — <key>disableAutoUpdates</key><true/>
Windows HKLM\SOFTWARE\Policies\Claude — disableAutoUpdates (DWORD 1)
Linux /etc/claude-desktop/managed-settings.json — {"disableAutoUpdates": true}

A profile won't quit. Claude declined — usually its "unsaved work" or "still generating" dialog. shannoncoat waits rather than killing it.

Build from source

Needs the Xcode Command Line Tools (xcode-select --install).

./build.sh

Lands in .build/shannoncoat.app. Unsigned builds get a new code identity each time, silently voiding Accessibility on every rebuild; .env.example covers a one-off self-signed certificate that avoids it.

Isolation

Important

Isolation isn't perfect. Claude and Claude Code can have effectively full disk access from any profile, default config folders included, and some integrations — skills, plugins — hardcode ~/.claude and write there.

S
Description
No description provided
Readme
468 KiB
0 Stars 0 Watchers 0 Forks
1.0.0
Latest
2026-08-06 00:35:41 +06:00
Languages
Swift 95.4%
Shell 4.6%