Install
openclaw skills install agent-spm-setup-skillInstalls and configures the Agentic SPM plugin for OpenClaw using a secp256k1 keypair to authenticate with the Guardian AI API and Chromia blockchain.
openclaw skills install agent-spm-setup-skillBefore you install, make sure you have:
node --version to check)The plugin uses a secp256k1 keypair to authenticate your client with the Guardian AI API. You'll generate this in Step 1.
Skip this step if you already have a keypair saved at
~/.config/ai-guardian/guard-client-key.
Your keypair is a private/public key pair used to sign requests to the Chromia blockchain. Think of the private key as your password — keep it secret.
Run this command in your terminal — it generates the keypair and saves it to the right place automatically:
node -e "
const crypto = require('crypto');
const fs = require('fs');
const os = require('os');
const path = require('path');
const privkey = crypto.randomBytes(32).toString('hex');
const ec = crypto.createECDH('secp256k1');
ec.setPrivateKey(privkey, 'hex');
const pubkey = ec.getPublicKey('hex', 'compressed');
const content = [
'#Keypair generated using secp256k1',
'#' + new Date().toString(),
'privkey=' + privkey,
'pubkey=' + pubkey,
].join('\n') + '\n';
const dir = path.join(os.homedir(), '.config', 'ai-guardian');
fs.mkdirSync(dir, { recursive: true });
fs.writeFileSync(path.join(dir, 'guard-client-key'), content, { mode: 0o600 });
process.stdout.write('pubkey=' + pubkey + '\n');
"
Important: The private key is written to
~/.config/ai-guardian/guard-client-keyand is never printed.
Run the following command to install the Agentic SPM via the OpenClaw CLI:
openclaw plugins install @chrguard/ai-guardian-plugin
This command downloads the plugin from npm and places it in ~/.openclaw/extensions/ai-guardian-plugin. The openclaw.json file will be partially updated automatically, but you still need to configure it manually as described in Step 3.
Open your openclaw.json file — typically located at ~/.openclaw/openclaw.json. Apply each of the following sub-steps:
Make sure the top-level plugins block is enabled:
"plugins": {
"enabled": true,
...
}
Note: This unlocks the entire plugin system inside the gateway.
In plugins.allow, add "ai-guardian-plugin" to the array:
"allow": [
"...",
"ai-guardian-plugin"
]
Security: This explicitly permits the Guardian plugin to run.
Find the installPath from where you installed it, and add it to plugins.load.paths:
"load": {
"paths": [
"...",
"/Users/<your-username>/.openclaw/extensions/ai-guardian-plugin"
]
}
Important: The path must match your system exactly — replace
<your-username>with your actual macOS username.
Under plugins.entries, add the full Guardian configuration block:
"entries": {
"ai-guardian-plugin": {
"enabled": true,
"config": {
"enabled": true,
"enforceDecision": true,
"chromiaBrid": "5D007915E9DE53AA29784820E8F41CE65A4436703E23B8AF49B83C7FB4FDB048",
"chromiaNodes": [
"https://node6.testnet.chromia.com:7740",
"https://node7.testnet.chromia.com:7740",
"https://node8.testnet.chromia.com:7740"
],
"chromiaJudgeOperation": "judge_action",
"chromiaStatusQuery": "get_judgment_status",
"chromiaFtAuth": false,
"chromiaTxAwait": true,
"timeoutMs": 15000,
"chromiaTxTimeoutMs": 25000,
"chromiaQueryTimeoutMs": 8000,
"chromiaPollTimeoutMs": 30000,
"chromiaPollIntervalMs": 1000,
"chromiaSecretPath": "~/.config/ai-guardian/guard-client-key"
}
}
}
Note:
chromiaSecretPathuses~to expand to your home directory, pointing to the keypair generated in Step 1.
Once all changes are saved, restart the OpenClaw gateway to load the new plugin configuration:
openclaw gateway restart
Success: You should see a terminal confirmation that the gateway has restarted and the plugin is active.
After completing all steps, your setup should reflect the following:
| Field | Expected Value |
|---|---|
plugins.enabled | true |
plugins.allow | includes "ai-guardian-plugin" |
plugins.load.paths | includes the installPath |
plugins.entries | contains ai-guardian-plugin |
chromiaSecretPath | ~/.config/ai-guardian/guard-client-key |
enforceDecision | true (blockchain actively blocks) |