@secrets é o que um revisor roda antes de um commit: varre um arquivo, uma árvore de diretórios, os arquivos em stage no git ou um texto inline atrás de credenciais vazadas. É Go puro, offline, limitado ao workspace, e nunca ecoa o valor casado por inteiro — os achados trazem os quatro primeiros caracteres, reticências e o tamanho.
Subcomandos
scan {path?, include?, max_files?, staged?}
Percorre path (padrão .) sem seguir symlinks, pulando .git, node_modules, vendor, dist, build, binários e arquivos acima de 1 MiB. include restringe por glob (ex.: **/*.env); max_files (padrão 5000) limita a varredura e o relatório avisa quando parou cedo. staged: true varre só os arquivos no índice do git (git diff --cached), a checagem de pré-commit.
check {text}
Varre texto inline — um trecho que o agente vai escrever, uma config colada.
rules
Lista os ids das regras com severidade e descrição.
Regras
Access key ids e secret keys da AWS, tokens do GitHub (ghp_, gho_, ghu_, ghs_, ghr_, github_pat_), PATs do GitLab, tokens e webhooks do Slack, chaves de API do Google, chaves live do Stripe, chaves Twilio e SendGrid, chaves de API estilo sk-, JWTs, blocos PEM de chave privada, connection strings com senha embutida (postgres, mysql, mongodb, amqp, redis, mssql, jdbc), URLs com basic-auth, atribuições genéricas password|secret|token|api_key = "...", e uma checagem de entropia de Shannon para strings longas de alta entropia atribuídas a nomes com cara de segredo.
Placeholders são suprimidos (xxx, ***, ${VAR}, <...>, {{...}}, example, changeme, your_, dummy, sample). Um arquivo .secretsignore (um glob ou id de regra por linha) e um marcador inline secrets:ignore na linha são respeitados.
Saída
no secrets found (files scanned=184, skipped=3). O relatório é limitado a 500 linhas.
Notas
- Somente leitura e seguro para concorrência — roda em paralelo com outras leituras.
- Os caminhos passam pela mesma política de caminhos sensíveis e fronteira de workspace do
@read. - Combine com o
@osvpara dependências e com@forge pr-reviewpara um checklist de revisão.