Profils pour l'application Claude Desktop

Utilisez lorsque l'utilisateur souhaite utiliser l'application Claude Desktop avec plusieurs comptes Claude simultanément sur Mac, avec une instance par compte accessible depuis le Dock, ou lorsqu'il demande des profils séparés pour l'application Claude, une configuration multi-comptes ou des lanceurs dans le Dock.

Qu'est-ce que Profils pour l'application Claude Desktop ?

Cette compétence permet de configurer plusieurs profils pour l'application Claude Desktop sur macOS, en utilisant une seule installation officielle de l'application. Elle crée un dossier de profil distinct par compte via l'option `--user-data-dir`, ainsi qu'un lanceur dans le Dock pour chaque profil. L'application d'origine, sa connexion et le profil par défaut ne sont jamais modifiés. La procédure comprend des vérifications automatiques pour s'assurer qu'aucune instance en conflit n'est déjà en cours d'exécution, et elle guide l'utilisateur pour une connexion sécurisée, une instance à la fois. Cette approche évite les doublons d'application et les conflits de données tout en offrant une expérience multi-comptes propre et réversible.

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

Installed? Explore more Développement et programmation skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait Profils pour l'application Claude Desktop ?

Un seul vrai /Applications/Claude.app, un dossier de profil par compte grâce à --user-data-dir, un lanceur protégé dans le Dock par compte. L'application existante, sa connexion et le profil par défaut ne sont jamais touchés. Pour annuler, il suffit de supprimer les lanceurs et les dossiers supplémentaires.

Dérivé du guide de Chad Timblin Exécuter une application Claude Desktop distincte pour chaque compte Claude. macOS uniquement. Windows n'est pas vérifié ; l'annexe de ce guide contient les notes connues.

Règles de base

  1. Ne jamais modifier, déplacer, renommer, dupliquer ou resigner /Applications/Claude.app. Pas même comme solution de repli. Si l'étape 2 échoue, arrêtez-vous et signalez-le ; ne proposez pas de clone.
  2. Ne jamais écrire dans le profil par défaut ~/Library/Application Support/Claude.
  3. Ne jamais lancer un profil déjà en cours d'exécution. L'application n'a pas de verrou d'instance unique sur macOS : deux lancements d'un même dossier donnent deux processus actifs partageant le même dossier (vérifié le 2026-11-04 sur la v4.16336.0, et le 2026-07-11 sur la v1.20186.1). Le chemin de mise au point d'un lanceur ne doit jamais retomber sur un relancement.
  4. Les connexions sont la responsabilité de l'utilisateur, avec exactement une instance en cours d'exécution. Les connexions Google et SSO passent par le navigateur et reviennent via un lien claude://, que macOS transmet à l'instance déjà en cours. Avec deux instances ouvertes, celle qui est connectée reçoit le lien et enregistre Google sign-in code does not answer a sign-in this app started; ignoring, et l'autre reste sur l'écran de connexion. Ne jamais gérer les mots de passe.
  5. Tenez compte de votre environnement d'exécution. Si cette session s'exécute dans l'application Claude Desktop, la quitter tue la session : donnez les étapes de fermeture à l'utilisateur sous forme de texte. Si ~/Library est illisible, demandez à l'utilisateur d'exécuter ceci depuis un terminal.
  6. Supprimez uniquement les artefacts de test que vous avez créés lors de cette session. Le test de validation du script refuse de toucher à un dossier qui existait avant son exécution.

Périmètre

L'ensemble du travail représente environ dix commandes et un README. Les faits concernant la version installée proviennent du test jetable de l'étape 2, jamais de la lecture de app.asar, des droits d'accès, des fusibles ou des éléments internes d'Electron. Icônes de lanceur personnalisées uniquement si l'utilisateur le demande.

Étapes

S est scripts/claude-profiles.sh dans le répertoire de cette compétence ; bash $S affiche l'utilisation. Les sources AppleScript vont dans CLAUDE_LAUNCHER_SOURCES (par défaut ~/Documents/claude-multi-account/launcher-sources) ; pointez-les vers le dossier README de l'étape 5 si l'utilisateur en choisit un autre. Si /Applications n'est pas inscriptible, définissez CLAUDE_LAUNCHER_DIR=$HOME/Applications. verify-mechanism écrit et supprime /tmp/claude-profile-test-<pid>.

  1. Entrées. Le compte principal est celui qui est actuellement connecté. Il conserve le profil par défaut et reçoit Claude (<Label>).app. Chaque autre compte reçoit le dossier Claude-<Label> et son propre Claude (<Label>).app. Demandez les libellés et les adresses e-mail s'ils n'ont pas été fournis. Pour déterminer quel compte est connecté, comparez lastKnownAccountUuid dans config.json du profil par défaut avec oauthAccount dans ~/.claude.json ; s'ils diffèrent, demandez à l'utilisateur quelle adresse e-mail l'application affiche. Aucun nom de dossier de profil ne peut être un préfixe d'un autre ; build refuse un conflit avec les dossiers existants et avec les dossiers nommés par d'autres sources de lanceurs. Les dossiers sous Application Support qui commencent par Claude mais ne contiennent pas de fichier Cookies (comme Claude-3p) ne sont pas des profils ; laissez-les tranquilles.
  2. Pré-vérification et mécanisme. bash $S preflight. Prévenez l'utilisateur qu'une fenêtre va apparaître, puis bash $S verify-mechanism. ÉCHEC signifie arrêtez-vous et informez l'utilisateur.
  3. Construction et test. Principal : bash $S build <Label> default. Chaque autre compte : bash $S build <Label> Claude-<Label>, puis bash $S smoke <Label> Claude-<Label>. Ne testez jamais le lanceur principal : son chemin de mise au point déclenche l'invite d'automatisation à un moment où l'utilisateur ne s'y attend pas. Si des lanceurs ou un README d'une exécution antérieure existent, sauvegardez le dossier README, reconstruisez sur place (build écrase), et ne supprimez jamais un lanceur que vous n'avez pas créé lors de cette session.
  4. Vérification de migration. Les éléments côté claude.ai (conversations, projets, connecteurs) suivent la connexion. Les éléments côté bureau ne le font pas. Les serveurs MCP se trouvent dans <profile>/claude_desktop_config.json : copiez les entrées de manière sélective, car une copie intégrale double chaque processus de serveur local. Les tâches planifiées se trouvent dans <profile>/local-agent-mode-sessions/<uuid>/<uuid>/scheduled-tasks.json et <profile>/claude-code-sessions/..., ne s'exécutent que lorsque leur compte est connecté dans une instance en cours, et migrent avec l'instance cible quittée : copiez exactement les champs, supprimez notifySessionId, conservez lastRunAt, définissez enabled: false sur l'ancienne copie et conservez-la. Le bloc preferences de ce même fichier (paramètres Cowork, passerelle de contournement des autorisations, origines autorisées, octrois de dossiers, appairage avec l'extension Chrome) reste avec le profil par défaut ; listez dans le README ce que l'utilisateur pourrait vouloir redéfinir, et notez qu'une seule instance doit s'appairer avec l'extension Chrome. ~/.claude est partagé par toutes les instances, donc le CLAUDE.md global s'applique à toutes.
  5. README. Remplissez references/readme-template.md dans un dossier nommé par l'utilisateur (par défaut ~/Documents/claude-multi-account).
  6. Passez la main avec le texte ci-dessous, puis arrêtez-vous. Avant chaque connexion signalée par l'utilisateur, exécutez bash $S ps et confirmez qu'il n'affiche rien ; si ce n'est pas le cas, quittez vous-même les instances (kill sur leurs pids, SIGTERM est une fermeture propre pour cette application) et alors seulement dites à l'utilisateur de cliquer sur le lanceur. Chaque fenêtre ouverte se ressemble, donc « quitter celle qui est connectée » est l'étape que les utilisateurs comprennent mal.
  7. Lorsque l'utilisateur revient : bash $S ps doit montrer chaque instance sur un profil distinct avec un UUID account= distinct.

Texte de passation

Avec une seule instance ouverte à la fois :

  1. Faites glisser les lanceurs depuis Applications dans le Dock et supprimez la vignette Claude standard : une fois plusieurs instances en cours, cette vignette s'allume pour toutes et met au point celle que macOS choisit.
  2. Quittez chaque fenêtre Claude : appuyez sur Cmd+Q dans chacune jusqu'à ce qu'il n'en reste plus. Toutes les fenêtres se ressemblent, n'essayez donc pas d'en garder une. Une connexion n'est finalisée que lorsqu'exactement une instance est en cours d'exécution.
  3. Cliquez sur Claude (<Label2>), connectez-vous avec ce compte, puis quittez-le de la même manière. Répétez pour chaque compte supplémentaire, toujours sans rien d'autre en cours.
  4. Cliquez sur Claude (<Label1>). Le compte principal est toujours connecté.
  5. Désormais, ouvrez n'importe quelle combinaison. Pour quitter une seule instance, cliquez d'abord sur sa fenêtre, puis Cmd+Q.

La première fois qu'un lanceur met au point une instance en cours, macOS demande l'autorisation de contrôler les Événements système. Cliquez sur Autoriser ; refuser désactive uniquement la mise au point automatique. Les vignettes en cours partagent une icône et peuvent fusionner après un redémarrage du Dock. Les deux sont inoffensifs.

Pièges

SymptômeQue faire
Deux instances affichent la même icône dans le Dock, ou fusionnent en une seule vignetteEsthétique. Les lanceurs trouvent les instances par processus, pas par vignette.
Le raccourci clavier Quick Entry se déclenche dans une seule instanceLes deux l'enregistrent. Modifiez-le ou désactivez-le dans les paramètres d'une instance.
« Redémarrer pour mettre à jour » dans une instanceQuittez toutes les instances, puis relancez via les lanceurs. Un seul bundle d'application, un seul chemin de mise à jour.
Cowork utilisé dans un second profilIl télécharge son propre bundle de machine virtuelle, environ 10 Go par profil.
kill $pids échoue avec « pid illégal : 1\n2 »zsh ne divise pas les mots. Passez par xargs kill. Le script le fait déjà.
Dossier de test supprimé alors que son instance était toujours en coursTue d'abord, confirme la disparition, puis supprime. Le script le fait déjà.
Connexion Google ou SSO ouvre le navigateur, se termine sur « Terminer la connexion dans l'application Claude », et « Ouvrir Claude » ne fait rien ; la nouvelle instance reste sur l'écran de connexionUne autre instance était en cours et a pris le callback. Quittez toutes les instances (vérifiez avec ps), ouvrez uniquement ce lanceur, reconnectez-vous. Toutes les instances partagent ~/Library/Logs/Claude/main.log ; cherchez [Auth] et sign-in code pour voir laquelle l'a reçu. Des pids inchangés entre les tentatives signifient que l'utilisateur n'a jamais quitté.
Invite d'automatisation apparue lors de la configurationQuelqu'un a ouvert un lanceur dont l'instance était déjà en cours. Cliquez sur Autoriser ; rien n'est cassé.

Drapeaux rouges

  • « L'application a un verrou d'instance unique, donc relancer en cas d'échec de mise au point est sûr. » Ce n'est pas le cas. L'étape 2 est la seule source de vérité concernant cette version.
  • « La connexion est intégrée à l'application, donc les deux instances peuvent rester ouvertes. » Une instance pendant la connexion, toujours.
  • « Plan B : cloner et resigner l'application. » Interdit. Arrêtez-vous et signalez-le à la place.
  • « Laissez-moi inspecter app.asar / les droits d'accès / les fusibles d'abord. » Hors périmètre.
  • « Je vais aussi ajouter des badges aux icônes pendant que j'y suis. » Uniquement sur demande.
  • « Je vais aussi tester le lanceur principal. » Son chemin de mise au point invite l'utilisateur. Vérification par pipeline uniquement.

Rétablissement

Réinitialiser une instance non principale : quittez-la, supprimez son dossier de profil, cliquez sur son lanceur, reconnectez-vous. Tout annuler : supprimez les lanceurs et les dossiers de profil supplémentaires. La vraie application et le profil par défaut ne sont jamais impliqués. Reconstruire un lanceur à partir de sa source avec osacompile -o "/Applications/Claude (<Label>).app" <source>.applescript.

Skills associés