O espaço em disco do Xcode pode crescer rapidamente sem que você perceba. Especialmente nos dias atuais, com vários agentes transformando várias árvores de trabalho em ocupantes silenciosos do espaço em disco. Antigamente eu só me concentrava em excluir Simuladores antigos de vez em quando, mas agora também gerencio ativamente as árvores de trabalho e os diretórios derivados. Existem ótimas aplicações Mac e projetos open-source para resolver o problema do espaço em disco, mas eu precisava de algo mais automático.
Por isso criei um novo projeto open-source Xcode Disk Cleanup Agent Skill. É fácil invocar e pode ser chamado automaticamente por qualquer agente quando detecta armazenamento baixo, sem nunca deletar algo sem aprovação explícita. Ao pesquisar caminhos comuns usando scripts que transformam os resultados em dados estruturados, o uso do token será baixo e o tempo gasto gerenciando espaço de armazenamento será ótimo. Vamos mergulhar!
Por que o Xcode consome tanto espaço em disco
O Xcode armazena dados gerados em várias localizações no seu Mac, preenchendo assim o seu espaço em disco. Alguns arquivos melhoram a performance da construção, enquanto outros suportam depuração, teste ou distribuição.
- Dados derivados contendo produtos de build e índices
- Dispositivos Simulador e runtimes baixados
- Arcos e seus dSYMs correspondentes
- Símbolos DeviceSupport para dispositivos conectados
- Xcode instaladores baixados e versões anteriores do Xcode
- Documentação, logs diagnósticos e caches CocoaPods
- Pastas específicas do projeto
.builde.derived-data
A introdução ao desenvolvimento agêntico aumentou o impacto. Eu frequentemente rodo vários agentes usando árvores de trabalho Git separadas, cada uma das quais pode criar seus próprios artefatos de build. Descrevi essa workflow em mais detalhes no meu artigo sobre as lições que aprendi após usar agentes de IA em tempo integral. Trabalhar com vários agentes ajuda-me a progredir mais rápido, mas também torna o gerenciamento automático do espaço de armazenamento ainda mais valioso.
Novos betas do Xcode são divertidos também. Frequentemente encontro grandes arquivos .xip ou antigos betas do Xcode na minha pasta Downloads, ops. E sim, estou usando o Xcodes, mas deveria usá-lo mais! De qualquer forma, é claro que precisamos lidar com armazenamento ainda mais agora que realizamos mais trabalho em paralelo.
Instalando o Xcode Disk Space Cleanup Agent Skill
Poderia explicar como deletar tudo manualmente ou instalar algumas aplicações Mac open-source, mas estou aqui para ajudá-lo a automatizar a limpeza com agentes. Como mencionado anteriormente, adoraria que você explorasse o meu novo projeto open-source Agent Skill. Você pode aprender mais sobre como as skills funcionam no meu artigo Agent Skills explicados: Substituindo AGENTS.md com conhecimento de IA reutilizável.
A maneira mais fácil de instalar a habilidade é usando a ferramenta de linha de comando npx skills:
npx skills add https://github.com/AvdLee/Xcode-Disk-Cleanup-Agent-Skill --skill xcode-disk-cleanup
A habilidade usa o formato aberto Agent Skills e funciona com ferramentas compatíveis como Cursor, Claude Code e Codex.
Você pode invocá-la com um prompt como:
Use a habilidade de limpeza de espaço do disco Xcode e mostre-me quantos GB posso recuperar com segurança.
Sua agente deve sempre começar com uma auditoria de leitura somente. Pedir que ela “limpe o Xcode” nunca é considerado permissão para excluir arquivos.

O screenshot acima mostra um exemplo perfeito de como você pode invocar a Habilidade do Agente. Estou usando o Cursor neste exemplo, mas você pode usar qualquer IDE que preferir. Novamente, nada será removido sem sua aprovação explícita.
O que a habilidade do agente verifica?
A habilidade realiza uma auditoria nas localizações onde o Xcode comumente acumula espaço em disco:
- Dados Derivados: Trabalhosspaces ausentes, pastas exclusivas de pacotes e diretórios específicos de projetos aprovados
- Pastas de construção do projeto: Pastas locais
.builde.derived-datadentro das raízes de origem selecionadas - Simuladores: Dispositivos disponíveis e indisponíveis, dispositivos SwiftUI Preview, runtimes, volumes órfãos, caches dyld e clones XCTest
- Arsenais e dSYMs: Construções distribuídas, arquivos de backup não distribuídos e novas versões de arquivos de backup
- DeviceSupport: Símbolos para versões do iOS, watchOS, tvOS e visionOS
- Instalações do Xcode: Instaladores baixados
.xip,.dmge.zipao lado das versões instaladas do Xcode - Caches adicionais: Downloads CocoaPods, documentação, DocSets legados, logs de diagnóstico e componentes gerenciados pelo Xcode
O relatório retorna o caminho exato ou identificador do simulador, tamanho medido, nível de risco, evidências suportadoras e custo de regeneração para cada candidato. Isso permite que você abra manualmente um determinado arquivo ou pasta e a inspecione antes da exclusão.
Em uma auditoria em meu Mac, a ferramenta encontrou 126 candidatos representando cerca de 40,9 GiB de armazenamento a serem limpos. Esse número é específico para minha máquina e não garante o mesmo resultado no seu. O legal é que as ferramentas de IA podem convertê-las em um quadro fácil de digerir, como Cursor fez neste exemplo:

Os tamanhos dos candidatos relatados não são necessariamente iguais ao espaço em disco que você recuperará. Clones APFS, volumes compartilhados, snapshots e arquivos movidos para a Lixeira podem afetar o resultado final. Portanto, a habilidade mede seu espaço em disco disponível novamente após a limpeza.
Por que você deve auditar antes de excluir
Muitos guias de limpeza do Xcode recomendam excluir a pasta completa Derived Data:
rm -rf ~/Library/Developer/Xcode/DerivedData
A pasta é regenerável, mas deletar tudo ainda custa algo. Cada projeto precisa reconstruir, reindexar e possivelmente baixar novamente as dependências do pacote.
Eu prefiro remover apenas os dados derivados para projetos que não existem mais ou aqueles que eu quero recompilar explicitamente. Você pode aprender mais sobre esta pasta no meu artigo sobre erros comuns de Xcode Derived Data.
A mesma sutileza se aplica aos dispositivos do simulador. Um dispositivo contém aplicativos instalados, dados de aplicativo, configurações e estado de teste. Uma runtime é a imagem do sistema operacional compartilhada usada por um ou mais dispositivos. Excluir a camada errada pode resultar em downloads desnecessários ou perda permanente de dados de teste.
A habilidade da agente entende essas diferenças e usa ferramentas suportadas como xcrun simctl para limpeza do simulador. Ela não exclui manualmente diretórios gerenciados pelo sistema CoreSimulator ou pede que você desative a Proteção da Integridade do Sistema (eu odeio quando vejo essa recomendação, hahaha!)
Aplicando minha experiência desde 2009
Estou construindo aplicativos desde 2009 e limpei muitas instalações do Xcode ao longo do caminho. A maioria das soluções disponíveis aborda apenas parte do problema.
Alguns ferramentas excluem simuladores antigos, mas ignoram os dados derivados. Outros limpam caches sem verificar se projetos ativos ainda dependem deles. Pastas de construção local e dados derivados específicos para worktrees geralmente não são consideradas em absoluto.
Arquivos de backup também são um bom exemplo. Eu crio arquivos de backup regularmente apenas para descobrir que eles estão inválidos. Corrijo o problema, crio um novo arquivo de backup e deixo o anterior para trás.
No entanto, excluir todos os arquivos de backup antigos seria irresponsável. Um arquivo distribuído contém a versão binária exata e dSYMs correspondentes necessários para simbolizar falhas. Reconstruir o mesmo código-fonte não produz dSYMs intercambiáveis. É por isso que cria uma coceira que eu não gosto: excluir arquivos de backup antigos. Sempre me sinto como se ainda pudesse precisar deles no futuro.
A habilidade, portanto, separa os arquivos de backup em vários grupos:
- Arquivos distribuídos são preservados
- O mais novo arquivo não distribuído é preservado
- Um arquivo não distribuído só é proposto para limpeza quando um arquivo de backup mais recente do mesmo aplicativo existe
- Arquivos com status de distribuição ou backup incerto são preservados
Esta abordagem conservadora reflete como eu limparia minha própria máquina. O objetivo não é relatar o maior número possível de gigabytes recuperáveis. O objetivo é identificar armazenamento que você pode remover com base em evidências e consequências claras. Dessa forma, mantenho os arquivos de backup que me sinto como se ainda pudesse precisar no futuro enquanto ainda limpo arquivos de backup que não preciso mais.
Uma alternativa agente para DevCleaner
Eu anteriormente recomendava DevCleaner for Xcode como uma maneira fácil de encontrar arquivos antigos do desenvolvedor. Ele continua sendo um aplicativo útil para Mac e definitivamente recomendo verificar se você prefere um IDE. No entanto, uma Skill Agent pode levar o fluxo de trabalho mais longe.
Um agente pode coletar o contexto necessário para fazer uma proposta mais informada. Ele pode verificar se um workspace ainda existe, se um arquivo foi distribuído, qual versão do Xcode está selecionada atualmente e se uma SDK instalada ainda requer uma execução de simulador.
A habilidade também trata a limpeza como uma conversa. Você recebe uma lista de candidatos e aprova IDs exatas em vez de selecionar uma categoria ampla como “arquivos Xcode antigos”.
Arquivos comuns vão para a Lixeira por padrão. Operações do simulador exigem uma aprovação separada e irreversível, e builds ativos ou simuladores em execução impedem a limpeza até que eles terminem.
Este fluxo de trabalho se torna cada vez mais útil com desenvolvimento agêntico. Quanto mais agentes e árvores de trabalho eu uso, menos realista fica manter o rastreamento do armazenamento gerado por mim mesmo. Na verdade, não quero fazer isso constantemente sozinho e encontrar maneiras de automatizar as coisas.
Manter a eficiência da token de auditoria
Um agente poderia inspecionar cada diretório usando dezenas de comandos do Terminal. Isso consumiria contexto, produziria saídas inconsistentes e deixaria mais espaço para conclusões incorretas.
A Habilidade Xcode Disk Cleanup Agent inclui um script Python determinístico que realiza a auditoria completa. Ele retorna JSON compacto e estruturado ao lado de um relatório Markdown legível. Esta abordagem é mais eficiente em termos de token porque o agente raciocina sobre um único resultado consistente em vez de processar saídas brutais de muitos comandos. A saída estruturada inclui IDs candidatas estáveis, tamanhos, evidências, níveis de risco e impressões digitais de caminho.
O script verifica a identidade do caminho novamente imediatamente antes da limpeza. Se um diretório mudou após a auditoria, a aprovação expira e o agente recusa-se a excluí-lo.
Detectando automaticamente armazenamento baixo
Habilidades de Agente não exigem sempre uma invocação manual. Suas descrições ajudam agentes compatíveis a reconhecer quando são relevantes. Por exemplo, um agente pode encontrar falhas de build ou download causadas por armazenamento baixo. Se a Habilidade Xcode Disk Cleanup Agent estiver instalada, ela pode automaticamente executar a auditoria somente leitura e mostrar as opções disponíveis.
Ela ainda não pode excluir nada automaticamente. O agente deve apresentar os candidatos atuais e esperar pela sua aprovação itemizada. Deliberadamente escolhi isso por nossa própria segurança, pois a última coisa que você quer é um agente que comece a excluir todo tipo de coisas. E honestamente, esta habilidade de agente me dá ainda mais confiança, porque já vi agentes deletar pastas de Dados Derivados antes sem minha aprovação. Agora, pelo menos, eles sabem como avaliar essas pastas.
Este comportamento se torna cada vez mais valioso à medida que os agentes assumem tarefas de desenvolvimento de longo prazo. Um agente de build pode detectar que o armazenamento está se tornando um problema, investigar a causa e solicitar aprovação sem abandonar sua tarefa original.
Aprovando a limpeza
Após revisar o relatório, você pode aprovar IDs de candidatos individuais:
Aprovar os candidatos de Derived Data sem workspace e dispositivos Simulador indisponíveis.
O agente aplica apenas as IDs que você aprovou. Ele revalida cada caminho, verifica processos em execução do Xcode e do Simulador e recusa candidatos cuja identidade ou uso tenha mudado.
Dispositivos Simulador e runtimes exigem uma confirmação adicional porque essas operações são irreversíveis. Arquivos normais vão para a Lixeira, permitindo que você inspecione ou restaure antes de recuperar permanentemente o espaço.
Por exemplo, aqui estou pedindo para limpar os caches de documentação que já não são necessários:

Finalmente, o agente realiza uma auditoria novamente e compara seu espaço em disco disponível antes e depois da limpeza. Também menciona que você ainda precisa esvaziar a lixeira, o que parece mais seguro: você pode sempre reverter a exclusão.
Perguntas Frequentes
Você pode remover os runtimes que não precisa mais, mas cada um pode exigir uma download multi-gigabyte se precisar dele novamente. A habilidade só propõe a remoção de um runtime obsoleto quando ele é deletável, nenhum Xcode SDK instalado o requer e um runtime mais novo o substitui.
Arquivos distribuídos e seus dSYMs são preservados por padrão. A habilidade só propõe a remoção de um arquivo de build nunca distribuído quando existe uma versão mais nova do mesmo aplicativo. Qualquer coisa com status incerto de distribuição ou backup permanece inalterada.
Não necessariamente. Excluir os caches de build pode fazer a próxima build ser mais lenta. A habilidade exclui intencionalmente compartilhados compiladores e caches SwiftPM que se regeneram rapidamente e lentificam o desenvolvimento ativo.
A limpeza de espaço em disco do Xcode é mais complexa que a exclusão de alguns diretórios de cache. Os dados derivados podem ser regeneráveis, mas arquivos de build, estado do Simulator e arquivos DeviceSupport exigem mais contexto. A habilidade Xcode Disk Cleanup Agent aplica esse contexto através de um fluxo de trabalho audit-first. Ele mede cada candidato, explica as consequências e exclui apenas os itens exatos que você aprovar.
Instale a habilidade e pergunte ao seu agente quanto espaço em disco do Xcode você pode recuperar com segurança. Sinta-se à vontade para entrar em contato comigo ou me twittar no Twitter se tiver dicas adicionais ou feedback.
Obrigado!

