OpenClaw Integration
Sigilum integrates with OpenClaw through hooks, skills, and a one-command installer that enables auditable, claim-gated API access for your AI agents.Quick Start
Install Sigilum OpenClaw integration with a single command:- Namespace: Your Sigilum account identifier
- OpenClaw home: Path to
.openclawdirectory (default:~/.openclaw) - API URL: Sigilum API endpoint (default:
https://api.sigilum.id)
Install integration
Run the installer from your Sigilum source directory:For local development with OSS mode:
Configure provider access
Add provider connections through the Sigilum gateway (see Provider Connectors).
What Gets Installed
The installer configures three main components:1. Hooks
sigilum-plugin Hook
Bootstraps Sigilum identity and context for each OpenClaw agent.
What it does:
- Creates one Ed25519 keypair per agent ID under
~/.openclaw/.sigilum/keys/ - Injects gateway-first policy into agent context
- Lists active
sigilum-secure-*gateway connections - Captures sender identity hints for automatic
sigilum-subjectresolution - Writes runtime credential discovery report
gateway:startup, command:new, config:reload, message:received
Required environment:
SIGILUM_NAMESPACE- Your Sigilum namespace
SIGILUM_GATEWAY_URL- Gateway base URL (default:http://localhost:38100)SIGILUM_API_URL- API base URLSIGILUM_KEY_ROOT- Agent key storage pathSIGILUM_AUTO_BOOTSTRAP_AGENTS- Auto-create agent keys (default:true)
sigilum-authz-notify Hook
Optional notification hook for pending authorization requests.
What it does:
- Polls for pending authorization requests
- Sends in-channel reminders to operators
- Requires
SIGILUM_OWNER_TOKEN(namespace owner JWT) - Only enable if you want to store owner credentials in OpenClaw runtime
2. Skill
sigilum Skill
Gateway-first provider access workflow.
Default behavior:
- Checks
sigilum-secure-*gateway connections first for all provider access - Uses signed
/mcp/{connection_id}/toolschecks with per-agent key material - Auto-resolves
sigilum-subjectfrom channel sender identity - Treats
401/403as authorization-required (not errors) - Avoids asking for direct provider API keys unless gateway path fails
- Check if
sigilum-secure-<provider>connection exists - Run signed capability check via gateway helper
- Parse response:
200→ Access granted, use gateway endpoint401/403→ Approval required, show user approval instructions404→ Connection not configured, guide user to add it- Other → Surface error and remediation
3. Bundled Runtime
The installer bundles a lean Sigilum runtime to:<agent-workspace>/.sigilum/runtime(preferred)<openclaw-home>/skills/sigilum/runtime(fallback)
sigilumlauncher binary- Command scripts for gateway operations
Installation Modes
Managed Mode (Default)
Connects to hosted Sigilum API and dashboard.- API:
https://api.sigilum.id - Gateway:
http://localhost:38100(runs locally) - Dashboard:
https://sigilum.id
- Navigate to
https://sigilum.id - Sign in and reserve your namespace
- Register a passkey for secure access
OSS-Local Mode
Runs full Sigilum stack locally from source.- Full Sigilum source checkout with
apps/apidirectory - Local Wrangler setup for Cloudflare Workers
- API:
http://127.0.0.1:8787(runs locally via Wrangler) - Gateway:
http://localhost:38100(runs locally)
--auto-start-sigilum=true (default), the installer will:
- Check if local API/gateway are already running
- Start them automatically if needed
- Wait for health checks to pass
- Log output to
~/.openclaw/logs/sigilum-up-<timestamp>.log
Installer Options
Full command reference:Core Options
--openclaw-home PATH- OpenClaw installation directory (default:~/.openclaw)--mode MODE- Installation mode:managedoross-local--namespace VALUE- Your Sigilum namespace (default:$USER)--gateway-url URL- Gateway endpoint (default:http://localhost:38100)--api-url URL- API endpoint (default:https://api.sigilum.id)
Advanced Options
--key-root PATH- Agent key storage path (default:~/.openclaw/.sigilum/keys)--runtime-root PATH- Bundled runtime destination--enable-authz-notify BOOL- Enable authorization notification hook (default:false)--owner-token TOKEN- Namespace owner JWT (required if--enable-authz-notify)--auto-owner-token BOOL- Auto-issue JWT in oss-local mode (default:true)--auto-start-sigilum BOOL- Auto-start local stack (default:true)--interactive/--non-interactive- Control prompt behavior--force- Replace existing hooks/skills without backup--restart- Restart OpenClaw after installation
Uninstall
Remove Sigilum integration cleanly:- Sigilum hooks from
~/.openclaw/hooks/ - Sigilum skills from
~/.openclaw/skills/ - Workspace
.sigilumruntime folder - Agent key material from
~/.openclaw/.sigilum/keys/ - Sigilum entries from
openclaw.json(with timestamped backup) - CLI defaults from
~/.sigilum/config.env
Configuration Files
The installer modifiesopenclaw.json to enable hooks and skills:
Key Management
Agent Keys
Each OpenClaw agent gets a unique Ed25519 keypair:- Generated deterministically per agent ID
- Private keys never leave the OpenClaw runtime
- Used for signing all gateway requests
- Each agent’s claims are tracked separately
Key Custody
Important security boundaries:
- Agent signing keys: Stay in OpenClaw runtime
- Provider API credentials: Stay in Sigilum gateway (local BadgerDB)
- Channel credentials (Slack, Discord, etc.): Still required in OpenClaw for v1
- Moved to gateway via connector configuration
- Never sent to OpenClaw agents
- Injected by gateway before upstream forwarding
- Cannot be fully removed from OpenClaw in v1
- Core channel adapters need tokens for WebSocket/bootstrap flows
- Future: Dedicated channel adapter plugins that proxy through gateway
Subject Resolution
Thesigilum-plugin hook captures sender identity hints for automatic sigilum-subject resolution:
Slack channels:
- Hook captures Slack user ID from
message:receivedevents - Subject resolver attempts
users.infoemail lookup (requiresSLACK_BOT_TOKENwithusers:readscope) - Falls back to Slack user ID if email unavailable
- Uses channel-specific sender identifier
- Stored in
~/.openclaw/.sigilum/subject-hints.json
Approval Flow
When an agent attempts to access a provider without approval:- Gateway returns
401or403withAUTH_CLAIM_REQUIRED - Helper script parses response and extracts approval fields:
APPROVAL_REQUIRED=trueAPPROVAL_NAMESPACE=<namespace>APPROVAL_AGENT_ID=<agent-id>APPROVAL_PUBLIC_KEY=<ed25519:...>APPROVAL_SERVICE=<connection-id>
- Agent shows user the approval instructions
- User approves via dashboard
- Agent retries request → Gateway allows access
Never infer “gateway restart bug” from
401/403 responses. These are expected authorization states managed through the claim approval system.Proxy Wiring Examples
Model Provider
Route OpenAI requests through Sigilum gateway:Channel Proxy
Some channels support proxy configuration:CLI Commands
Status Check
- Installed hooks and skills
- Active configuration
- Key material locations
Token Management
Refresh local namespace owner token:Troubleshooting
OpenClaw doesn’t see new hooks/skills
OpenClaw usually hot-reloads config, but if changes don’t appear:Gateway connection failures
Check that local gateway is running:Approval requests not working
Verify agent keys were created:Subject resolution fails
For Slack email lookups, ensure bot token has correct scopes:Security Contract
Next Steps
Provider Connectors
Configure HTTP and MCP provider connections through the gateway
Gateway Configuration
Advanced gateway settings and environment variables