Architecture
How ArmorIQ Tools is put together - the guardrails on the developer machine, the SDK, the backend enforce and telemetry path, and the read-only Console.
System Architecture
The guardrail decides and records; the Console only reads. The guardrail, through the SDK, calls the backend to enforce and to ship telemetry. The Console never enforces anything. It is a read surface over the session and tool evidence the backend has already stored. That separation is why the Console can hold to the Honesty Principle: it renders only what was actually recorded.
Components
Guardrails (client side)
- ArmorClaude (
armorClaude/): the guardrail for Claude Code, installed withcurl -fsSL https://armoriq.ai/install_armorclaude.sh | bash. It hooks the assistant's tool calls, evaluates each against workspace policy, and emits session telemetry (tool calls, policy decisions, timing, MCP categories, connection events). - ArmorCodex (
armorCodex/): the same guardrail for OpenAI Codex. Younger than ArmorClaude; the install path is less mature (see Status).
SDK (the wire between guardrail and backend)
armoriq-sdk-customer-ts(TypeScript) andarmoriq-sdk-customer(Python): capture intent, carry device identity through login, redirect a completed login totools.armoriq.ai, and call the enforce endpoint. The guardrails depend on the telemetry SDK so a guardrail cannot silently fail to send data.
Backend and policy plane
conmap-auto(NestJS,api.armoriq.io): the API the guardrail and the Console both talk to. It owns SDK enforce (POST /iap/sdk/enforce), session and tool observability, the tools catalogue, analytics aggregation, and streaming chat. Data lives in PostgreSQL via Prisma.- OPA PDP: Rego policy evaluation (
armoriq.regoplus extensions) run as a sidecar the backend calls. Evaluation is blocking: if OPA fails, the tool call is denied, not silently allowed.
Frontend
armoriq-console(the Console attools.armoriq.ai): Vite, React 19, and Tailwind v4, deployed on Vercel. Feature slices live undersrc/features/(sessions,analytics,chat,policy-studio,mcp,team,api-keys,tokens,home, and more). It reads the backend over REST with a bearer JWT.
End-to-End Flow: From Install to Insight
One-line install
curl -fsSL https://armoriq.ai/install_armorclaude.sh | bash installs ArmorClaude (or ArmorCodex). Under a minute, no pre-config.
Auto account and workspace
The installer opens a browser and you sign in (Google or GitHub). ArmorIQ provisions the personal workspace and binds an API key; device identity persists, and the terminal resumes on its own.
Guardrail active
Every tool call the assistant attempts is checked against workspace policy. The default posture is allow-and-record, so day one is not blocked. Each decision (Allow, Deny, Hold, Error) and its timing are recorded.
See what happened
Open the Console at tools.armoriq.ai: Sessions, session detail, tools catalogue, analytics, AI chat.
Set rules
Policy Studio lets you write plain-language rules ("always ask before deleting files"). They take effect on the next session; no restart.
The loop for a non-technical user is: install once, set rules, review anytime.