Catalog npm
Back to packageRELEASE DETAILS

1.0.1

npm

16-eyes

AI-driven security audits — full-repo or diff/PR-scoped — for Claude Code, Gemini CLI, Cursor, and GitHub Copilot. Profiles the repo, designs tailored investigation lenses, runs them, verifies every finding, adversarially reviews high-impact ones. Install

ai-agentclaudeclaude-codecursorgemini-cligithub-copilotsecurity-auditsecurity-reviewskillstatic-analysisvulnerability-scanagent-skillclaude-code-pluginclaude-skillcode-reviewgithub-action
All keywords (17)
sast
Published16 Jul 2026
Direct dependencies0
Transitive dependenciesNot calculated

README

Current package documentation

16 Eyes

16 Eyes

Auditorias de segurança orientadas por IA para Claude Code, Gemini CLI, Cursor e GitHub Copilot — repositório inteiro ou escopado a diff/PR.

Claude Code Gemini CLI Cursor GitHub Copilot

Como o 16 Eyes funciona

Dezesseis olhos independentes olham cada achado antes dele chegar no seu relatório: a lente que o encontrou, um verificador cético que relê o código de verdade, e — pros achados de impacto alto — vários revisores adversariais tentando ativamente derrubar o achado. Nada entra no relatório só na palavra de um agente.

Demo do 16 Eyes

Vídeo em qualidade completa no YouTube

Read in English · Lee en español

Por que isso existe

Ferramentas escopadas a diff (o /security-review nativo do Claude Code, a maioria dos scanners ligados no CI) fazem uma única passada sobre o que mudou e só enxergam o PR/branch atual. O /16-eyes audit-diff também é escopado a diff, mas roda as lentes sob medida do repo, verifica cada achado ceticamente e faz revisão adversarial dos de impacto alto — um pipeline mais pesado e cético que um revisor de passada única, e uma boa opção pra plugar no CI. O /16-eyes audit vai além: varre o repositório inteiro, independente do que mudou recentemente — uma vulnerabilidade parada no código há meses é invisível pra qualquer ferramenta escopada a diff, audit-diff incluído. É um sweep profundo, deliberado e ocasional, não algo pra rodar a cada commit.

Diferente de uma checklist fixa, o 16 Eyes perfila seu repo primeiro (stack, domínios, arquitetura) e só então desenha o próprio plano de investigação — um serviço pequeno ganha um punhado de lentes sob medida, um backend grande e multi-domínio ganha bem mais — e em ambos os casos as lentes são sobre o que realmente existe no seu código, não uma lista genérica.

Instalação

Claude Code, como plugin — o caminho mais rápido, sem precisar de npm/Node:

/plugin marketplace add kigiela/16-eyes
/plugin install 16-eyes@16-eyes

Qualquer uma das quatro ferramentas, via npm:

npx 16-eyes install

Instala o skill do Claude Code globalmente em ~/.claude/skills/user/16-eyes. Use --project pra instalar no .claude/skills/16-eyes do repositório atual em vez disso. Uma sessão nova do Claude Code é necessária depois — skills são descobertos no início da sessão, não no meio dela.

npx 16-eyes update       # recopia a versão mais recente
npx 16-eyes uninstall    # remove o que foi instalado (nunca toca no .16-eyes/ próprio de um repo)
npx 16-eyes status       # mostra o que está instalado, e onde, em cada ferramenta

Pra Gemini CLI, Cursor ou GitHub Copilot (em vez de, ou além do Claude Code), passe --target:

npx 16-eyes install --target gemini    # → .gemini/commands + .gemini/agents
npx 16-eyes install --target cursor    # → .cursor/skills + .cursor/agents
npx 16-eyes install --target copilot   # → .github/agents + .github/prompts
npx 16-eyes install --target all       # todas as ferramentas de uma vez

Esses são sempre relativos ao projeto (dê git add e commit neles) — nenhuma dessas ferramentas tem o conceito de skill global do Claude Code. Veja Outras ferramentas abaixo pra saber o que muda nelas.

Uso

Dentro do Claude Code, em qualquer repositório:

/16-eyes init         configura — detecta gates/exclusões/saída, desenha as lentes
/16-eyes audit        roda todas as lentes no repositório inteiro
/16-eyes audit-diff   o mesmo motor, escopado a um diff/PR
/16-eyes fix          aplica os achados — os safe direto, os risky com sua confirmação

init desenha e persiste as lentes de investigação do repo — audit e audit-diff reaproveitam em vez de redesenhar do zero a cada execução. Se pular, qualquer um dos dois faz o bootstrap automático (sem perguntas, seguro em CI); rode explicitamente antes se quiser customizar padrões de exclusão, local de saída, profundidade, idioma, ou qual model as chamadas de subagente do pipeline usam, antes disso acontecer. audit é somente leitura e pode levar alguns minutos (dezenas de chamadas de subagente) — esperado pra um sweep do repositório inteiro; audit-diff é bem mais barato por ser escopado a um diff. fix nunca commita nem dá push; sempre deixa as mudanças na working tree pra você revisar.

Como funciona

  1. Perfil e desenho de lentes (/16-eyes init, uma vez) — um agente explora a estrutura do repo e identifica a stack, o domínio, e os subsistemas específicos que importam pra segurança (pagamentos, webhooks, auth, upload de arquivo, uso de LLM, o que realmente se aplicar); um segundo agente, dado esse perfil, desenha uma lista de lentes de investigação sob medida — pulando categorias que não se aplicam, adicionando as específicas do repo que se aplicam. Persistido em .16-eyes/lenses.json.
  2. Lentes → verificação (audit/audit-diff, a cada execução) — cada lente persistida investiga de forma independente (no repo inteiro, ou escopada a um diff); todo achado que ela levanta passa por uma reverificação cética independente contra o código de verdade (não só a descrição do próprio achado).
  3. Revisão adversarial — achados classificados como impacto alto passam por uma segunda rodada independente: vários revisores tentam, cada um, derrubar o achado. Só sobrevive se a maioria não conseguir refutar.
  4. Relatório — os achados que sobrevivem são classificados safe (correção mecânica, sem mudança de comportamento) ou risky (precisa de decisão humana), escritos tanto como relatório markdown (SECURITY_AUDIT_<data>.md ou SECURITY_AUDIT_DIFF_<data>.md) quanto um companheiro legível por máquina (.json, consumido pelo /16-eyes fix).

Veja a Wiki pra um mergulho técnico mais profundo: os guards exatos de verificação/revisão adversarial, como as categorias de lentes mapeiam pro OWASP Top 10:2025, o tradeoff entre auditoria full-repo vs. diff, e ressalvas honestas.

Outras ferramentas

Gemini CLI, Cursor e GitHub Copilot têm cada um seu próprio adaptador enxuto em integrations/ (instalado via --target, veja acima), todos compartilhando o mesmo .16-eyes/config.json / .16-eyes/lenses.json / relatórios que o Claude Code — rode init uma vez com qualquer uma das ferramentas e todas as outras instaladas reaproveitam. A sintaxe de invocação muda conforme a convenção de cada ferramenta:

initauditaudit-difffix
Claude Code/16-eyes init/16-eyes audit/16-eyes audit-diff/16-eyes fix
Gemini CLI/16-eyes:init/16-eyes:audit/16-eyes:audit-diff/16-eyes:fix
Cursor16-eyes-init16-eyes-audit16-eyes-audit-diff16-eyes-fix
GitHub Copilot@16-eyes-init@16-eyes-audit@16-eyes-audit-diff@16-eyes-fix
Ressalva honesta sobre os adaptadores fora do Claude Code

A ferramenta Workflow do Claude Code roda um pipeline escrito-por-agente com chamadas validadas por JSON-schema — as etapas de fan-out, verificação e revisão adversarial são impostas de fato, não só sugeridas. No momento desta escrita, Gemini CLI, Cursor e Copilot têm subagentes paralelos, mas nenhum tem essa capacidade de impor schema — os adaptadores deles pedem pra cada agente delegado retornar um bloco JSON e fazem o parsing, com as mesmas travas de corrupção/refutação escritas como instruções explícitas em vez de código imposto. É a mesma metodologia, com garantias um pouco mais fracas que a versão Claude Code. O coding agent assíncrono do GitHub Copilot especificamente não tem equivalente a slash-command nenhum — ele depende do AGENTS.md (também instalado por --target copilot) pra ter um mínimo de contexto, em vez de um comando dedicado.

CI

/16-eyes audit-diff foi feito pra rodar em toda PR. Configuração mais simples, como uma GitHub Action publicada:

- uses: kigiela/16-eyes@v1
  with:
    anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}

Veja docs/ci.md pro panorama completo (só comentário por padrão, bloqueio de merge opcional, e a alternativa com o workflow bruto se quiser ver cada passo explicitamente).

Licença

MIT — ver LICENSE. Também: Política de Privacidade · Termos de Serviço · Disclosures de segurança e transparência.

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 0

Native requirements
0 direct targetsNot calculated transitive count
No declared dependencies in this collected response

Declarations describe requirements; they are not a resolved dependency graph.

Distribution files

1 collected
Distribution 1

Source distribution

Source file
Checksums from source
{
  "shasum": "6601cb5f52532f4d317f627b6239ecb44a86f3fd",
  "tarball": "https://registry.npmjs.org/16-eyes/-/16-eyes-1.0.1.tgz",
  "fileCount": 48,
  "integrity": "sha512-Hby4JmWPo/a/jAApMBwbfUvpkrWI/pQb4IBN2o8feAd3LF8q76M61+HwlJ4+DHoAeXNOjBRiF75uoepBaqO/Uw==",
  "signatures": [
    {
      "sig": "MEQCIFiY3He2wsBerALAAeFV24Ohbz/NIMLdQjZx7esfZBDfAiB1jOm7/8Bn4FEZfyO8kmor9mX0KStZNuGF0CWqcZaMxw==",
      "keyid": "SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"
    }
  ],
  "attestations": {
    "url": "https://registry.npmjs.org/-/npm/v1/attestations/16-eyes@1.0.1",
    "provenance": {
      "predicateType": "https://slsa.dev/provenance/v1"
    }
  },
  "unpackedSize": 222312
}

Repository

PENDING
kigiela/16-eyes

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 18:15 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:bfde9ada580b396a66eeab8b60561d927a48c1db2eba4c7ef03e6b38f2e413d5

Other collected versions

1.2.219 Sept1.2.118 Sept1.2.029 Jul1.1.116 Jul1.1.016 Jul1.0.016 JulView all collected versions →