Perfis do Claude Desktop

Use quando alguém quiser que o aplicativo Claude Desktop esteja conectado a várias contas Claude ao mesmo tempo em um Mac, uma instância do aplicativo por conta, alternável pelo Dock, ou quando pedir perfis separados do Claude Desktop, uma configuração de várias contas Claude, ou lançadores no Dock para o aplicativo Claude.

O que é Perfis do Claude Desktop?

Esta skill permite executar múltiplas instâncias do aplicativo Claude Desktop em um único Mac, cada uma conectada a uma conta Claude diferente. Ela cria um perfil de pasta exclusivo por conta usando o recurso `--user-data-dir` do Electron, gerando lançadores separados no Dock para cada instância. A skill prioriza a segurança: o aplicativo original (`/Applications/Claude.app`) nunca é modificado, e o perfil padrão existente não é alterado. Isso resolve a limitação do sistema de login de conta única do Claude Desktop sem clonar o aplicativo. É compatível apenas com macOS. A skill fornece scripts shell e fontes AppleScript para gerenciar perfis, realizar verificações de pré-voo e oferece um processo de reversão completo. Também aborda armadilhas comuns, como login simultâneo com uma única instância e instâncias que compartilham o mesmo ícone ou acesso a extensões Chrome.

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

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que Perfis do Claude Desktop faz?

Um único /Applications/Claude.app real, uma pasta de perfil por conta usando --user-data-dir, um lançador no Dock protegido por conta. O aplicativo existente, seu login e o perfil padrão nunca são tocados. Para desfazer, basta excluir os lançadores e as pastas extras.

Derivado do guia de Chad Timblin Executar um Aplicativo Claude Desktop Separado para Cada Conta Claude. Apenas macOS. Windows não foi verificado; o apêndice daquele guia contém as anotações conhecidas.

Regras básicas

  1. Nunca modifique, mova, renomeie, duplique ou reassine /Applications/Claude.app. Nem como plano de contingência. Se a etapa 2 falhar, pare e reporte; não ofereça um clone.
  2. Nunca escreva no perfil padrão ~/Library/Application Support/Claude.
  3. Nunca inicie um perfil que já está em execução. O aplicativo não possui trava de instância única no macOS: duas execuções de uma mesma pasta geram dois processos ativos compartilhando a mesma pasta (verificado em 2026-11-04 na v4.16336.0 e em 2026-07-11 na v1.20186.1). O caminho de foco de um lançador nunca deve recorrer a reiniciar.
  4. Os logins são responsabilidade do usuário, com exatamente uma instância em execução. Logins do Google e SSO fazem ida e volta pelo navegador e retornam por um link claude://, que o macOS entrega à instância já em execução. Com duas abertas, a que está logada recebe e registra Google sign-in code does not answer a sign-in this app started; ignoring, e a outra permanece na tela de login. Nunca lide com senhas.
  5. Cuidado com seu ambiente de execução. Se esta sessão estiver rodando dentro do aplicativo Claude Desktop, fechá-lo encerra a sessão: repasse as etapas de encerramento ao usuário como texto. Se ~/Library não estiver legível, peça ao usuário para executar isto de um terminal.
  6. Exclua apenas artefatos de teste que você criou nesta sessão. O teste automatizado do script se recusa a tocar em uma pasta que existia antes de sua execução.

Escopo

Todo o trabalho consiste em cerca de dez comandos mais um README. Informações sobre a versão instalada vêm do teste descartável na etapa 2, nunca da leitura de app.asar, entitlements, fuses ou detalhes internos do Electron. Ícones personalizados nos lançadores apenas quando o usuário pedir.

Etapas

S é scripts/claude-profiles.sh no diretório desta skill; bash $S exibe a ajuda. As fontes AppleScript vão para CLAUDE_LAUNCHER_SOURCES (padrão ~/Documents/claude-multi-account/launcher-sources); aponte para a pasta do README da etapa 5 se o usuário escolher outro local. Se /Applications não for gravável, defina CLAUDE_LAUNCHER_DIR=$HOME/Applications. verify-mechanism cria e remove /tmp/claude-profile-test-<pid>.

  1. Entradas. A conta principal é a que está logada no momento. Ela mantém o perfil padrão e recebe Claude (<Rótulo>).app. Cada outra conta recebe a pasta Claude-<Rótulo> e seu próprio Claude (<Rótulo>).app. Pergunte pelos rótulos e e-mails se não foram fornecidos. Para descobrir qual conta está logada, compare lastKnownAccountUuid no config.json do perfil padrão com oauthAccount em ~/.claude.json; se forem diferentes, pergunte ao usuário qual e-mail o aplicativo exibe. Nenhum nome de pasta de perfil pode ser prefixo de outro; build recusa conflitos com pastas existentes e com pastas nomeadas por outras fontes de lançadores. Pastas em Application Support que começam com Claude mas não contêm arquivo Cookies (como Claude-3p) não são perfis; deixe-as em paz.
  2. Pré-voo e mecanismo. bash $S preflight. Avise o usuário que uma janela aparecerá, então bash $S verify-mechanism. FALHA significa pare e informe ao usuário.
  3. Construir e testar. Principal: bash $S build <Rótulo> default. Cada outra conta: bash $S build <Rótulo> Claude-<Rótulo>, então bash $S smoke <Rótulo> Claude-<Rótulo>. Nunca teste o lançador principal: seu caminho de foco aciona o prompt de Automação em um momento inesperado para o usuário. Se lançadores ou um README de uma execução anterior existirem, faça backup da pasta do README, reconstrua no local (build sobrescreve) e nunca exclua um lançador que você não criou nesta sessão.
  4. Verificação de migração. Itens do lado do claude.ai (conversas, projetos, conectores) acompanham o login. Itens do lado do Desktop não. Servidores MCP ficam em <perfil>/claude_desktop_config.json: copie entradas seletivamente, pois uma cópia completa duplica cada processo de servidor local. Tarefas agendadas ficam em <perfil>/local-agent-mode-sessions/<uuid>/<uuid>/scheduled-tasks.json e <perfil>/claude-code-sessions/..., executam apenas enquanto sua conta estiver logada em uma instância em execução e são migradas com a instância de destino encerrada: copie os campos exatamente, remova notifySessionId, mantenha lastRunAt, defina enabled: false na cópia antiga e a mantenha. O bloco preferences do mesmo arquivo (configurações de Cowork, porta de permissão, origens permitidas, concessões de pastas, emparelhamento de extensão Chrome) permanece no perfil padrão; liste no README o que o usuário pode querer configurar novamente e observe que apenas uma instância deve emparelhar com a extensão Chrome. ~/.claude é compartilhado por todas as instâncias, então o CLAUDE.md global se aplica a todas elas.
  5. README. Preencha references/readme-template.md em uma pasta que o usuário nomear (padrão ~/Documents/claude-multi-account).
  6. Repasse com o texto abaixo, então pare. Antes de cada login que o usuário relatar, execute bash $S ps e confirme que não imprime nada; se imprimir, encerre as instâncias você mesmo (kill nos pids delas, SIGTERM é um encerramento limpo para este aplicativo) e só então diga ao usuário para clicar no lançador. Todas as janelas em execução parecem iguais, então "encerre a que está logada" é a etapa que os usuários erram.
  7. Quando o usuário relatar de volta: bash $S ps deve mostrar cada instância em um perfil distinto com um UUID account= distinto.

Texto de repasse

Com apenas uma instância aberta por vez:

  1. Arraste os lançadores de Applications para o Dock e remova o bloco simples do Claude: quando várias instâncias estiverem em execução, aquele bloco acende para todas e foca na que o macOS escolher.
  2. Feche todas as janelas do Claude: pressione Cmd+Q em cada uma até que nenhuma reste. Todas as janelas são idênticas, então não tente manter uma. Um login só é concluído quando exatamente uma instância está em execução.
  3. Clique em Claude (<Rótulo2>), faça login com essa conta, depois feche da mesma forma. Repita para cada conta adicional, sempre sem mais nada em execução.
  4. Clique em Claude (<Rótulo1>). A conta principal ainda está logada.
  5. De agora em diante, abra qualquer combinação. Para encerrar apenas uma instância, clique primeiro em sua janela, depois Cmd+Q.

Na primeira vez que um lançador focar uma instância em execução, o macOS pergunta se deve permitir que ele controle Eventos do Sistema. Clique em Permitir; negar apenas desabilita o autofoco. Blocos em execução compartilham um ícone e podem se fundir após uma reinicialização do Dock. Ambos são inofensivos.

Armadilhas

SintomaO que fazer
Duas instâncias mostram o mesmo ícone no Dock, ou se fundem em um blocoCosmético. Lançadores encontram instâncias por processo, não por bloco.
O atalho de teclado de Entrada Rápida funciona em apenas uma instânciaAmbas o registram. Altere ou desabilite-o nas configurações de uma instância.
"Reinicie para atualizar" em uma instânciaFeche todas as instâncias e reinicie através dos lançadores. Um pacote de aplicativo, um caminho de atualização.
Cowork usado em um segundo perfilEle baixa seu próprio pacote de VM, cerca de 10 GB por perfil.
kill $pids falha com "illegal pid: 1\n2"O zsh não faz separação por palavras. Use pipe com xargs kill. O script já faz isso.
Pasta de teste excluída enquanto sua instância ainda estava em execuçãoEncerre primeiro, confirme que terminou, depois exclua. O script já faz isso.
Login do Google ou SSO abre o navegador, termina em "Concluir login no aplicativo Claude" e "Abrir Claude" não faz nada; a nova instância permanece na tela de loginOutra instância estava em execução e recebeu o callback. Feche todas as instâncias (verifique com ps), abra apenas aquele lançador e faça login novamente. Todas as instâncias compartilham ~/Library/Logs/Claude/main.log; use grep para [Auth] e sign-in code para ver qual recebeu. Pids inalterados entre tentativas significam que o usuário nunca encerrou.
Prompt de Automação apareceu durante a configuraçãoAlguém abriu um lançador cuja instância já estava em execução. Clique em Permitir; nada está quebrado.

Bandeiras vermelhas

  • "O aplicativo tem uma trava de instância única, então reiniciar na falha de foco é seguro." Não tem. A etapa 2 é a única fonte de verdade sobre esta versão.
  • "O login é dentro do aplicativo, então ambas as instâncias podem ficar abertas." Uma instância durante o login, sempre.
  • "Plano B: clonar e reassinar o aplicativo." Proibido. Pare e reporte.
  • "Deixe-me inspecionar app.asar / entitlements / fuses primeiro." Fora do escopo.
  • "Vou colocar emblemas nos ícones enquanto estou nisso." Apenas sob solicitação.
  • "Também vou testar o lançador principal." Seu caminho de foco gera prompt ao usuário. Apenas verificação no pipeline.

Recuperação

Redefinir uma instância não principal: encerre-a, exclua sua pasta de perfil, clique em seu lançador e faça login novamente. Desfazer tudo: exclua os lançadores e as pastas de perfil extras. O aplicativo real e o perfil padrão nunca são envolvidos. Reconstrua um lançador a partir de sua fonte com osacompile -o "/Applications/Claude (<Rótulo>).app" <fonte>.applescript.

Habilidades Relacionadas