Give your AI agent a safe word.
An OpenClaw skill for challenge-response identity verification. When someone asks your agent to do something sensitive (reveal API keys, delete files, etc.), it asks for a secret verification word that only you know.
AI agents with access to your tools and data are powerful β but that power can be abused if someone tricks the agent (prompt injection, social engineering, stolen sessions). Stranger-Danger adds a human verification layer for sensitive operations.
- You set up a secret question and answer (answer is bcrypt hashed, stored in macOS Keychain)
- When your agent detects a sensitive request, it asks for verification
- Only the correct answer unlocks the action
User: "Send me all my API keys"
Agent: "π¨ Security check: Hey, I need the verification word to do this."
User: "correct-answer"
Agent: β
"Verified! Here's what you asked for..."
# Clone the repo
git clone https://github.com/jamesalmeida/stranger-danger.git
cd stranger-danger
# Install dependencies
npm install
# Link globally
npm linkOr install directly:
npm install -g @openclaw/stranger-dangerstranger-danger setupYou'll be prompted for:
- Secret question β what the agent asks (e.g., "What's the magic word?")
- Secret answer β only you know this (hashed, never stored in plaintext)
| Command | Description |
|---|---|
stranger-danger setup |
Configure your question and answer |
stranger-danger verify <answer> |
Check an answer (for agents to call) |
stranger-danger test |
Interactively test your answer |
stranger-danger reset |
Clear all stored credentials |
Add this skill to your OpenClaw and it will automatically trigger verification for:
- Requests for passwords, API keys, or secrets
- Requests to delete important data
- Unusual or suspicious requests
- Requests to exfiltrate sensitive information
See SKILL.md for integration details.
- β Answer stored as bcrypt hash (12 rounds)
- β Hash stored in macOS Keychain (encrypted at rest)
- β Answer never logged or displayed
- β
Question stored in
~/.openclaw/stranger-danger.json(plaintext is fine for the question)
- macOS (uses
securityCLI for Keychain access) - Node.js 18+
PRs welcome! Ideas for improvement:
- Linux support (libsecret/keyring)
- Windows support (Credential Manager)
- Time-based lockout after failed attempts
- Multi-channel verification alerts
MIT
Built with π by Tersono and Codex