Quem vê o seu código quando você usa o Claude Code?

Resposta curta: sim, o conteúdo da sessão sai da sua máquina. Para conversar com o modelo, o Claude Code envia os prompts e as saídas do modelo pela rede, criptografados em trânsito com TLS 1.2 ou superior, e isso vale até em ambiente self-hosted, onde o conteúdo segue para api.anthropic.com. A privacidade do Claude Code se decide em três camadas: o que trafega, o que fica em texto puro no disco (em ~/.claude/projects/, 30 dias por padrão) e o que a Anthropic guarda, que muda conforme o plano ser de consumidor, comercial ou com retenção zero de dados
Fala aí, beleza? A pergunta que trava todo mundo que trabalha com repositório de cliente não é se o agente escreve código bom
é se o código sai da máquina
E a resposta honesta é: sai, sim. Só que "sai" tem três camadas bem diferentes, e misturar elas é o que gera pânico ou confiança demais
Camada 1: o que vai pela rede pra o modelo responder
Camada 2: o que fica gravado no seu disco depois que você fecha o terminal
Camada 3: o que a Anthropic guarda, por quanto tempo, e se aquilo vira treino
A camada 3 é a que mais muda de acordo com o plano que você usa, e é justamente a que ninguém lê antes de apontar o agente pra um repo de terceiro
Bora destrinchar cada uma?
Os quatro canais de saída: inferência, telemetria, erros e /feedback:
O primeiro passo é parar de tratar "tráfego" como uma coisa só. São canais separados, e só alguns carregam código
1. Inferência (esse carrega o seu código)
Pra conversar com o modelo, o Claude Code envia dados pela rede, incluindo todos os prompts do usuário e as saídas do modelo, criptografados em trânsito via TLS 1.2 ou superior
Não importa se a sessão é um prompt de uma linha ou uma sessão longa usando raciocínio estendido no Claude Code: o conteúdo da conversa trafega
E aqui vai o ponto que derruba muita expectativa: mesmo em ambientes self-hosted, o conteúdo da sessão ainda vai para api.anthropic.com para a inferência do modelo
Ou seja, "self-hosted" nesse contexto não significa "o código nunca sai da rede", beleza?
Domine o Claude Code do básico ao avançado
Você vai aprender a criar sistemas completos com Claude Code, sem precisar ser programador. Inscreva-se para ter acesso a um desconto de lançamento e bônus especiais!
2. Telemetria (esse NÃO carrega código)
O Claude Code envia telemetria operacional (latência, confiabilidade, padrões de uso) para a Anthropic e para infraestrutura de logging de terceiros
Essas métricas nunca incluem seu código, seus prompts nem caminhos de arquivo
E dá pra desligar essa telemetria com a variável de ambiente DISABLE_TELEMETRY=1, só que ela vem com um efeito colateral em cima de um recurso chamado Remote Control, que eu detalho no bloco prático lá embaixo
3. Relatórios de erro (esse carrega erro do programa, não o seu repo)
Mensagens de erro e stack traces do próprio Claude Code vão para um serviço de rastreamento de erros de terceiros
Antes de qualquer coisa sair da máquina, o Claude Code redige padrões conhecidos de segredos, caminhos de arquivo, e-mails e outras informações pessoais
4. /feedback, /bug e /share (esse carrega código, e muita gente não sabe)
Ao rodar o comando /feedback, uma cópia do histórico da conversa, incluindo código, é enviada para a Anthropic
Antes de enviar, você escolhe quanto histórico incluir: só a sessão atual (que é o padrão) ou também outras sessões do mesmo projeto nas últimas 24 horas ou 7 dias
Os comandos /bug e /share seguem o mesmo caminho de envio
Tome cuidado! Aquele reflexo de mandar um /bug no meio de uma sessão de cliente é exatamente o momento em que você pode enviar 7 dias de código do projeto sem perceber
E se você roda por Bedrock, Foundry ou Google Cloud?
Esses canais não se comportam igual em todo lugar. No Amazon Bedrock, no Google Cloud Agent Platform, no Microsoft Foundry e no Claude Platform na AWS, o relatório de erros e a telemetria para a Anthropic vêm desligados por padrão
Só que parte do tráfego ainda chega à Anthropic, então não é um corte total, é um padrão diferente do que você tem rodando direto
E tem um detalhe de responsabilidade que muda o interlocutor da conversa: ao usar o Claude no Google Cloud Agent Platform, o tratamento de dados dessa oferta é regido pelo Google Cloud, não pela Anthropic
O que fica local: a pasta ~/.claude/projects e os 30 dias de transcrito:
Agora a camada que quase ninguém audita: o seu próprio disco
O Claude Code guarda os transcritos de sessão localmente, em texto puro, na pasta ~/.claude/projects/
Texto puro. Um arquivo JSONL por sessão, aberto, legível por qualquer coisa que tenha acesso à sua máquina
O prazo padrão de retenção local é de 30 dias, e esse período é ajustável pela configuração cleanupPeriodDays
Essa configuração mora no arquivo de settings: ~/.claude/settings.json pra valer em todos os projetos, ou .claude/settings.json pra valer só naquele projeto
Por que isso importa tanto? Porque a discussão sobre privacidade sempre foca no que trafega
Aí você fecha o terminal achando que acabou, e tem um mês de conversa sobre o sistema do cliente, em texto puro, no mesmo notebook que você leva pro café
Superfície de risco é isso também 🙂
Treino e retenção por tipo de conta: consumidor, comercial e ZDR:
Essa é a tabela que decide o assunto. Não existe "o Claude Code treina com meu código" no genérico: depende de qual conta está logada
| Tipo de conta | Vai para treino de modelo? | Retenção |
|---|---|---|
| Free, Pro e Max (consumidor) | Sim, quando a configuração de melhoria de modelo está ligada: a Anthropic treina novos modelos com dados das conversas e das sessões de código | 5 anos com o ajuste ligado, 30 dias com o ajuste desligado |
| Team, Enterprise, API, plataformas de terceiros e Claude Gov (termos comerciais) | Não: sob os termos comerciais a Anthropic não treina modelos generativos com código ou prompts enviados ao Claude Code, a menos que o cliente tenha optado por fornecer os dados | 30 dias por padrão |
| Retenção zero de dados, ZDR (contas qualificadas no Claude Code sob o Claude for Enterprise) | Não, mesma regra comercial | Prompts e respostas do modelo são processados em tempo real e não são armazenados pela Anthropic depois que a resposta é devolvida, exceto onde necessário para cumprir a lei ou combater abuso |
Duas leituras importantes dessa tabela
A primeira: na conta de consumidor, a diferença entre ligado e desligado não é só "treina ou não treina", é 5 anos contra 30 dias de retenção. É uma diferença ENORME de exposição
A segunda: ZDR tem um buraco explícito. Dados processados por ferramentas de terceiros, servidores MCP ou outras integrações externas não são cobertos pela retenção zero de dados
Ou seja, você pode ter ZDR ativo e mesmo assim mandar contexto do repo pra fora por um MCP que alguém plugou semana passada
As exceções que ninguém lê: flag de segurança, opt-out e modelo já treinado:
Desligar o treino resolve? Resolve bastante, mas não é um botão de apagar o passado
Ao desligar a configuração de treino, a Anthropic para de usar em treinos futuros as conversas e sessões de código novas e também as já armazenadas
Porém os dados continuam presentes em treinos já iniciados e em modelos já treinados
Então o desligar vale pra frente, não pra trás. Simples assim
A segunda exceção é a de segurança. Se uma conversa ou sessão é sinalizada pelos sistemas automáticos de confiança e segurança como violação da Política de Uso, a Anthropic retém as entradas e saídas por até 2 anos e os escores de classificação por até 7 anos
E mais: conversas sinalizadas pelos classificadores ainda podem ser usadas para melhorar modelos internos de confiança e segurança, detectar conteúdo nocivo, aplicar políticas e avançar pesquisa de segurança, mesmo com a configuração de treino desligada
O flag é exceção ao opt-out. Ponto
"E revisão humana, alguém lê minha sessão?" A revisão humana só acontece por um caminho de acesso controlado, por exemplo quando o conteúdo é sinalizado por esses sistemas automáticos
Essas revisões são feitas por um conjunto pequeno de revisores aprovados, e cada acesso fica registrado em log à prova de adulteração que o revisor não consegue suprimir nem modificar
Do lado bom da balança: conversas deletadas não são usadas para treino em nenhuma circunstância
E vale lembrar do marco que colocou essa escolha na mesa de todo mundo: a Anthropic anunciou a atualização dos Termos de Consumidor e da Política de Privacidade que passou a exigir escolha do usuário sobre o uso de dados para treino, com prazo até 8 de outubro de 2025 para decidir
Se você clicou naquilo no automático, é bem provável que nunca tenha voltado lá pra conferir o que ficou marcado 😅
Como fechar o cerco antes de apontar o agente para um repositório sensível:
Agora a parte prática. Esses são os controles que existem de verdade e onde cada um mora
- Bloqueie a leitura dos segredos com
permissions.deny
Pra impedir que o Claude Code leia arquivos sensíveis, use a chave permissions.deny no settings.json
{
"permissions": {
"deny": [
"Read(./.env)",
"Read(./.env.*)",
"Read(./secrets/**)"
]
}
}
Duas coisas que te salvam aqui. A primeira: as regras são avaliadas na ordem deny, depois ask, depois allow (então o deny ganha)
A segunda é a forma como você escreve o alvo, e repara que ela muda o resultado. O bloco acima é o conjunto de regras da documentação, com o ./ na frente do caminho
Já os nomes de arquivo simples, escritos SEM o ./, seguem semântica de gitignore e casam em qualquer profundidade, de modo que Read(.env) é equivalente a Read(**/.env)
O erro comum deste passo: tratar as duas formas como a mesma coisa. Se o que você quer é pegar um .env escondido no fundo de uma subpasta, a forma é o nome simples, sem o ./
- Decida o escopo do arquivo antes de salvar
Salvar como ~/.claude/settings.json aplica as configurações a todos os projetos
Salvar como .claude/settings.json dentro do projeto aplica só àquele projeto, e permite compartilhar com o time
O erro comum deste passo: escrever a regra bonita no arquivo do projeto de teste e nunca subir pro global, aí no repo do cliente não tem deny nenhum
- Encurte o transcrito local com
cleanupPeriodDays
{
"cleanupPeriodDays": 30
}
30 é o padrão. Baixe pro número de dias que a sua política de trabalho aceitar
O erro comum deste passo: cuidar do que trafega e esquecer do texto puro em ~/.claude/projects/, que é o material mais fácil de vazar num notebook perdido
- Corte o tráfego não essencial, sabendo do efeito colateral
Dá pra desligar a telemetria com a variável de ambiente DISABLE_TELEMETRY=1
export DISABLE_TELEMETRY=1
E dá pra desligar de uma vez todo o tráfego não essencial (incluindo pesquisas) com a variável CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC
Variáveis de ambiente do Claude Code podem ser versionadas no settings.json, o que permite aplicar a configuração globalmente ou pro time inteiro
{
"env": {
"DISABLE_TELEMETRY": "1"
}
}
O erro comum deste passo: definir essas duas variáveis e depois abrir chamado porque o Remote Control parou. Elas também desativam a avaliação de feature flags da qual o Remote Control depende. O DISABLE_ERROR_REPORTING não tem esse efeito
E tem o que sobra: o CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC não afeta a checagem do WebFetch nem a autoinstalação do marketplace oficial de plugins. Cada um tem seu opt-out próprio, skipWebFetchPreflight nas settings e CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL como variável de ambiente
- Se você está em conta de consumidor, revise o ajuste de melhoria de modelo
Usuários de consumidor (Free, Pro e Max) mudam a configuração de melhoria de modelo a qualquer momento em claude.ai/settings/data-privacy-controls
O erro comum deste passo: assumir que o padrão da sua conta é o que você imagina. Confira, é uma tela só
Três cenários: projeto pessoal, repositório de empresa e código de cliente:
Os mesmos fatos dão decisões bem diferentes dependendo de onde você está
Projeto pessoal, conta Free, Pro ou Max:
Aqui o assunto inteiro é o ajuste de melhoria de modelo
Com ele ligado, a Anthropic treina novos modelos com dados das conversas e das sessões de código, e a retenção vira 5 anos
Com ele desligado, a retenção cai pra 30 dias
Pra um projeto seu, hobby, sem NDA? É uma escolha sua e não tem drama. Só faça a escolha consciente em vez de descobrir depois
Repositório da empresa, conta comercial:
Sob os termos comerciais a Anthropic não treina modelos generativos com o seu código ou prompts, salvo opt-in do cliente
Então a conversa aqui já não é sobre treino, é sobre retenção (30 dias por padrão), sobre ZDR e sobre o que passa por MCP
É nesse cenário que costuma aparecer a ideia de apontar o agente pra achar falhas de segurança antes do deploy, o que é ótimo, desde que o repo já esteja com os deny configurados
Código de cliente sob contrato:
Esse é o cenário que exige lista de perguntas antes do primeiro run. Se liga:
- A conta que vai rodar é comercial (Team, Enterprise, API) ou é a sua conta pessoal logada por preguiça?
- ZDR está ativo? (existe para contas qualificadas no Claude Code sob o Claude for Enterprise)
- Quais servidores MCP estão plugados nessa máquina? Dados processados por ferramentas de terceiros, servidores MCP ou integrações externas não são cobertos pelo ZDR
- O provedor é Amazon Bedrock, Google Cloud Agent Platform, Microsoft Foundry ou Claude Platform na AWS? Nesses, o relatório de erros e a telemetria para a Anthropic vêm desligados por padrão, embora parte do tráfego ainda chegue à Anthropic
- Se for Google Cloud Agent Platform, todo mundo sabe que o tratamento de dados dessa oferta é regido pelo Google Cloud?
Essas cinco perguntas valem mais que qualquer configuração que você faça sozinho no seu terminal
Dá para usar o Claude Code em código sensível?
Veredito direto: dá, mas a decisão não é sobre impedir o envio
O conteúdo da sessão vai pra inferência, sempre, inclusive em self-hosted, onde o conteúdo segue pra api.anthropic.com
Quem procura uma configuração mágica que faça o agente pensar sem receber o código não vai encontrar, porque isso não existe
A decisão real está em quatro alavancas: qual plano (consumidor treina, comercial não), qual retenção (5 anos, 30 dias ou ZDR), quais permissões de leitura (permissions.deny nos segredos) e quais integrações estão plugadas (MCP fica fora do ZDR)
Pra projeto pessoal e repo de empresa com conta comercial, com deny configurado e MCP auditado, tá tranquilo hoje
Pra código de cliente sob contrato duro, a régua sobe: aí eu não trataria como decisão técnica individual, e sim como decisão contratual, com ZDR e MCP na mesa antes do primeiro run
E onde ainda não dá? Quando você não consegue responder em qual tipo de conta está logado. Se essa pergunta trava, o resto nem começa
Conclusão:
Recapitulando o que importa: o conteúdo da sessão trafega, a telemetria não leva código nem caminhos, os relatórios de erro passam por redação de segredos, e /feedback, /bug e /share levam código junto (com você escolhendo quanto histórico)
Localmente, os transcritos ficam em texto puro em ~/.claude/projects/ por 30 dias, ajustáveis por cleanupPeriodDays
E o destino final depende do plano: consumidor entra no treino quando a melhoria de modelo está ligada (com 5 anos de retenção), comercial não entra salvo opt-in (30 dias), e ZDR existe pra contas qualificadas no Enterprise, sem cobrir MCP
O próximo passo é curto e cabe hoje: abre o settings.json, coloca as regras de deny nos .env e na pasta de segredos, define o cleanupPeriodDays que a sua política aceita, e confirma em qual tipo de conta você está logado
Depois disso, pega a lista de perguntas do bloco de cenários e leva pra quem responde por compliance antes do primeiro run em repositório de terceiro
É meia hora de trabalho que evita uma conversa MUITO chata lá na frente…
até o próximo post! 😀
Perguntas frequentes
Usar o Claude Code em modo self-hosted impede que o código saia da minha rede?
Não. Mesmo em ambientes self-hosted, o conteúdo da sessão ainda vai para api.anthropic.com para a inferência do modelo. Self-hosted resolve outras questões de infraestrutura, mas não significa que o código fica preso na sua rede.
Como reduzo o prazo que os transcritos de sessão ficam salvos no meu computador?
O padrão é 30 dias, guardados em texto puro na pasta ~/.claude/projects/. Dá pra ajustar esse prazo pela configuração cleanupPeriodDays, salva no ~/.claude/settings.json (vale pra todos os projetos) ou no .claude/settings.json dentro do projeto (vale só ali).
Rodar /bug ou /share no meio de uma sessão com código de cliente é arriscado?
Pode ser, sim. Os comandos /bug e /share seguem o mesmo caminho de envio do /feedback, ou seja, também mandam uma cópia do histórico da conversa, incluindo código, pra Anthropic. Antes de enviar você escolhe o alcance (sessão atual, 24 horas ou 7 dias do projeto), então vale conferir essa escolha antes de confirmar.
Dá pra impedir o Claude Code de ler arquivos como .env ou a pasta secrets?
Dá. Usa a chave permissions.deny no settings.json com regras como Read(./.env), Read(./.env.*) e Read(./secrets/). E se o que você quer é pegar o arquivo em qualquer profundidade, escreve o nome simples, sem o ./: nomes de arquivo simples seguem semântica de gitignore, então Read(.env) é equivalente a Read(/.env).
Desligar a telemetria do Claude Code tem algum efeito colateral?
Tem. Definir DISABLE_TELEMETRY ou CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC também desativa a avaliação de feature flags da qual o Remote Control depende. Já o DISABLE_ERROR_REPORTING não tem esse efeito colateral, então dá pra desligar só o relatório de erro sem perder o Remote Control.
A privacidade muda se eu uso o Claude Code pelo Amazon Bedrock ou pelo Google Cloud Agent Platform?
Muda um pouco. No Amazon Bedrock, no Google Cloud Agent Platform, no Microsoft Foundry e no Claude Platform na AWS, o relatório de erros e a telemetria pra Anthropic vêm desligados por padrão, embora parte do tráfego ainda chegue lá. E se você usa o Google Cloud Agent Platform, o tratamento de dados dessa oferta é regido pelo Google Cloud, não pela Anthropic.
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 27min
Blog | Mais populares
As diferenças de var, let e const
Como fazer redirecionamento com PHP
Neste artigo você vai aprender a como fazer redirecionamento com PHP, utilizaremos abordagens fáceis de entender e de aplicar Fala programador(a), beleza? Bora aprender mais […]
Checklist de segurança n8n VPS pública: guia essencial para proteger sua instalação
Checklist de segurança n8n VPS pública: guia essencial para proteger sua instalação A popularidade da automação de processos com o n8n está em alta, principalmente […]
