Skip to content
Back to skills

Secret Scanner

ASecurity

Scans files, repos, and directories for leaked secrets — API keys, tokens, passwords, connection strings, private keys, and credentials. Detects 40+ secret patterns across all major cloud providers and services.

  • 57 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 17, 2026
databasespythongojavaphpshellbashsqlnodedockeraws

Works with

  • cli
  • api

Security analysis

A100/100

Scanned October 17, 2026

npx -y skills add diegosouzapw/awesome-omni-skill --skill secret-scanner --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Secret Scanner?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Secret Scanner
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/diegosouzapw-secret-scanner/badge)](https://www.skillsdirectory.com/skills/diegosouzapw-secret-scanner)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: secret-scanner
description: Scans files, repos, and directories for leaked secrets — API keys, tokens, passwords, connection strings, private keys, and credentials. Detects 40+ secret patterns across all major cloud providers and services.
version: 0.1.0
---

# Secret Scanner

Security skill that scans code, config files, and repos for accidentally leaked secrets and credentials.

## When to Use This Skill

Use this skill when the user:

- Asks to "check for leaked secrets" or "scan for API keys"
- Wants to audit a repo or folder before committing or publishing
- Says "are there any hardcoded passwords in this code?"
- Asks to "find credentials" or "check for exposed tokens"
- Wants pre-commit or pre-publish security checks
- Mentions concern about accidentally checking in secrets

## Capabilities

- Detect **40+ secret patterns** including:
  - AWS Access Keys, Secret Keys, Session Tokens
  - Azure Storage Keys, Connection Strings, SAS Tokens
  - GCP Service Account Keys, API Keys
  - GitHub / GitLab / Bitbucket Personal Access Tokens
  - OpenAI, Anthropic, Hugging Face API Keys
  - Slack Bot Tokens, Webhooks
  - Stripe, Twilio, SendGrid Keys
  - Database connection strings (MongoDB, PostgreSQL, MySQL, Redis)
  - SSH Private Keys, PEM/PFX Certificates
  - JWT Tokens, Bearer Tokens
  - Generic passwords in config files (password=, secret=, token=)
- Scan individual files, directories, or entire repos recursively
- Ignore binary files, node_modules, .git, and other non-relevant paths
- Output results as Markdown report or JSON
- Provide severity ratings (Critical, High, Medium, Low)
- Suggest remediation for each finding

## How to Scan

### Scan a directory
```bash
python secret_scanner.py /path/to/project
```

### Scan with JSON output
```bash
python secret_scanner.py /path/to/project --json
```

### Scan and save report
```bash
python secret_scanner.py /path/to/project --output report.md
```

### Within an Agent
```
"Scan this project for leaked secrets"
"Check if there are any API keys in the codebase"
"Run secret-scanner on the current directory"
"Find hardcoded passwords in my config files"
"Audit this repo before I push to GitHub"
```

## Secret Patterns Detected

### Cloud Provider Keys
| Provider | Secrets Detected |
|----------|-----------------|
| **AWS** | Access Key ID (`AKIA...`), Secret Access Key, Session Token |
| **Azure** | Storage Account Key, Connection String, SAS Token, Client Secret |
| **GCP** | API Key (`AIza...`), Service Account JSON, OAuth Client Secret |

### AI / LLM Keys
| Service | Pattern |
|---------|---------|
| **OpenAI** | `sk-` prefixed API keys |
| **Anthropic** | `sk-ant-` prefixed keys |
| **Hugging Face** | `hf_` prefixed tokens |
| **Cohere** | API keys in config |

### Developer Platforms
| Platform | Secrets Detected |
|----------|-----------------|
| **GitHub** | `ghp_`, `gho_`, `ghu_`, `ghs_`, `ghr_` tokens |
| **GitLab** | `glpat-` tokens |
| **Slack** | `xoxb-`, `xoxp-`, `xoxs-` tokens, webhook URLs |
| **Stripe** | `sk_live_`, `sk_test_`, `rk_live_` keys |
| **Twilio** | Account SID, Auth Token |
| **SendGrid** | `SG.` prefixed API keys |

### Databases & Infrastructure
| Type | Pattern |
|------|---------|
| **MongoDB** | `mongodb://` or `mongodb+srv://` with credentials |
| **PostgreSQL** | `postgresql://` with embedded password |
| **MySQL** | `mysql://` with embedded password |
| **Redis** | `redis://` with password |
| **SSH** | `-----BEGIN (RSA\|EC\|OPENSSH) PRIVATE KEY-----` |
| **Certificates** | PEM, PFX, P12 with embedded keys |

### Generic Patterns
| Pattern | Description |
|---------|-------------|
| **password=** | Hardcoded passwords in config/env files |
| **secret=** | Hardcoded secrets |
| **token=** | Hardcoded tokens |
| **Bearer** | Bearer tokens in code |
| **Basic Auth** | Base64-encoded basic auth headers |
| **JWT** | `eyJ` prefixed JWT tokens |
| **High Entropy** | Long random strings that look like secrets |

## Severity Levels

| Severity | Description | Examples |
|----------|-------------|----------|
| 🔴 **Critical** | Active production credentials | AWS Secret Key, Private Keys, DB passwords |
| 🟠 **High** | Service tokens with broad access | GitHub PAT, Slack Bot Token, Stripe Live Key |
| 🟡 **Medium** | Keys that may be test/dev | Test API keys, example tokens |
| 🟢 **Low** | Potential false positives | Generic password= in comments, placeholder values |

## Files Scanned

Scans these file types by default:
- Source code: `.py`, `.js`, `.ts`, `.java`, `.go`, `.rb`, `.php`, `.cs`, `.rs`
- Config: `.json`, `.yaml`, `.yml`, `.toml`, `.ini`, `.cfg`, `.conf`
- Environment: `.env`, `.env.local`, `.env.production`
- Shell: `.sh`, `.bash`, `.zsh`, `.ps1`
- Docs: `.md`, `.txt`
- Other: `Dockerfile`, `docker-compose.yml`, `Makefile`

## Ignored Paths

Automatically skips:
- `node_modules/`, `vendor/`, `venv/`, `.venv/`
- `.git/`, `.svn/`
- `__pycache__/`, `.pytest_cache/`
- Binary files, images, compiled outputs
- `package-lock.json`, `yarn.lock`

## Remediation Guidance

When secrets are found, the skill recommends:
1. **Rotate the secret immediately** — assume it's compromised
2. **Remove from code** — use environment variables or a secrets manager instead
3. **Add to .gitignore** — prevent `.env` and credential files from being committed
4. **Use git-filter-repo** — to remove secrets from git history
5. **Enable pre-commit hooks** — to catch secrets before they're committed

## Requirements
- Python 3.7+
- No additional dependencies (uses Python standard library)

## Entry Point
- **CLI:** `secret_scanner.py`

## Tags
#security #secrets #credentials #api-keys #tokens #passwords #scanner #audit #pre-commit #leak-detection #cloud #aws #azure #gcp #devops

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.