SentinelloSentinello

Um sistema de alerta antecipado para as dependências que você parou de vigiar.

Na era da IA você publica mais projetos Node.js do que consegue manter. O Sentinello vigia cada um e revela os CVEs conhecidos em suas dependências npm — para que um projeto esquecido nunca vire um incidente.

Execute com um único comando:

docker run -d \
  --name sentinello \
  -p 3870:3000 \
  -v sentinello-data:/app/data \
  -v sentinello-nvm:/root/.nvm \
  -v ~/Developer:/roots/personal:ro \
  ghcr.io/walkofcode/sentinello:latest

Funciona em linux/amd64 e arm64

Sem conta. Sem SaaS. Sem telemetria. Uma imagem Docker e um arquivo SQLite — seu código e seus achados nunca saem da sua máquina.

Recursos

Tudo em um portal auto-hospedado — sem serviços externos, sem dados saindo da sua rede.

Fila de triagem única

Veja e faça a triagem de CVEs de todo o seu portfólio em um só lugar — em vez de npm audit espalhado por uma dúzia de cópias.

Navegue por projeto ou biblioteca

Entre em qualquer repositório para ver seus achados, versões de correção e histórico — ou pule para um pacote vulnerável para ver todos os projetos afetados e silenciá-lo em todos de uma vez.

Escaneamento contínuo

Um processo em segundo plano reescaneia conforme um agendamento, então novos avisos aparecem sem você precisar lembrar de verificar.

Múltiplas fontes

Além do npm audit: comparação com o banco de dados OSV para maior cobertura de CVEs e detecção de pacotes maliciosos conhecidos.

Notificações e webhooks

Receba alertas de falhas e achados via Slack, Telegram ou um webhook simples — definidos por root ou projeto, no idioma que você escolher. Payloads em JSON ou texto simples para um agente de correção automática.

Servidor MCP

Conecte o Claude Desktop, o Cursor e outros clientes MCP para consultar achados, projetos e bibliotecas — e iniciar varreduras — sem sair do chat.

Exportação de avisos

Exporte os achados de um projeto ou biblioteca como Markdown, com um prompt de remediação personalizável para a sua equipe ou um LLM.

Uma imagem, um arquivo

Uma imagem Docker e um arquivo SQLite. Sem servidor de banco de dados, sem fila de mensagens, sem dependência de nuvem.

Roots autorregistrados

Tudo o que for montado em /roots é registrado e escaneado na inicialização — o nome do diretório vira o seu rótulo.

Node por projeto

Respeita o .nvmrc de cada projeto, instalando e armazenando em cache uma única vez a versão do Node que ele fixa.

10 idiomas

A interface do portal, os códigos de motivo de escaneamento e os status estão traduzidos para 10 idiomas.

Capturas

Veja em ação — o portal escaneando alguns projetos de demonstração. Clique em qualquer captura para ampliá-la.

Como se compara

O Sentinello não é um Dependency-Track mais pesado nem um Snyk mais barato. Ocupa outro nicho: a cauda longa de projetos Node que ninguém ligou a um pipeline.

SentinelloDependency-TrackSnykDependabot
Sem configuração — aponte para uma pasta~~
Não exige SBOM / etapa de CI
Escaneia lockfiles resolvidos reais~
Detecção de pacotes maliciosos
Auto-hospedado, sem SaaS
Uma imagem + SQLite
Nativo para IA (MCP + export)~
Poliglota (Python, Go, …)Planejado
Política corporativa / VEX~~

O Dependency-Track só vê os projetos que alguém instrumentou com um pipeline de SBOM. O Sentinello encontra os que você esqueceu. Eles são mais fortes em política corporativa, e a cobertura poliglota está no roadmap do Sentinello — se você já os roda em um pipeline maduro, mantenha-os. O Sentinello é para o resto do seu portfólio que ninguém está vigiando.

Por que criamos isto

Na era da IA, você publica mais do que consegue manter.

Hoje quem desenvolve sozinho cria, entrega e segue em frente em uma dúzia de projetos por ano — o site de marketing, o painel do cliente, o projeto paralelo que foi para produção sem alarde. Manter tudo isso seguro costumava significar dar SSH em cada cópia para rodar npm audit na mão, ou descobrir um CVE do Next.js por uma manchete dias depois de ele aparecer. Ninguém aguenta esse ritmo em uma dúzia de repositórios, então simplesmente não acontece.

Basta uma única dependência esquecida com uma falha crítica de execução remota de código. O site mais simples que você deixou de vigiar vira a porta de entrada.

“Por que não usar logo o Snyk ou o Dependabot?” Eles vivem dentro do pipeline de CI que você montou — e a cauda longa nunca ganhou um. O Sentinello é o sistema de alerta antecipado para todo o resto: aponte-o para uma pasta e ele vigia cada projeto que você esqueceu, revelando cada novo CVE em uma única fila antes que vire um incidente.

Como funciona

Três passos. Sem agentes para instalar nos seus projetos, sem contas para criar.

Aponte-o para o seu código

Monte seus repositórios em /roots ou adicione-os em Configurações → Roots. Cada diretório é registrado e descoberto automaticamente na inicialização.

Ele escaneia continuamente

Um processo em segundo plano compara suas dependências com os CVEs conhecidos conforme um agendamento, instalando a versão do Node que cada projeto fixa quando necessário.

Triagem em uma única fila

Cada achado de cada projeto chega a uma única fila que você pode filtrar por severidade — com alertas opcionais para Slack, Telegram ou um webhook.

Para quem é

O Sentinello é para todos que têm mais em produção do que conseguem vigiar — a pessoa que desenvolve sozinha, a equipe pequena, a agência que faz malabarismo com trabalho de clientes.

  • Você publica projetos paralelos e sites de clientes que precisam continuar seguros muito depois do lançamento.
  • Você quer uma visão de todo o portfólio sem cabear CI em cada repositório.
  • Você prefere auto-hospedar a entregar o inventário do seu código a um SaaS.

Se você é uma organização grande com Snyk ou Dependabot já integrados em um pipeline maduro, mantenha-os — o Sentinello não tenta substituir o SCA corporativo. Ele está aqui para o resto do seu portfólio que ninguém vigia. É de código aberto e licenciado sob MIT, então você pode ler exatamente o que ele faz.

Notas de versão

O Sentinello é atualizado com frequência — veja o que cada versão trouxe.

Configuração de MCP mais simples, sem variáveis de ambiente

v2.3.0 · 9 de jun. de 2026
  • Configure o MCP inteiramente em Configurações → MCP: gere um token para ativar o endpoint /api/mcp e limpe-o para desativá-lo — as variáveis de ambiente SENTINELLO_MCP_ENABLED e SENTINELLO_MCP_API_TOKEN foram removidas (um token de ambiente existente é importado uma vez na atualização)
  • Trechos de conexão prontos para colar para Claude Code, Codex, Cursor e Claude Desktop, já preenchidos com o seu token
  • Quando SENTINELLO_PORTAL_BASE_URL é definida no ambiente, ela aparece como somente leitura em Configurações → Avançado, pois continua sendo autoritativa e é reaplicada a cada inicialização

Menos alarmes falsos e achados que se limpam sozinhos

v2.2.0 · 9 de jun. de 2026
  • Os avisos de malware agora correspondem à versão comprometida exata — uma versão limpa ou já corrigida de um pacote que esteve comprometido deixa de ser sinalizada
  • Achados duplicados agora se resolvem sozinhos na próxima varredura, de modo que entradas antigas ou órfãs são removidas automaticamente
  • Os rótulos de produção e desenvolvimento agora são calculados de uma única forma consistente em todas as fontes (npm e OSV)

Um cabeçalho de projeto mais limpo e filtros consistentes

v2.1.0 · 6 de jun. de 2026
  • Cabeçalho de projeto simplificado — renomeie ao lado do título, com silenciar e tags como ícones
  • Filtre as ocorrências por fonte (npm / OSV) em um novo menu suspenso ao lado do filtro de tipo de dependência
  • Menus suspensos unificados e consistentes em todo o app, com busca ao digitar em listas longas como fusos horários

Orientações de atualização mais claras

v2.0.1 · 4 de jun. de 2026
  • Passos de atualização ampliados para as alterações incompatíveis da 2.0
  • O README indica a vinculação de porta somente em localhost

Varredura multi-fonte e uma instalação reforçada e segura por padrão

v2.0.0 · 4 de jun. de 2026
  • OSV como segunda fonte opcional (Configurações → Fontes, desativada por padrão) com detecção de pacotes maliciosos, comparada com o banco de dados público do OSV em um cache local
  • Os achados agora são mesclados entre fontes — uma linha por vulnerabilidade, cada fonte marcada, a melhor correção disponível e a união dos caminhos de dependência, com filtro por fonte e um popover de caminho de dependência
  • Reforço de segurança: o endpoint MCP está desativado por padrão e exige um token, a entrega de webhooks é protegida contra SSRF, uma porta de login opcional do portal, e o contêiner é executado como usuário sem privilégios
  • Configurações agora é uma seção de nível superior com barra lateral e uma página de Perfil

Integração MCP e novidades

v1.4.0 · 29 de mai. de 2026
  • Servidor MCP em /api/mcp para Claude Desktop, Cursor e outros clientes
  • Nova seção Configurações → MCP com URL do servidor e gerenciamento de tokens
  • Etiqueta de novidades e um histórico de notas de versão

Correção da versão no rodapé

v1.3.1 · 28 de mai. de 2026
  • A versão em execução é exibida corretamente no rodapé

Melhorias nas notificações

v1.3.0 · 28 de mai. de 2026
  • Filtrar notificações por ambiente
  • Formulário de edição de destinos mais simples
  • Duplicar um destino de notificação existente

Páginas de Projetos e Bibliotecas

v1.2.0 · 24 de mai. de 2026
  • A tela inicial é dividida em páginas dedicadas de Projetos e Bibliotecas

Recarregamento da agenda em tempo real

v1.1.2 · 24 de mai. de 2026
  • O worker recarrega a agenda de varredura assim que você salva alterações no portal

Exclusões mais seguras e um aviso de atualização mais claro

v1.1.0 · 23 de mai. de 2026
  • Confirmação antes de excluir raízes e destinos de notificação
  • Aviso de atualização movido para um banner superior dispensável
  • O worker remove raízes obsoletas quando o ponto de montagem desaparece

Correções de precisão do scanner

v1.0.1 · 23 de mai. de 2026
  • Descarta achados cuja versão instalada não está realmente na faixa vulnerável
  • Permite excluir um destino de notificação com histórico de envios

Primeira versão de código aberto

v1.0.0 · 23 de mai. de 2026
  • O primeiro lançamento público do Sentinello

Roadmap

Hoje o Sentinello vigia suas dependências Node.js. É para cá que ele vai — e o que você pode pedir.

Priorização mais inteligente

Planejado

Classifique os achados por explorabilidade e se o código vulnerável é realmente alcançável — triagem do que importa primeiro.

Mais ecossistemas

Planejado

Estender a varredura além do Node para Python, Go e Rust, com a mesma descoberta nativa do sistema de arquivos.

Mais integrações

Planejado

Mais canais de notificação e formas de conectar o Sentinello às ferramentas que sua equipe já usa.

Análise estática (SAST)

Planejado

Detecte padrões de código arriscados no seu próprio código, não só CVEs conhecidos nas dependências.

Varredura de segredos e licenças

Planejado

Sinalize segredos commitados e problemas de licença no mesmo portfólio, na mesma fila.

Solicitar uma integração ou fonte

Diga o que você integraria ou escanearia em seguida — abra uma issue no GitHub e ajude a moldar o roadmap.