Integrations
Keel works with any agent that can read a file or run a shell command. The SKILL.md provides instructions-mode safety with zero dependencies. The CLI adds cryptographic integrity for agents that can execute commands.
Surface compatibility
| Surface | SKILL.md | CLI | Approval pause | Status |
|---|---|---|---|---|
| OpenClaw | Yes | Yes | Strong | LIVE |
| Claude Code | N/A | Yes | Strong | Pre-release |
| Codex | N/A | Yes | Varies | Pre-release |
| Gemini CLI | N/A | Yes | Varies | Pre-release |
| Custom agents | Yes | Yes | Depends | Available |
Strong = surface can pause before tool execution and present a typed approval prompt. Varies = depends on client configuration. Keel always enforces policies and logs actions regardless of approval support.
Setup guides
OpenClaw
Install the SKILL.md as a skill. The agent loads it on every context refresh, so safety rules survive compaction. If the CLI is installed, the agent uses it automatically for cryptographic hashing and deterministic policy checks.
# When published:
clawhub install threshold-keel
# Manual install (available now):
# Copy SKILL.md to your OpenClaw skills directory
Claude Code / Codex / Gemini CLI
These surfaces can run shell commands. Install the CLI and the agent calls
keel check-policy and keel wal-append directly.
Configure the agent's system prompt or instructions to reference Keel.
# When published:
pip install threshold-keel
keel init
keel --human status
Custom agents
If your agent can read files, it can use the SKILL.md in instructions mode. If it can execute shell commands, it can use the CLI. If it speaks HTTP, it can call the Keel Cloud API directly.
# CLI (local or cloud)
keel check-policy --action-json '{"action_type":"send_email","target_ids":["[email protected]"],"surface":"email","reversibility":"irreversible"}'
# Exit 0 = allowed, exit 1 = blocked, exit 2 = requires approval
# Cloud API (direct)
curl -H "Authorization: Bearer $KEEL_CLOUD_API_KEY" \
https://api.thresholdsignalworks.com/api/v1/policies/check \
-d '{"action_type":"send_email","target_ids":["[email protected]"]}'