3 Commits
Author SHA1 Message Date
bdeshiandGitHub 97b131070e Revise README for improved clarity and structure
Brings ai-authorship note above the fold, and adds a note about imperfect isolation guarantee.

Signed-off-by: bdeshi <bdeshi@bdeshi.space>
2026-08-06 01:06:12 +06:00
bdeshi 8ea208ced4 release 1.0.0 :party: 2026-08-06 00:35:15 +06:00
Claude Opus 5andbdeshi e803f008f0 Move the workflow actions off Node 20
checkout and action-gh-release both still target Node 20, which GitHub
has deprecated and is already force-running on Node 24. Nothing is broken
yet, but the runners won't accommodate it indefinitely, and a release
workflow is a poor place to discover that.
2026-08-06 00:35:02 +06:00
4 changed files with 28 additions and 14 deletions
+2 -2
View File
@@ -28,7 +28,7 @@ jobs:
# below treats as "fall back to ad-hoc". # below treats as "fall back to ad-hoc".
SIGNING_IDENTITY: ${{ secrets.SIGNING_IDENTITY }} SIGNING_IDENTITY: ${{ secrets.SIGNING_IDENTITY }}
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v7
with: with:
ref: ${{ inputs.tag || github.ref }} ref: ${{ inputs.tag || github.ref }}
@@ -139,7 +139,7 @@ jobs:
run: ditto -c -k --sequesterRsrc --keepParent ".build/shannoncoat.app" "shannoncoat.app.zip" run: ditto -c -k --sequesterRsrc --keepParent ".build/shannoncoat.app" "shannoncoat.app.zip"
- name: Publish release - name: Publish release
uses: softprops/action-gh-release@v2 uses: softprops/action-gh-release@v3
with: with:
tag_name: ${{ inputs.tag || github.ref_name }} tag_name: ${{ inputs.tag || github.ref_name }}
files: | files: |
+1 -1
View File
@@ -15,7 +15,7 @@ jobs:
tag: ${{ steps.tag.outputs.tag }} tag: ${{ steps.tag.outputs.tag }}
created: ${{ steps.tag.outputs.created }} created: ${{ steps.tag.outputs.created }}
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v7
with: with:
fetch-depth: 0 fetch-depth: 0
+24 -10
View File
@@ -1,14 +1,20 @@
![shannoncoat — which coat will Claude wear today?](docs/hero.png) ![shannoncoat — which coat will Claude wear today?](docs/hero.png)
Run multiple isolated Claude profiles on macOS — each one its own Claude Desktop Run multiple isolated [**\***](#isolation) Claude profiles on macOS — each one
**and** its own paired Claude Code setup — and tell their windows apart at a its own Claude Desktop **and** its own paired Claude Code setup — and tell their
glance. windows apart at a glance.
Your normal Claude install is left completely alone. It stays exactly as it is Your normal Claude install is left alone. It stays as it is and keeps working
and keeps working normally; shannoncoat only adds profiles alongside it. normally; shannoncoat only adds profiles alongside it.
A menu-bar item allows quick switching and profile management. A menu-bar item allows quick switching and profile management.
---
> [!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.
## Requirements ## Requirements
- macOS 13 or later - macOS 13 or later
@@ -115,8 +121,12 @@ rather than killing Claude underneath it. Answer the dialog.
## Build from source ## Build from source
Requires the Xcode Command Line Tools. Local builds require the Xcode Command Line Tools.
```
xcode-select --install
```
Then run the build script
```bash ```bash
./build.sh ./build.sh
``` ```
@@ -129,8 +139,12 @@ every time, which silently invalidates its Accessibility grant on each rebuild.
`.env.example` walks through creating a self-signed certificate once so the `.env.example` walks through creating a self-signed certificate once so the
permission survives. permission survives.
--- ## Isolation
shannoncoat started as the shell script in the first commit, written by hand. > [!IMPORTANT]
Claude Code built the app out of it — most of the Swift, the icon, and this > Perfect isolation is not guaranteed. Claude and Claude Code can have functionally
README — working from direction, review and testing. > full disk access regardless of which profile it's running from, including access
> to default configuration folders.
>
> Some Claude integrations — skills, plugins, etc — may also hardcode the
> `~/.claude` path which may modify content in there.
+1 -1
View File
@@ -1 +1 @@
0.0.10 1.0.0