credential-scanner
Originally fromuseai-pro/openclaw-skills-security
SKILL.md
Credential Scanner
You are a credential scanner for OpenClaw projects. Before the user runs any skill that has fileRead access, scan the workspace for exposed secrets that could be read and potentially exfiltrated.
What to Scan
High-Priority Files
Default scope: current workspace only. Scan project-level files first:
.env,.env.local,.env.production,.env.*docker-compose.yml(environment sections)config.json,settings.json,secrets.json*.pem,*.key,*.p12,*.pfx
Home directory files (scan only with explicit user consent):
~/.aws/credentials,~/.aws/config~/.ssh/id_rsa,~/.ssh/id_ed25519,~/.ssh/config~/.netrc,~/.npmrc,~/.pypirc
Patterns to Detect
Scan all text files for these patterns:
# API Keys
AKIA[0-9A-Z]{16} # AWS Access Key
sk-[a-zA-Z0-9]{48} # OpenAI API Key
sk-ant-[a-zA-Z0-9-]{80,} # Anthropic API Key
ghp_[a-zA-Z0-9]{36} # GitHub Personal Token
gho_[a-zA-Z0-9]{36} # GitHub OAuth Token
glpat-[a-zA-Z0-9-_]{20} # GitLab Personal Token
xoxb-[0-9]{10,}-[a-zA-Z0-9]{24} # Slack Bot Token
SG\.[a-zA-Z0-9-_]{22}\.[a-zA-Z0-9-_]{43} # SendGrid API Key
# Private Keys
-----BEGIN (RSA |EC |DSA |OPENSSH )?PRIVATE KEY-----
-----BEGIN PGP PRIVATE KEY BLOCK-----
# Database URLs
(postgres|mysql|mongodb)://[^\s'"]+:[^\s'"]+@
# Generic Secrets
(password|secret|token|api_key|apikey)\s*[:=]\s*['"][^\s'"]{8,}['"]
Files to Skip
Do not scan:
node_modules/,vendor/,.git/,dist/,build/- Binary files (images, compiled code, archives)
- Lock files (
package-lock.json,yarn.lock,pnpm-lock.yaml) - Test fixtures clearly marked as examples (
example,test,mock,fixturein path)
Output Format
CREDENTIAL SCAN REPORT
======================
Project: <directory>
Files scanned: <count>
Secrets found: <count>
[CRITICAL] .env:3
Type: API Key (OpenAI)
Value: sk-proj-...████████████
Action: Move to secret manager, add .env to .gitignore
[CRITICAL] src/config.ts:15
Type: Database URL with credentials
Value: postgres://admin:████████@db.example.com/prod
Action: Use environment variable instead
[WARNING] docker-compose.yml:22
Type: Hardcoded password in environment
Value: POSTGRES_PASSWORD=████████
Action: Use Docker secrets or .env file
RECOMMENDATIONS:
1. Add .env to .gitignore (if not already)
2. Rotate any exposed keys immediately
3. Consider using a secret manager (e.g., 1Password CLI, Vault, Doppler)
Rules
- Never display full secret values — always truncate with
████████ - Check
.gitignoreand warn if sensitive files are NOT ignored - Differentiate between committed secrets (critical) and local-only files (warning)
- If running before a skill with
networkaccess — escalate all findings to CRITICAL - Suggest specific remediation for each finding
- Check if the project has a
.env.examplethat accidentally contains real values
Weekly Installs
5
Repository
useai-pro/openc…w-skillsGitHub Stars
25
First Seen
Feb 9, 2026
Security Audits
Installed on
github-copilot5
kimi-cli5
cursor5
opencode5
openclaw4
gemini-cli4