Executando verificação de segurança...
24

Código-fonte completo do Claude Code é exposto após tropeço da Anthropic

O código-fonte completo do Claude Code foi exposto após um pesquisador de segurança identificar um arquivo de source map publicado inadvertidamente no NPM. O vazamento ocorreu porque a Anthropic incluiu, sem perceber, um arquivo do tipo “.map” dentro do pacote distribuído.

Esse tipo de arquivo é normalmente utilizado durante o desenvolvimento para mapear código compilado ou minificado de volta ao código original, facilitando processos de depuração. No entanto, na prática, um source map pode conter praticamente todo o código-fonte original em formato legível.

Com isso, qualquer pessoa que baixasse o pacote no npm conseguia acessar o arquivo e reconstruir integralmente a base do projeto. O conteúdo acabou sendo publicado no repositório instructkr/claude-code no GitHub, reunindo cerca de 1.900 arquivos em TypeScript e mais de 512.000 linhas de código.

A publicação foi atualizada para corrigir a URL do repositório GitHub.

Carregando publicação patrocinada...
14

Meus 2 cents,

Para quem quiser replicar o processo de extracao que eles fizeram do zero (sem risco de pegar algum repositorio envenenado - que estao surgindo aos montes), tem este passo-a-passo:

  1. Baixar o codigo pacote original do ClaudeCode
mkdir claude-code-extract && cd claude-code-extract
npm pack @anthropic-ai/claude-code@2.1.88
tar -xzf anthropic-ai-claude-code-2.1.88.tgz
cd package

EDIT: o arquivo foi apagado, fiz o upload dele aqui

anthropic-ai-claude-code-2.1.88.tgz

  1. Criar o programa que extrai (p.ex. unpack.mjs)
import { readFileSync, writeFileSync, mkdirSync } from "fs";
import { dirname, join } from "path";

const mapFile = join(import.meta.dirname, "cli.js.map");
const outDir = join(import.meta.dirname, "unpacked");

console.log("Reading source map...");
const map = JSON.parse(readFileSync(mapFile, "utf-8"));

const sources = map.sources || [];
const contents = map.sourcesContent || [];

console.log(`Found ${sources.length} source files.`);

let written = 0;
let skipped = 0;

for (let i = 0; i < sources.length; i++) {
  const src = sources[i];
  const content = contents[i];

  if (content == null) {
    skipped++;
    continue;
  }

  const outPath = join(outDir, src.replace(/^\.\.\//g, ""));
  mkdirSync(dirname(outPath), { recursive: true });
  writeFileSync(outPath, content);
  written++;
}

console.log(`Done! Wrote ${written} files to ${outDir}`);
if (skipped > 0) console.log(`Skipped ${skipped} files with no content.`);
  1. Extrair
node unpack.mjs

ls unpacked

Saude e Sucesso !

1

O pacote do npm não está mais disponível :(

npm error code ETARGET
npm error notarget No matching version found for @anthropic-ai/claude-code@2.1.88.
npm error notarget In most cases you or one of your dependencies are requesting a package version that doesn't exist.
npm error A complete log of this run can be found in: /home/nyksund/.npm/_logs/2026-03-31T19_45_00_658Z-debug-0.log
1
1
3
0
0
7

Meus 2 cents,

Repositorio (chatgptprojects/claude-code) devidamente starreado e forkeado.

Dei uma olhada rapida, algumas coisas que achei interessantes:

  • Apenas 30Mb de codigo fonte (que da para baixar para uns 18Mb sem minificar mas tirando redundancias).

  • Codigo ate que simples de um modo geral - nao vi nada que chamasse a atencao tipo "uau, que ideia fora da caixa" ou "putz, que otimizacao bem planejada". Arroz com feijao, com tempero honesto e fazendo o que se propoe

    • NOTA: foi so uma passada de olho, entao pode ter algo mais elaborado em algum canto.
  • Tudo bem que sao propostas diferentes, mas me lembrei do OpenClaw que da uma sensacao meio que "balaio de gatos".

Enfim, algo que remete ao KISS:

  • faca funcionar

  • faca bem feito

  • se nao precisa, nao inventa moda

EDIT: Ja estao se espalhando analises sobre o codigo:

https://github.com/openedclaude/claude-reviews-claude

Saude e Sucesso !

5

Para quem estiver curioso e quiser explorar sem ter acesso ao código, o site ccunpacked.dev tem uma análise com gráficos e outras interações, mas vale levar em consideração que pode conter erros, visto que você não estará avaliando a fonte original, e sim uma interpretação dela. Achei o site no Hacker News.

1,900+ Files
519K+ Lines of Code
53+ Tools
95+ Commands

Algumas prints do site:

Agent loop

Architecture explorer

Tool system

1
1
1