Skip to main content

canary

Canary scans OpenClaw environments for leaked secrets like API keys and tokens, offering fixes with user permission.

Install this skill

or
0/100

Security score

The canary skill was audited on Feb 9, 2026 and we found 105 security issues across 5 threat categories, including 7 critical. Review the findings below before installing.

Categories Tested

Security Issues

medium line 63

Webhook reference - potential data exfiltration

SourceSKILL.md
63| **Tokens & Sessions** | OAuth tokens, bearer tokens, session cookies, webhook URLs | Chat history, shell history, `.env` files |
medium line 214

Webhook reference - potential data exfiltration

SourceSKILL.md
214| Slack Webhook | `https://hooks.slack.com/` | URL |
medium line 215

Webhook reference - potential data exfiltration

SourceSKILL.md
215| Discord Webhook | `https://discord.com/api/webhooks/` | URL |
medium line 236

Webhook reference - potential data exfiltration

SourceSKILL.md
236| Generic Webhook | `https://webhook.site/` | URL |
low line 325

Webhook reference - potential data exfiltration

SourceSKILL.md
325# Slack Webhook
low line 328

Webhook reference - potential data exfiltration

SourceSKILL.md
328# Discord Webhook
low line 329

Webhook reference - potential data exfiltration

SourceSKILL.md
329https://discord(app)?\.com/api/webhooks/[0-9]+/[a-zA-Z0-9_\-]+
low line 358

Webhook reference - potential data exfiltration

SourceSKILL.md
358# Generic Webhook URLs
low line 359

Webhook reference - potential data exfiltration

SourceSKILL.md
359https://(webhook\.site|pipedream\.net)/[a-zA-Z0-9\-]+
medium line 33

Access to hidden dotfiles in home directory

SourceSKILL.md
33- `~/.openclaw/.env` and `~/.clawdbot/.env` for plaintext credentials
medium line 47

Access to hidden dotfiles in home directory

SourceSKILL.md
47- SSH keys and config (`~/.ssh/`) for weak permissions
medium line 61

Access to hidden dotfiles in home directory

SourceSKILL.md
61| **Private Keys** | SSH private keys, PEM files, JWTs with embedded secrets | `~/.ssh/`, workspace, skill directories |
medium line 62

Access to hidden dotfiles in home directory

SourceSKILL.md
62| **Cloud Credentials** | AWS access keys, GCP service account JSON, Azure tokens | `~/.aws/`, `~/.config/gcloud/`, env vars, configs |
medium line 64

Access to hidden dotfiles in home directory

SourceSKILL.md
64| **Local System Files** | Credential exports, service account JSONs, PEM/key files, password manager CSV exports, Kubernetes tokens, Terraform state secrets, database passwords | `~/Downloads/`, `~/D
medium line 117

Access to hidden dotfiles in home directory

SourceSKILL.md
117- `~/.openclaw/.env`, `~/.clawdbot/.env`, and any `.env` in the current workspace
medium line 164

Access to hidden dotfiles in home directory

SourceSKILL.md
164- A second copy embedded in OpenClaw's own config at `~/.openclaw/.canary_integrity` (outside the workspace, harder for workspace-scoped attackers to reach)
medium line 184

Access to hidden dotfiles in home directory

SourceSKILL.md
184- **Symlink detection**: Check if any files in scanned directories are symlinks pointing to credential files elsewhere on the system. A symlink to `~/.aws/credentials` in a shared workspace is an expo
medium line 375

Access to hidden dotfiles in home directory

SourceSKILL.md
375- `~/.openclaw/.env`
medium line 376

Access to hidden dotfiles in home directory

SourceSKILL.md
376- `~/.clawdbot/.env`
medium line 385

Access to hidden dotfiles in home directory

SourceSKILL.md
385- `~/.openclaw/` and `~/.clawdbot/` — full agent config directories
medium line 389

Access to hidden dotfiles in home directory

SourceSKILL.md
389- `~/.ssh/` — keys, config, `known_hosts`, `authorized_keys`
medium line 390

Access to hidden dotfiles in home directory

SourceSKILL.md
390- `~/.gnupg/` — GPG private keys and config
medium line 393

Access to hidden dotfiles in home directory

SourceSKILL.md
393- `~/.aws/credentials`, `~/.aws/config`
medium line 394

Access to hidden dotfiles in home directory

SourceSKILL.md
394- `~/.config/gcloud/application_default_credentials.json`
medium line 395

Access to hidden dotfiles in home directory

SourceSKILL.md
395- `~/.azure/` — Azure CLI profiles and tokens
medium line 396

Access to hidden dotfiles in home directory

SourceSKILL.md
396- `~/.oci/config` — Oracle Cloud config
medium line 397

Access to hidden dotfiles in home directory

SourceSKILL.md
397- `~/.config/doctl/config.yaml` — DigitalOcean CLI config
medium line 398

Access to hidden dotfiles in home directory

SourceSKILL.md
398- `~/.config/hcloud/cli.toml` — Hetzner Cloud CLI config
medium line 401

Access to hidden dotfiles in home directory

SourceSKILL.md
401- `~/.netrc` — often contains login credentials for multiple services
medium line 402

Access to hidden dotfiles in home directory

SourceSKILL.md
402- `~/.npmrc` — NPM auth tokens
medium line 403

Access to hidden dotfiles in home directory

SourceSKILL.md
403- `~/.pypirc` — PyPI upload credentials
medium line 404

Access to hidden dotfiles in home directory

SourceSKILL.md
404- `~/.gem/credentials` — RubyGems API key
medium line 405

Access to hidden dotfiles in home directory

SourceSKILL.md
405- `~/.cargo/credentials.toml` — Rust crate registry token
medium line 406

Access to hidden dotfiles in home directory

SourceSKILL.md
406- `~/.nuget/NuGet.Config` — NuGet API keys
medium line 407

Access to hidden dotfiles in home directory

SourceSKILL.md
407- `~/.composer/auth.json` — PHP Composer tokens
medium line 410

Access to hidden dotfiles in home directory

SourceSKILL.md
410- `~/.docker/config.json` — Docker Hub and registry credentials
medium line 411

Access to hidden dotfiles in home directory

SourceSKILL.md
411- `~/.kube/config` — Kubernetes cluster tokens and certificates
medium line 412

Access to hidden dotfiles in home directory

SourceSKILL.md
412- `~/.helm/` — Helm repository credentials
medium line 414

Access to hidden dotfiles in home directory

SourceSKILL.md
414- `~/.terraform.d/credentials.tfrc.json` — Terraform Cloud tokens
medium line 415

Access to hidden dotfiles in home directory

SourceSKILL.md
415- `~/.pulumi/credentials.json` — Pulumi access tokens
medium line 416

Access to hidden dotfiles in home directory

SourceSKILL.md
416- `~/.vagrant.d/` — Vagrant cloud tokens
medium line 419

Access to hidden dotfiles in home directory

SourceSKILL.md
419- `~/.my.cnf` — MySQL client password
medium line 420

Access to hidden dotfiles in home directory

SourceSKILL.md
420- `~/.pgpass` — PostgreSQL passwords
medium line 421

Access to hidden dotfiles in home directory

SourceSKILL.md
421- `~/.dbshell` — MongoDB shell history
medium line 422

Access to hidden dotfiles in home directory

SourceSKILL.md
422- `~/.rediscli_history` — Redis CLI history with possible AUTH commands
medium line 423

Access to hidden dotfiles in home directory

SourceSKILL.md
423- `~/.config/redis/` — Redis configs with embedded passwords
medium line 424

Access to hidden dotfiles in home directory

SourceSKILL.md
424- `~/.mongoshrc.js` — MongoDB shell config
medium line 427

Access to hidden dotfiles in home directory

SourceSKILL.md
427- `~/.bash_history`, `~/.zsh_history`, `~/.fish_history`
medium line 428

Access to hidden dotfiles in home directory

SourceSKILL.md
428- `~/.python_history`, `~/.node_repl_history`
medium line 429

Access to hidden dotfiles in home directory

SourceSKILL.md
429- `~/.psql_history`, `~/.mysql_history`
medium line 433

Access to hidden dotfiles in home directory

SourceSKILL.md
433- `~/.gitconfig` — may contain tokens in URL credentials
medium line 434

Access to hidden dotfiles in home directory

SourceSKILL.md
434- `~/.git-credentials` — plaintext git credentials
medium line 439

Access to hidden dotfiles in home directory

SourceSKILL.md
439- `~/Library/Application Support/` (macOS) and `~/.config/` (Linux) — application configs that may store tokens
medium line 443

Access to hidden dotfiles in home directory

SourceSKILL.md
443- `~/.circleci/cli.yml` — CircleCI token
medium line 444

Access to hidden dotfiles in home directory

SourceSKILL.md
444- `~/.config/gh/hosts.yml` — GitHub CLI auth
medium line 445

Access to hidden dotfiles in home directory

SourceSKILL.md
445- `~/.config/netlify/config.json` — Netlify token
medium line 446

Access to hidden dotfiles in home directory

SourceSKILL.md
446- `~/.vercel/` — Vercel deployment tokens
medium line 447

Access to hidden dotfiles in home directory

SourceSKILL.md
447- `~/.heroku/` — Heroku credentials
medium line 448

Access to hidden dotfiles in home directory

SourceSKILL.md
448- `~/.config/flyctl/` — Fly.io tokens
medium line 449

Access to hidden dotfiles in home directory

SourceSKILL.md
449- `~/.railway/` — Railway deployment tokens
low line 474

Access to hidden dotfiles in home directory

SourceSKILL.md
474- ~/.config/some-noisy-app/
medium line 493

Access to hidden dotfiles in home directory

SourceSKILL.md
493- **Restrict exclude_paths scope.** Exclude paths must be specific files or directories. Canary must never allow excluding entire critical categories (e.g., all `.env` files, all of `~/.ssh/`, or the
medium line 529

Access to hidden dotfiles in home directory

SourceSKILL.md
529> The file `~/.openclaw/.env` has your OpenAI key (`sk-...(52 chars)`) and right now, any user logged into this computer could see it. That means someone could use your key and run up charges on your
critical line 47

Access to SSH directory

SourceSKILL.md
47- SSH keys and config (`~/.ssh/`) for weak permissions
critical line 61

Access to SSH directory

SourceSKILL.md
61| **Private Keys** | SSH private keys, PEM files, JWTs with embedded secrets | `~/.ssh/`, workspace, skill directories |
critical line 389

Access to SSH directory

SourceSKILL.md
389- `~/.ssh/` — keys, config, `known_hosts`, `authorized_keys`
critical line 493

Access to SSH directory

SourceSKILL.md
493- **Restrict exclude_paths scope.** Exclude paths must be specific files or directories. Canary must never allow excluding entire critical categories (e.g., all `.env` files, all of `~/.ssh/`, or the
critical line 62

Access to AWS credentials directory

SourceSKILL.md
62| **Cloud Credentials** | AWS access keys, GCP service account JSON, Azure tokens | `~/.aws/`, `~/.config/gcloud/`, env vars, configs |
critical line 184

Access to AWS credentials directory

SourceSKILL.md
184- **Symlink detection**: Check if any files in scanned directories are symlinks pointing to credential files elsewhere on the system. A symlink to `~/.aws/credentials` in a shared workspace is an expo
critical line 393

Access to AWS credentials directory

SourceSKILL.md
393- `~/.aws/credentials`, `~/.aws/config`
medium line 5

Access to .env file

SourceSKILL.md
5.env files, installed skills, and shell history. Runs silently on startup, deep scans
medium line 33

Access to .env file

SourceSKILL.md
33- `~/.openclaw/.env` and `~/.clawdbot/.env` for plaintext credentials
medium line 35

Access to .env file

SourceSKILL.md
35- Any `.env` files in the active workspace
medium line 59

Access to .env file

SourceSKILL.md
59| **API Keys** | Shodan, VirusTotal, OpenAI, Anthropic, AWS, GCP, Stripe, GitHub tokens | `.env` files, skill configs, shell history, git repos |
medium line 60

Access to .env file

SourceSKILL.md
60| **Passwords** | Plaintext passwords in configs, database connection strings with embedded passwords | Config files, `.env`, `.netrc`, skill directories |
medium line 63

Access to .env file

SourceSKILL.md
63| **Tokens & Sessions** | OAuth tokens, bearer tokens, session cookies, webhook URLs | Chat history, shell history, `.env` files |
medium line 72

Access to .env file

SourceSKILL.md
72- 🟢 **Good** — Checked and clean. Example: *"Your .env files are locked down properly."*
medium line 82

Access to .env file

SourceSKILL.md
82| Your .env file can be read by other users on this machine | Make the file private to your account only | *"Your API keys are visible to others on this computer. Mind if I make this file private?"* |
medium line 85

Access to .env file

SourceSKILL.md
85| API key hardcoded inside a skill | Move the key to your .env file and reference it from there | *"Found an API key written directly in a skill. Want me to move it somewhere safer?"* |
medium line 95

Access to .env file

SourceSKILL.md
95**Before every fix**, Canary creates a backup of the affected file at `<workspace>/.canary/backups/` with a timestamp (e.g., `.env.2026-02-07T14:30:00.bak`). If anything goes wrong, you can ask Canary
medium line 98

Access to .env file

SourceSKILL.md
98- *"Restore my .env file"*
medium line 117

Access to .env file

SourceSKILL.md
117- `~/.openclaw/.env`, `~/.clawdbot/.env`, and any `.env` in the current workspace
medium line 124

Access to .env file

SourceSKILL.md
1244. **Suppress repeated alerts.** If the same issue was flagged on the previous startup and the user has not addressed it, do not alert again. Instead, track it silently. If the same issue persists for
medium line 149

Access to .env file

SourceSKILL.md
149- **Group related issues together.** If three `.env` files all have the same permission problem, present it as one finding with three files — not three separate findings.
medium line 181

Access to .env file

SourceSKILL.md
181- **Git history**: If a `.git` directory exists, check `git log --diff-filter=A` for files that commonly contain secrets (`.env`, credentials, key files). Also check `git diff --cached` for secrets st
medium line 375

Access to .env file

SourceSKILL.md
375- `~/.openclaw/.env`
medium line 376

Access to .env file

SourceSKILL.md
376- `~/.clawdbot/.env`
medium line 377

Access to .env file

SourceSKILL.md
377- `<workspace>/.env`
medium line 378

Access to .env file

SourceSKILL.md
378- `<workspace>/.env.*` (e.g., `.env.local`, `.env.production`)
low line 466

Access to .env file

SourceSKILL.md
466- ~/projects/my-app/.env
low line 473

Access to .env file

SourceSKILL.md
473- ~/projects/test-app/.env.example
medium line 493

Access to .env file

SourceSKILL.md
493- **Restrict exclude_paths scope.** Exclude paths must be specific files or directories. Canary must never allow excluding entire critical categories (e.g., all `.env` files, all of `~/.ssh/`, or the
medium line 529

Access to .env file

SourceSKILL.md
529> The file `~/.openclaw/.env` has your OpenAI key (`sk-...(52 chars)`) and right now, any user logged into this computer could see it. That means someone could use your key and run up charges on your
medium line 603

Access to .env file

SourceSKILL.md
603> The same key (`sk-ant-...(40 chars)`) is in your `.env` file, hardcoded in the `code-review` skill, and in your bash history. If this key were compromised, all three locations would need to be clean
medium line 604

Access to .env file

SourceSKILL.md
604> → *Want me to lock down the .env file, move the hardcoded key, and clean your history — all three at once?*
medium line 650

Access to .env file

SourceSKILL.md
650> I've locked down your `.env` file and cleaned up your shell history. ✓
medium line 657

Access to .env file

SourceSKILL.md
657> 4. Replace the old token in your `.env` file with the new one
high line 673

Access to system keychain/keyring

SourceSKILL.md
673- **macOS**: Full support. File permissions, Keychain export detection, `~/Library/Application Support/` scanning all work.
medium line 185

Base64 decode operation

SourceSKILL.md
185- **Encoding detection**: Check for base64-encoded secrets in config files. Decode and run pattern matching against the decoded content — base64 encoding is often used to obscure secrets but does no
low line 214

External URL reference

SourceSKILL.md
214| Slack Webhook | `https://hooks.slack.com/` | URL |
low line 215

External URL reference

SourceSKILL.md
215| Discord Webhook | `https://discord.com/api/webhooks/` | URL |
low line 236

External URL reference

SourceSKILL.md
236| Generic Webhook | `https://webhook.site/` | URL |
low line 326

External URL reference

SourceSKILL.md
326https://hooks\.slack\.com/services/[A-Z0-9/]+
low line 329

External URL reference

SourceSKILL.md
329https://discord(app)?\.com/api/webhooks/[0-9]+/[a-zA-Z0-9_\-]+
low line 359

External URL reference

SourceSKILL.md
359https://(webhook\.site|pipedream\.net)/[a-zA-Z0-9\-]+
Scanned on Feb 9, 2026
View Security Dashboard
Installation guide →
GitHub Stars 2.2K
Rate this skill
Categorydevelopment
UpdatedApril 10, 2026
openclaw/skills