Binário compilado para Linux 64-bit.
Baixar LinuxConfira o pacote.
Antes de instalar.
Antes de instalar um pacote, o safe-npm analisa o código, consulta informações do npm Registry e verifica as dependências. Tudo isso sem executar o pacote.
$ safe-npm tree suspicious-package Root: suspicious-package@1.4.2 Packages: 47 Files: 1,284 Risk: HIGH • suspicious-package@1.4.2 score=10/100 (MEDIUM) • tiny-helper@0.2.1 score=65/100 (HIGH) ! [CRITICAL] credential-access - package/index.js ! [HIGH] process-execution - package/index.js Installation blocked before package execution.
Baixe o safe-npm pronto para usar.
Os links abaixo sempre apontam para a release estável mais recente publicada no GitHub.
Executável para Windows 64-bit em arquivo ZIP.
Baixar WindowsBinário universal para Intel e Apple Silicon.
Baixar macOSTambém é possível consultar notas, histórico e assets diretamente na última release no GitHub.
Analise antes de rodar npm install.
Resolve
Consulta o npm Registry para identificar a versão correta do pacote e suas dependências.
Baixa
Baixa os pacotes que precisam ser analisados sem executar scripts de instalação.
Analisa
Verifica package.json, arquivos JavaScript e TypeScript em busca de comportamentos suspeitos.
Decide
Mostra o nível de risco encontrado e pode impedir a instalação quando o risco for alto.
Contexto local primeiro. IA quando você quiser.
O score não cresce mais só porque a mesma regra apareceu centenas de vezes no pacote.
O scanner guarda um pequeno trecho ao redor do comportamento encontrado para ajudar na revisão.
Com --ai, findings MEDIUM, HIGH e CRITICAL
podem ser revisados considerando o contexto do código.
Sem --ai, nenhum trecho de código é enviado
para a OpenAI. A análise local continua sendo o padrão.
$ export OPENAI_API_KEY="sua-chave" $ safe-npm --ai tree express $ safe-npm --ai --ai-model gpt-5.6-luna scan lodash
lodash analisado com contexto por IA.
1.049 arquivos analisados no AI package test.
Risco final MEDIUM, com 5 findings preservados.
IA: uncertain, confiança 0,96. O trecho com String.fromCharCode não foi suficiente para confirmar um payload malicioso.
IA: uncertain, confiança 0,99. A evidência era um link para o threat model, não uma requisição de rede.
Outros 3 findings de obfuscation-density ficaram como
not_analyzed por não terem evidência contextual. O
safe-npm os manteve no relatório em vez de pedir para a IA
inferir sem contexto.
O que o safe-npm verifica.
preinstall, install, postinstall e prepare.
child_process, exec, spawn, shells e comandos.
.npmrc, .ssh, tokens npm/GitHub e secrets AWS.
eval, new Function e padrões de execução dinâmica.
APIs e indicadores de conexões externas.
Base64, escapes hex/unicode e densidade anormal de código.
Nomes muito próximos de pacotes npm populares.
Depreciação, mantenedores ausentes e histórico muito curto.
Cruza sinais como acesso a credenciais, chamadas de rede e execução de comandos.
Permite definir regras por projeto e gerar relatórios SARIF para uso no CI.
Confira uma dependência
antes de colocar no projeto.
$ cargo install --git https://github.com/mdnbras/safe-npm $ safe-npm tree express $ safe-npm install express
O scanner ajuda, mas não substitui uma revisão de segurança.
O safe-npm combina análise estática, heurísticas contextuais e, opcionalmente, validação por IA. Um alerta indica algo que vale a pena revisar, mas não significa automaticamente que o pacote contém malware. Da mesma forma, um resultado sem alertas não garante que o pacote seja seguro. Use a ferramenta junto com npm audit, provenance, assinaturas e revisão de código.