credential-scanner — скилл для Claude Code: поиск утечек секретов
Сканирует проект на открытые ключи и пароли до того, как скилл с доступом к файлам их прочитает.
npx skills add UseAI-pro/openclaw-skills-security --skill credential-scanner -a claude-codeЧто делает credential-scanner
Скилл проверяет рабочую папку на exposed-секреты перед запуском любого скилла с доступом fileRead. Сначала идут файлы проекта: .env и его варианты, docker-compose.yml, config.json, secrets.json, а также *.pem, *.key, *.p12, *.pfx. Домашний каталог — ~/.aws/credentials, ~/.ssh/id_rsa, ~/.netrc, ~/.npmrc — сканируется только с явного согласия пользователя.
Поиск идёт по регуляркам: ключи AWS, OpenAI, Anthropic, GitHub, GitLab, Slack, SendGrid, приватные ключи, строки подключения к базам с логином и паролем, общие шаблоны вида password=, api_key:. Из выдачи исключаются node_modules/, vendor/, .git/, dist/, build/, бинарники, lock-файлы и тестовые фикстуры с example, test, mock или fixture в пути.
В отчёте значения маскируются через ████████, полные секреты не печатаются. Скилл отдельно проверяет .gitignore и предупреждает, если чувствительные файлы туда не добавлены, различает закоммиченные секреты и локальные файлы, а перед запуском скилла с доступом к сети поднимает все находки до CRITICAL. Если в проекте есть .env.example с настоящими значениями, это тоже попадёт в отчёт.
Какие задачи решает
- проверить рабочую папку на открытые ключи до запуска чужого скилла
- найти пароль от базы прямо в
docker-compose.yml - убедиться, что
.envне уехал в git - отличить закоммиченный секрет от локального файла
- получить отчёт с маскированными значениями, а не сырыми ключами в логе
Примеры запросов агенту
- просканируй проект на секреты перед запуском нового скилла
- проверь
.envиdocker-compose.ymlна открытые ключи - сделай credential scan рабочей папки и покажи, что поправить
Как установить credential-scanner
1Через Skills CLI (Vercel)
npx skills add UseAI-pro/openclaw-skills-security --skill credential-scanner -a claude-code2Вручную: положить файлы
~/.claude/skills/credential-scanner/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/credential-scanner/
1Через Skills CLI (Vercel)
npx skills add UseAI-pro/openclaw-skills-security --skill credential-scanner -a codex2Вручную: положить файлы
.agents/skills/credential-scanner/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add UseAI-pro/openclaw-skills-security --skill credential-scanner -a cursor2Вручную: положить файлы
.cursor/skills/credential-scanner/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install UseAI-pro/openclaw-skills-security credential-scanner2Вручную: положить файлы
.github/skills/credential-scanner/SKILL.md1Через Skills CLI (Vercel)
npx skills add UseAI-pro/openclaw-skills-security --skill credential-scanner -a gemini-cli2Командой платформы
gemini skills install https://github.com/UseAI-pro/openclaw-skills-security --path skills/credential-scannerВручную: положить файлы
.devin/skills/credential-scanner/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add UseAI-pro/openclaw-skills-security --skill credential-scanner -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о credential-scanner
Как установить credential-scanner в Claude?
Выполните npx skills add UseAI-pro/openclaw-skills-security --skill credential-scanner -a claude-code. Скилл появится в ~/.claude/skills/credential-scanner/SKILL.md.
Что делает credential-scanner?
Сканирует проект на API-ключи, токены, приватные ключи и пароли в конфигах, а затем выдаёт отчёт с замаскированными значениями и списком действий по каждому пункту.
Какие файлы он не трогает?
Пропускает node_modules/, vendor/, .git/, dist/, build/, бинарники, lock-файлы и фикстуры с example, test, mock или fixture в пути. Домашний каталог сканируется только с вашего согласия.
Исходный текст
SKILL.md · MIT
---
name: credential-scanner
description: Scan your project for exposed credentials, API keys, and secrets before running OpenClaw skills. Prevents accidental
exfiltration.
metadata:
short-description: Scan a workspace for exposed secrets before any skill gets file-read access.
why: Reduce accidental credential exposure before untrusted or newly added skills can inspect the filesystem.
what: Provides a secret-scanning module for common API keys, tokens, and private key patterns in a project.
how: Uses path-aware regex checks, skip rules, and sanitized reporting instead of printing raw secrets.
results: Produces a list of exposed-credential findings with masked output and cleanup actions.
version: 1.0.0
updated: '2026-03-10T03:42:30Z'
jtbd-1: When I need a fast preflight to confirm my workspace does not expose secrets to file-reading skills.
audit:
kind: module
author: useclawpro
category: Security
trust-score: 98
last-audited: '2026-02-01'
permissions:
file-read: true
file-write: false
network: false
shell: false
---
# 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`, `fixture` in 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
1. Never display full secret values — always truncate with `████████`
2. Check `.gitignore` and warn if sensitive files are NOT ignored
3. Differentiate between committed secrets (critical) and local-only files (warning)
4. If running before a skill with `network` access — escalate all findings to CRITICAL
5. Suggest specific remediation for each finding
6. Check if the project has a `.env.example` that accidentally contains real values
© UseAI-pro · MIT · UseAI-pro/openclaw-skills-security