Install
openclaw skills install ai-warden-setupInstall, configure, and manage the AI-Warden prompt injection protection plugin for OpenClaw. Publisher: AI-Warden (ai-warden.io). Source: github.com/ai-warden/openclaw-plugin. NPM: openclaw-ai-warden. Use when: (1) setting up AI-Warden on a new OpenClaw instance, (2) configuring security layers or API keys, (3) troubleshooting AI-Warden plugin issues, (4) updating the plugin, (5) checking warden status or accuracy. Triggers on phrases like "install ai-warden", "setup prompt injection protection", "configure warden", "security plugin", "protect my agent".
openclaw skills install ai-warden-setupPrompt injection protection for OpenClaw agents. 5 security shields + contamination lockdown.
Each step is a separate command. Run them one at a time and verify output before proceeding.
cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.bak && echo "BACKUP OK"
Verify: Output is BACKUP OK.
mkdir -p ~/.openclaw/extensions/ai-warden
echo '{"private":true}' > ~/.openclaw/extensions/ai-warden/package.json
Verify: No errors.
cd ~/.openclaw/extensions/ai-warden && npm install openclaw-ai-warden@2.4.0
Verify: No errors and no audit warnings. Inspect the installed package before proceeding:
ls node_modules/openclaw-ai-warden/
cat node_modules/openclaw-ai-warden/package.json | grep -E '"name"|"version"'
Confirm the package name is openclaw-ai-warden and version is 2.4.0.
Provenance check — verify the package matches the upstream source:
npm info openclaw-ai-warden repository.url
Expected: https://github.com/ai-warden/openclaw-plugin
npm info openclaw-ai-warden dist.shasum
Compare the shasum with what npm installed:
cat node_modules/openclaw-ai-warden/package.json | grep _shasum
OpenClaw loads plugins from the extension directory root, not from node_modules.
cd ~/.openclaw/extensions/ai-warden
cp node_modules/openclaw-ai-warden/index.ts .
cp node_modules/openclaw-ai-warden/openclaw.plugin.json .
cp -r node_modules/openclaw-ai-warden/src .
grep VERSION index.ts | head -1
Verify: Output shows const VERSION = followed by the version number.
This patches openclaw.json to register the plugin. It preserves all existing config (channels, model, gateway settings).
node -e "
const fs = require('fs');
const p = process.env.HOME + '/.openclaw/openclaw.json';
const cfg = JSON.parse(fs.readFileSync(p, 'utf8'));
if (!cfg.plugins) cfg.plugins = {};
cfg.plugins.enabled = true;
if (!cfg.plugins.entries) cfg.plugins.entries = {};
cfg.plugins.entries['ai-warden'] = {
enabled: true,
config: {
layers: { content: 'block', channel: 'warn', preLlm: 'off', toolArgs: 'block', subagents: 'block', output: 'off' },
sensitivity: 'balanced'
}
};
fs.writeFileSync(p, JSON.stringify(cfg, null, 2));
console.log('CONFIG OK');
"
Verify: Output is CONFIG OK.
Note: This registers the plugin via plugins.entries only. If you use plugins.allow in your config to restrict which plugins can load, you must add "ai-warden" to that list yourself. If you don't use plugins.allow, no action is needed — the plugin loads automatically from plugins.entries.
For online detection (98.9% accuracy vs ~60% offline), add your API key.
Option A — Environment variable (recommended, key not stored in config file):
Set AI_WARDEN_API_KEY in your shell profile or systemd service:
# For systemd (e.g., OpenClaw gateway service):
# Add to your service override: Environment=AI_WARDEN_API_KEY=your_key_here
# For shell:
export AI_WARDEN_API_KEY=your_key_here
Option B — Config file (simpler, key stored in openclaw.json):
node -e "
const fs = require('fs');
const p = process.env.HOME + '/.openclaw/openclaw.json';
const cfg = JSON.parse(fs.readFileSync(p, 'utf8'));
cfg.plugins.entries['ai-warden'].config.apiKey = 'YOUR_API_KEY_HERE';
fs.writeFileSync(p, JSON.stringify(cfg, null, 2));
// Restrict file permissions (config contains API key)
fs.chmodSync(p, 0o600);
console.log('API KEY ADDED (file permissions set to 600)');
"
Replace YOUR_API_KEY_HERE with your actual key from ai-warden.io/signup.
Verify: Output is API KEY ADDED (file permissions set to 600).
openclaw gateway restart
After restart, check logs or send /warden command. Expected output:
🛡️ AI-Warden v2.4.0 ready (mode: api|offline, layers: X/6)
mode: api = online detection (98.9% accuracy)mode: offline = local-only detection (~60% accuracy)If something breaks, restore config:
cp ~/.openclaw/openclaw.json.bak ~/.openclaw/openclaw.json && openclaw gateway restart
edit tool on openclaw.json — JSON whitespace matching is fragileconfig.patch with nested objects — it often fails with format errorscp step — OpenClaw loads from the extension directory, not node_modulesplugins.allow, remember to add "ai-warden" to the list — otherwise the plugin won't loadcd ~/.openclaw/extensions/ai-warden
npm install openclaw-ai-warden@2.4.0
cp node_modules/openclaw-ai-warden/index.ts .
cp -r node_modules/openclaw-ai-warden/src .
openclaw gateway restart
| Shield | Protects against | Default | Mechanism |
|---|---|---|---|
| File Shield 🔴 | Poisoned files & web pages | block | Scans tool results, injects warning, triggers contamination lockdown on CRITICAL |
| Chat Shield 🔴 | Injections in user messages | warn | Scans inbound messages, warns LLM |
| System Shield ⬛ | Full context manipulation | off | Scans all messages (expensive, use sparingly) |
| Tool Shield 🔴 | Malicious tool arguments | block | Blocks tool execution if arguments contain injection |
| Agent Shield 🔴 | Sub-agent attack chains | block | Scans task text of spawned sub-agents |
When File Shield detects a CRITICAL threat (score >500), the session is flagged as contaminated. All dangerous tools (exec, write, edit, message, sessions_send, sessions_spawn, tts) are blocked for the rest of the session. This prevents attack payloads from executing even if the injection bypasses the LLM warning.
/warden → status overview with all shields
/warden stats → scan/block counts
/warden shield file block → set File Shield to block mode
/warden shield chat warn → set Chat Shield to warn mode
/warden reset → reset statistics
| Mode | Accuracy | Latency | Cost |
|---|---|---|---|
| Offline (no key) | ~60% | <1ms | Free |
| API (Smart Cascade) | 98.9% | ~3ms avg | Free tier: 5K calls/month |
Get API key: ai-warden.io/signup
openclaw.plugin.json missing from extension dir. Re-run Step 3.plugins.allow, ensure all your channel plugins (e.g. telegram) are also listed there alongside ai-warden.warn (default) instead of block.cp ~/.openclaw/openclaw.json.bak ~/.openclaw/openclaw.jsonjournalctl -u openclaw-gateway -n 20 for actual error..openclaw/workspace/ and .openclaw/agents/ paths.