CommunityCodierung & Entwicklunggithub.com

Claude Desktop Profile

Ermöglicht die Nutzung mehrerer Claude-Konten gleichzeitig auf dem Mac, mit einem App-Instanz pro Konto und separaten Dock-Startern.

Was ist Claude Desktop Profile?

Dieses Skill richtet mehrere, voneinander isolierte Claude Desktop-Profile für verschiedene Benutzerkonten auf einem Mac ein, ohne dass die originale `/Applications/Claude.app` verändert oder dupliziert werden muss. Es legt pro Konto einen eigenen Profilordner mit `--user-data-dir` an und erstellt einen AppleScript-basierten Dock-Starter, der die App mit dem richtigen Profil startet. Der Skill stellt sicher, dass niemals zwei Instanzen dasselbe Profil gleichzeitig nutzen, da die App keine Single-Instance-Sperre unter macOS hat – ein häufiger Fehler, der zu Datenverlust führen kann. Die Anmeldung erfolgt immer mit genau einer laufenden Instanz, da Google-/SSO-Logins über einen `claude://`-Link zurückkommen, der sonst an die falsche Instanz weitergeleitet wird. Das Tool umfasst Funktionen zum Bauen (build), Testen (smoke) und Überprüfen der Profile sowie eine automatische Migrationsprüfung für MCP-Server und geplante Aufgaben. Es ist speziell für macOS entwickelt und erfordert die Ausführung in einem Terminal, wenn `~/Library` nicht lesbar ist. Der Skill ist besonders nützlich für Entwickler:innen, die mehrere Claude-Konten (privat/beruflich) parallel nutzen und sauber getrennt halten möchten.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/soerenmartius/skills/tree/HEAD/skills/claude-desktop-profiles

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht Claude Desktop Profile?

Eine echte /Applications/Claude.app, ein Profilordner pro Konto via --user-data-dir, ein geschützter Dock-Starter pro Konto. Die bestehende App, deren Anmeldung und das Standardprofil werden nie angetastet. Rückgängig machen durch Löschen der Starter und der zusätzlichen Ordner.

Abgeleitet von Chad Timblins Anleitung Eine separate Claude Desktop App für jedes Claude-Konto ausführen. Nur macOS. Windows ist unbestätigt; der Anhang dieser Anleitung enthält die bekannten Hinweise.

Grundregeln

  1. Ändere, verschiebe, benenne, dupliziere oder signiere /Applications/Claude.app niemals neu. Auch nicht als Fallback. Wenn Schritt 2 fehlschlägt, stoppe und melde; biete keinen Klon an.
  2. Schreibe niemals in das Standardprofil ~/Library/Application Support/Claude.
  3. Starte niemals ein Profil, das bereits läuft. Die App hat keine Single-Instance-Sperre unter macOS: Zwei Starts eines Ordners erzeugen zwei Live-Prozesse, die sich einen Ordner teilen (bestätigt am 2026-11-04 für v4.16336.0 und am 2026-07-11 für v1.20186.1). Der Fokuspfad eines Starters darf niemals auf einen Neustart zurückfallen.
  4. Anmeldungen sind Aufgabe des Benutzers, mit genau einer laufenden Instanz. Google- und SSO-Anmeldungen gehen über den Browser und kommen über einen claude://-Link zurück, den macOS an die bereits laufende Instanz übergibt. Wenn zwei geöffnet sind, erhält die angemeldete den Link und protokolliert Google sign-in code does not answer a sign-in this app started; ignoring, die andere bleibt auf dem Anmeldebildschirm. Behandle niemals Passwörter.
  5. Beachte deine Laufzeitumgebung. Wenn diese Sitzung in der Claude Desktop App läuft, beendet deren Schließen die Sitzung: Gib dem Benutzer die Schrittanleitung zum Schließen als Text. Wenn ~/Library nicht lesbar ist, sage dem Benutzer, er solle dies von einem Terminal aus ausführen.
  6. Lösche nur Testartefakte, die du in dieser Sitzung erstellt hast. Der Smoke-Test des Skripts weigert sich, einen Ordner anzufassen, der vor seiner Ausführung existierte.

Umfang

Die gesamte Aufgabe umfasst etwa zehn Befehle plus eine README. Fakten über die installierte Version stammen aus dem Wegwerftest in Schritt 2, niemals aus dem Lesen von app.asar, Berechtigungen, Fuses oder Electron-Interna. Benutzerdefinierte Starter-Symbole nur auf Anfrage.

Schritte

S ist scripts/claude-profiles.sh im Verzeichnis dieses Skills; bash $S zeigt die Nutzung an. AppleScript-Quellen gehen nach CLAUDE_LAUNCHER_SOURCES (Standard ~/Documents/claude-multi-account/launcher-sources); verweise auf den README-Ordner aus Schritt 5, falls der Benutzer einen anderen wählt. Wenn /Applications nicht beschreibbar ist, setze CLAUDE_LAUNCHER_DIR=$HOME/Applications. verify-mechanism schreibt und löscht /tmp/claude-profile-test-<pid>.

  1. Eingaben. Das primäre Konto ist das aktuell angemeldete. Es behält das Standardprofil und erhält Claude (<Label>).app. Jedes weitere Konto erhält den Ordner Claude-<Label> und seinen eigenen Claude (<Label>).app. Frage nach Labels und E-Mails, falls diese nicht angegeben wurden. Um herauszufinden, welches Konto angemeldet ist, vergleiche lastKnownAccountUuid im config.json des Standardprofils mit oauthAccount in ~/.claude.json; wenn sie abweichen, frage den Benutzer, welche E-Mail die App anzeigt. Kein Profilordnername darf ein Präfix eines anderen sein; build weigert sich bei Konflikten mit vorhandenen Ordnern und mit Ordnern, die von anderen Starter-Quellen benannt werden. Ordner unter Application Support, die mit Claude beginnen, aber keine Cookies-Datei enthalten (z. B. Claude-3p), sind keine Profile; lasse sie in Ruhe.
  2. Vorbereitung und Mechanismus. bash $S preflight. Warne den Benutzer, dass ein Fenster erscheint, dann bash $S verify-mechanism. FEHLER bedeutet anhalten und dem Benutzer mitteilen.
  3. Bauen und Testen. Primär: bash $S build <Label> default. Jedes weitere Konto: bash $S build <Label> Claude-<Label>, dann bash $S smoke <Label> Claude-<Label>. Teste niemals den primären Starter: Sein Fokuspfad löst die Automatisierungsabfrage zu einem Zeitpunkt aus, den der Benutzer nicht erwartet. Wenn Starter oder eine README aus einem früheren Durchlauf existieren, sichere den README-Ordner, baue direkt neu (build überschreibt), und lösche niemals einen Starter, den du nicht in dieser Sitzung erstellt hast.
  4. Migrationsprüfung. Dinge auf claude.ai-Seite (Unterhaltungen, Projekte, Verbindungen) folgen der Anmeldung. Desktop-seitige Dinge tun das nicht. MCP-Server leben in <profil>/claude_desktop_config.json: kopiere Einträge selektiv, da eine pauschale Kopie jeden lokalen Server-Prozess verdoppelt. Geplante Aufgaben leben in <profil>/local-agent-mode-sessions/<uuid>/<uuid>/scheduled-tasks.json und <profil>/claude-code-sessions/..., laufen nur, während ihr Konto in einer laufenden Instanz angemeldet ist, und migrieren bei beendeter Zielinstanz: kopiere Felder genau, entferne notifySessionId, behalte lastRunAt, setze enabled: false auf der alten Kopie und belasse sie. Der preferences-Block derselben Datei (Cowork-Einstellungen, Bypass-Berechtigungs-Gate, erlaubte Ursprünge, Ordnerberechtigungen, Chrome-Erweiterungs-Pairing) bleibt beim Standardprofil; liste in der README auf, was der Benutzer möglicherweise erneut setzen möchte, und weise darauf hin, dass nur eine Instanz mit der Chrome-Erweiterung gepaart werden sollte. ~/.claude wird von jeder Instanz geteilt, daher gilt die globale CLAUDE.md für alle.
  5. README. Fülle references/readme-template.md in einen vom Benutzer benannten Ordner (Standard ~/Documents/claude-multi-account).
  6. Übergabe mit dem untenstehenden Text, dann anhalten. Vor jeder vom Benutzer gemeldeten Anmeldung führe bash $S ps aus und bestätige, dass nichts ausgegeben wird; falls doch, beende die Instanzen selbst (kill auf ihre PIDs, SIGTERM ist ein sauberes Beenden für diese App) und sage dem Benutzer erst dann, den einen Starter zu klicken. Jedes laufende Fenster sieht gleich aus, daher ist „die angemeldete Instanz beenden“ der Schritt, den Benutzer falsch machen.
  7. Wenn der Benutzer sich zurückmeldet: bash $S ps muss jede Instanz mit einem eindeutigen Profil und einer eindeutigen account=-UUID anzeigen.

Übergabetext

Bei immer nur einer geöffneten Instanz:

  1. Ziehe die Starter aus Programme in das Dock und entferne die einfache Claude-Kachel: Sobald mehrere Instanzen laufen, leuchtet diese Kachel für alle auf und fokussiert diejenige, die macOS auswählt.
  2. Beende jedes Claude-Fenster: Drücke Cmd+Q in jedem, bis keins mehr übrig ist. Alle Fenster sehen identisch aus, versuche also nicht, eines zu behalten. Eine Anmeldung wird nur abgeschlossen, wenn genau eine Instanz läuft.
  3. Klicke auf Claude (<Label2>), melde dich mit diesem Konto an und beende es auf die gleiche Weise. Wiederhole dies für jedes weitere Konto, immer ohne dass etwas anderes läuft.
  4. Klicke auf Claude (<Label1>). Das primäre Konto ist noch angemeldet.
  5. Öffne von nun an beliebige Kombinationen. Um nur eine Instanz zu beenden, klicke zuerst auf ihr Fenster, dann Cmd+Q.

Beim ersten Mal, wenn ein Starter eine laufende Instanz fokussiert, fragt macOS, ob es System Events steuern darf. Klicke auf Erlauben; Verweigern deaktiviert nur den automatischen Fokus. Laufende Kacheln teilen sich ein Symbol und können nach einem Dock-Neustart zusammenwachsen. Beides ist harmlos.

Fallstricke

SymptomWas zu tun ist
Zwei Instanzen zeigen das gleiche Dock-Symbol oder wachsen zu einer Kachel zusammenKosmetisch. Starter finden Instanzen über Prozesse, nicht über Kacheln.
Kurzbefehl für Schnelleingabe funktioniert nur in einer InstanzBeide registrieren ihn. Ändere oder deaktiviere ihn in den Einstellungen einer Instanz.
„Neustarten zum Aktualisieren“ in einer InstanzBeende alle Instanzen, starte dann über die Starter neu. Ein App-Bundle, ein Update-Pfad.
Cowork in einem zweiten Profil verwendetEs lädt sein eigenes VM-Bundle herunter, etwa 10 GB pro Profil.
kill $pids schlägt fehl mit „ungültige pid: 1\n2“zsh splittet keine Wörter. Leite durch xargs kill. Das Skript macht das bereits.
Testordner gelöscht, während seine Instanz noch liefZuerst beenden, bestätigen, dass weg, dann löschen. Das Skript macht das bereits.
Google- oder SSO-Anmeldung öffnet den Browser, endet mit „Anmeldung in der Claude App abschließen“ und „Claude öffnen“ tut nichts; die neue Instanz bleibt auf dem AnmeldebildschirmEine andere Instanz lief und hat den Callback abgefangen. Beende jede Instanz (überprüfe mit ps), öffne nur diesen Starter, melde dich erneut an. Alle Instanzen teilen sich ~/Library/Logs/Claude/main.log; durchsuche es mit [Auth] und sign-in code, um zu sehen, welche den Callback bekommen hat. Unveränderte PIDs über mehrere Versuche hinweg bedeuten, dass der Benutzer nie beendet hat.
Automatisierungsaufforderung während der Einrichtung erschienenJemand hat einen Starter geöffnet, dessen Instanz bereits lief. Klicke auf Erlauben; nichts ist kaputt.

Warnsignale

  • „Die App hat eine Single-Instance-Sperre, daher ist Neustarten bei Fokusfehler sicher.“ Das tut sie nicht. Schritt 2 ist die einzige Quelle der Wahrheit für diese Version.
  • „Die Anmeldung ist app-intern, daher können beide Instanzen offen bleiben.“ Eine Instanz während der Anmeldung, immer.
  • „Plan B: App klonen und neu signieren.“ Verboten. Stattdessen anhalten und melden.
  • „Lass mich zuerst app.asar / Berechtigungen / Fuses inspizieren.“ Nicht im Rahmen.
  • „Ich könnte die Symbole gleich mit Abzeichen versehen.“ Nur auf Anfrage.
  • „Ich teste auch den primären Starter.“ Sein Fokuspfad fordert den Benutzer auf. Nur Pipeline-Prüfung.

Wiederherstellung

Setze eine nicht-primäre Instanz zurück: beende sie, lösche ihren Profilordner, klicke auf ihren Starter, melde dich erneut an. Alles rückgängig machen: lösche die Starter und die zusätzlichen Profilordner. Die echte App und das Standardprofil sind niemals betroffen. Baue einen Starter aus seiner Quelle neu mit osacompile -o "/Applications/Claude (<Label>).app" <quelle>.applescript.

Verwandte Skills