Vibecosystem secret-scanner

Pre-push API key and credential scanner - blocks git push if secrets found

install
source · Clone the upstream repo
git clone https://github.com/vibeeval/vibecosystem
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/vibeeval/vibecosystem "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/secret-scanner" ~/.claude/skills/vibeeval-vibecosystem-secret-scanner && rm -rf "$T"
manifest: skills/secret-scanner/SKILL.md
source content

Secret Scanner

Scans your codebase for leaked API keys, tokens, and credentials. Blocks git push if secrets are found.

Usage

# Scan current directory
vibeco secrets

# Scan specific path
vibeco secrets /path/to/project

Detected Secrets (22 patterns)

ProviderPatternExample
OpenAI
sk-proj-...
,
sk-...
sk-proj-abc123...
Anthropic
sk-ant-...
sk-ant-api03-...
AWS
AKIA...
AKIAIOSFODNN7EXAMPLE
GitHub
ghp_...
,
gho_...
,
github_pat_...
ghp_xxxxxxxxxxxx
Stripe
sk_live_...
,
pk_live_...
sk_live_4eC39H...
Google
AIza...
AIzaSyDaGm...
Slack
xoxb-...
,
xoxp-...
xoxb-123-456-abc
SendGrid
SG....
SG.xxx.yyy
npm
npm_...
npm_xxxxxxxxxxxxx
PyPI
pypi-...
pypi-AgEIcHl...
Database URLs
postgres://
,
mongodb://
,
mysql://
,
redis://
With embedded passwords
Private Keys
PRIVATE KEY-----
PEM format

Auto-Setup: Git Pre-Push Hook

Add to your project's

.git/hooks/pre-push
:

#!/bin/bash
vibeco secrets "$(git rev-parse --show-toplevel)" || exit 1

Make it executable:

chmod +x .git/hooks/pre-push

Now every

git push
will scan for secrets first. If any are found, push is blocked.

How It Works

  1. Walks all source files (skips node_modules, dist, .git, lock files)
  2. Matches 22 regex patterns for known API key formats
  3. Skips comments and regex definition lines (avoids false positives)
  4. If secrets found: prints masked values, exits with code 1 (blocks push)
  5. If clean: prints success, exits with code 0

What to Do If Secrets Are Found

  1. Remove the secret from source code
  2. Move to
    .env
    file (add
    .env
    to
    .gitignore
    )
  3. Use environment variables:
    process.env.API_KEY
  4. If already pushed: rotate the credential immediately (it's compromised)

Scanned File Types

.ts .tsx .js .jsx .mjs .cjs .py .go .java .rb .php .rs .swift .kt .json .yml .yaml .toml .env .cfg .conf .ini .sh .bash .zsh .xml .properties .gradle