OpenClaw with ArmorIQ
Plugin Setup

ArmorIQ Plugin Setup

Enable and configure the ArmorIQ plugin for intent verification

ArmorIQ Plugin Setup

Enable the ArmorIQ plugin and configure policy-based intent verification for your OpenClaw agent.

What ArmorIQ Does

The ArmorIQ plugin provides:

  • Intent Token Verification: Cryptographic proof that each tool call was planned
  • Policy Enforcement: Allow/block tools based on configurable policies
  • Step-by-Step Verification: Each action verified before execution
  • Audit Trail: Complete logging of all verified actions
  • Natural Language Policy Management: Create/update policies via chat

Plugin Setup Steps

Verify Plugin Files

Check that the ArmorIQ plugin exists in your installation:

ls -la extensions/armoriq/

Expected files:

extensions/armoriq/
├── index.ts                 # Plugin entry point
├── src/
│   └── iap-verfication.service.ts  # IAP service
├── openclaw.plugin.json     # Plugin metadata
└── package.json            # Dependencies

Check Plugin Metadata

View the plugin configuration schema:

cat extensions/armoriq/openclaw.plugin.json
{
  "name": "armoriq",
  "version": "2026.2.2",
  "description": "ArmorIQ intent verification plugin",
  "main": "index.ts",
  "hooks": [
    "before_tool_call",
    "after_tool_call",
    "on_plan_created"
  ]
}

Enable Plugin in Config

Ensure the ArmorIQ plugin is enabled in ~/.openclaw/openclaw.json:

{
  "plugins": {
    "enabled": true,
    "entries": {
      "armoriq": {
        "enabled": true
      }
    }
  }
}

Both plugins.enabled and plugins.entries.armoriq.enabled must be true.

Configure ArmorIQ Settings

Add the full ArmorIQ configuration:

{
  "plugins": {
    "enabled": true,
    "entries": {
      "armoriq": {
        "enabled": true,
        "policyUpdateEnabled": true,
        "policyUpdateAllowList": [
          "YOUR_TELEGRAM_USER_ID",
          "@your_telegram_username",
          "your_telegram_username",
          "telegram:YOUR_TELEGRAM_USER_ID"
        ],
        "apiKey": "ak_live_...",
        "userId": "test-user-001",
        "agentId": "openclaw-agent-001",
        "contextId": "default",
        "endpoints": {
          "iap": "https://customer-iap.armoriq.ai",
          "backend": "https://customer-api.armoriq.ai"
        }
      }
    }
  }
}

Configure Policy Allowlist

The policyUpdateAllowList controls who can manage policies via chat.

Add your Telegram user ID and username:

{
  "policyUpdateAllowList": [
    "YOUR_USER_ID",            // Numeric user ID (e.g., 6193457473)
    "@your_username",          // Username with @
    "your_username",           // Username without @
    "telegram:YOUR_USER_ID",   // Prefixed format
    "agent:main:main",         // Agent access
    "main"                     // Default context
  ]
}

How to find your Telegram User ID:

  1. Message @userinfobot
  2. Send /start
  3. Copy the numeric ID from the response

Verify Endpoints

The ArmorIQ plugin connects to two production services:

EndpointURLPurpose
IAPhttps://customer-iap.armoriq.aiIssues intent tokens with cryptographic proofs and verifies tool calls
Backendhttps://customer-api.armoriq.aiManages policies, API keys, and audit logs

Verification happens directly in the plugin using the IAP service. No proxy is required.

Do not change these URLs unless you're using a custom ArmorIQ deployment.


Configuration Reference

Full Plugin Config

{
  "plugins": {
    "enabled": true,
    "entries": {
      "armoriq": {
        "enabled": true,
        "policyUpdateEnabled": true,
        "policyUpdateAllowList": ["user-id", "@username"],
        "apiKey": "ak_live_...",
        "userId": "unique-user-id",
        "agentId": "unique-agent-id",
        "contextId": "default",
        "endpoints": {
          "iap": "https://customer-iap.armoriq.ai",
          "backend": "https://customer-api.armoriq.ai"
        }
      }
    }
  }
}

Config Field Reference

FieldTypeRequiredDescription
enabledbooleanYesEnable/disable the plugin
policyUpdateEnabledbooleanYesAllow policy management via chat
policyUpdateAllowListstring[]YesUsers allowed to manage policies
apiKeystringYesArmorIQ API key (ak_live_...)
userIdstringYesUnique identifier for this user context
agentIdstringYesUnique identifier for this agent
contextIdstringNoContext scope (default: "default")
endpoints.iapstringYesIAP service URL (issues tokens & verifies steps)
endpoints.backendstringYesBackend API URL (policies & audit)

Policy Management

Policy Commands

Once configured, you can manage policies via Telegram:

CommandDescription
Policy listShow all active policies
Policy get policy1Get details of a policy
Policy new: block write_file for payment dataCreate a new policy
Policy update policy1: allow write_fileUpdate a policy
Policy delete policy1Delete a policy
Policy resetReset all policies to default
Policy prioritize policy1 2Move policy to position 2 (reorder priority)
Policy helpShow all available policy commands

Example Policy Commands

List current policies:

Policy list

Create a blocking policy:

Policy new: block upload_file for payment data

Create an allow policy:

Policy new: allow write_file to aiqdemo/

Update policy:

Policy update policy1: allow read_file for all

Delete policy:

Policy delete policy1

Reorder policy priority:

Policy prioritize policy1 1

This moves policy1 to position 1 (highest priority, evaluated first).


Verify Plugin Startup

After configuration, check that the plugin initializes correctly:

# Start gateway and check logs
node scripts/run-node.mjs --dev gateway &

# Check for ArmorIQ initialization
grep -E "ArmorIQ|armoriq" /tmp/openclaw/openclaw-*.log

Expected log output:

ArmorIQ SDK initialized: mode=production, user=test-user-001, 
  agent=openclaw-agent-001, iap=https://customer-iap.armoriq.ai,
  backend=https://customer-api.armoriq.ai, api_key=***
[plugins] IAP Verification Service initialized - Base URL: https://customer-api.armoriq.ai
[plugins] CSRG Verification URL: https://customer-iap.armoriq.ai
[plugins] CSRG /verify/action is ENABLED for cryptographic verification

Troubleshooting

Plugin not loading

Check:

  1. plugins.enabled: true in config
  2. plugins.entries.armoriq.enabled: true in config
  3. Build completed: pnpm build
  4. No TypeScript errors: pnpm tsc --noEmit

"Policy update denied"

Check:

  1. Your Telegram user ID is in policyUpdateAllowList
  2. Include multiple formats (numeric ID, @username, prefixed)
  3. Restart gateway after config changes

API key errors

Check:

  1. API key starts with ak_live_
  2. No extra spaces or newlines
  3. Key is not expired
  4. Environment variable is exported

Connection refused

Check:

  1. Internet connection is active
  2. Firewall allows HTTPS
  3. Endpoints are correct (production URLs)
  4. ArmorIQ services are not in maintenance

Plugin Configuration Checklist

Before running, verify:

  • plugins.enabled: true
  • plugins.entries.armoriq.enabled: true
  • policyUpdateEnabled: true
  • Your Telegram user ID in policyUpdateAllowList
  • Valid ArmorIQ API key
  • Production endpoints configured
  • pnpm build completed
  • Plugin files exist in extensions/armoriq/

Next Steps

✅ Plugin configured!

Proceed to Running & Testing to start the gateway and verify the complete flow.

On this page