⏳ This skill is pending AI review.

Scores will appear once the review pipeline completes.

v1.0.0

check_exists

@openauthority⭐ 8 stars

Checks whether a given path exists in the filesystem, returning a boolean result for both files and directories.

Choose how to use this skill

You do not need every option. Choose the path your AI client supports. The stable page stays the same; versioned files are immutable.

1. Native installer

This listing has no registered native installer command. Use the complete package or source fallback below, depending on what your client supports.

Do not guess an installer command or replace an existing version without reviewing the diff.

2. Complete package recommended

Download the ZIP when available. It includes SKILL.md plus the references, security notes and version metadata.

No complete ProSkills package is published for this listing yet.

3. Prompt-only

Copy the prompt above when the agent can read the stable page or when you want to adopt the workflow without installing a skill.

Need only the instruction file?

Download SKILL.md only if your client requires a single file. The complete ZIP is safer for a full installation because it preserves the references and release context.

No path installs or executes anything by itself. Your agent still needs access to the project files. Before updating, compare the installed version and review the diff.

—/10

// RATINGS

⭐GitHub Stars
⭐ 8 on GitHubGitHub ↗

New / niche

🟢ProSkills Score
—
📍

Not yet listed on ClawHub or SkillsMP

// README

Clawthority

OpenClaw Plugin CI Version License: Apache 2.0 Node.js >= 18 TypeScript PRs Welcome

A semantic authorization runtime for AI agents. Define what your agent can do, enforce it at the boundary, and keep a human in the loop for what matters.

Clawthority is a policy engine plugin for OpenClaw. It sits between your AI agent and every tool it calls, evaluates rules before execution, and - if policy says no - the call is never placed.

Agent tool call  ─►  Clawthority  ─►  Allow  │  Deny  │  Ask human  ─►  Audit log

[!NOTE] v1.x - stable API. The plugin API and policy bundle schema follow semantic versioning; breaking changes ship in a future major release. The version badge above reflects the current release (1.3.4).


Contents


Why Clawthority

AI agents call tools. When a tool can delete files, send money, or talk to strangers, who decides whether that call goes through - the model, or you?

Skill-based safety (instruct the model to "please check first") fails the moment the model is wrong, distracted, or prompt-injected. Clawthority moves the decision outside the model's loop - into the code path between the agent and the tool.

The Skill (model-enforced)The Plugin (code-enforced)
Lives inContext window - model sees itExecution path - between agent and tools
Enforces viaModel reasoning; asks it to complyCode boundary; intercepts the call
Can be bypassed?Yes - prompt injection, loop misfireNo - runs outside the model's loop
Gives youObservability + soft stopHard enforcement + append-only audit log

A skill asks the model to enforce. A plugin enforces regardless of what the model decides.


What it is - and isn't

Clawthority is:

  • A policy decision + enforcement layer for tool calls, installed as an OpenClaw plugin.
  • A semantic authorizer - rules are written against canonical action classes (filesystem.delete, payment.initiate), not brittle tool-name regexes.
  • A cryptographic capability system - HITL approvals are SHA-256-bound to (action_class, target, payload_hash) at approval time. Param tampering after approval = auto-deny.
  • Two install modes - open (default, implicit permit + critical forbids) for zero-friction installs, and closed (implicit deny, explicit permits required) for locked-down production. Stage 1 capability/HITL gates and pipeline-level error handling fail closed in both modes.

Clawthority isn't:

  • A model-safety or alignment layer. It does not enforce semantic constraints on prompt content, and it does not inspect tool outputs for sensitive data.
  • A runtime for agents. OpenClaw still decides which tools the agent sees; Clawthority decides whether those calls run.
  • A substitute for good action-class registration. Misregistered tools fall through to unknown_sensitive_action, which is forbidden at priority 100 in closed mode but implicitly permitted in open mode unless you add an explicit forbid rule for it in data/rules.json — a signal you need to register the alias.
  • A full process sandbox. Clawthority enforces in-band tool calls only - calls routed through OpenClaw's tool dispatcher. Skills or workspace helpers that call fs, child_process, or network APIs directly bypass the dispatcher and are out of scope. See docs/threat-model.md for the full boundary definition and recommended mitigations.

Quickstart

Install from npm into the OpenClaw plugins directory:

mkdir -p ~/.openclaw/plugins/clawthority
cd ~/.openclaw/plugins/clawthority
npm init -y >/dev/null
npm install @clawthority/clawthority

Installing the package runs scripts/post-install.mjs, which writes a data/.installed marker under the plugin root. The marker gates policy activation — see isInstalled() in src/index.ts. No other files outside the plugin directory are touched.

Register in ~/.openclaw/config.json:

{ "plugins": ["clawthority"] }

[!NOTE] The three companion soft-enforcement skills (human-approval, token-budget, whatdidyoudo) live in a separate clawthority-skills repository. They are optional and independent of the plugin.

By default Clawthority runs in open mode - implicit permit, with a critical-forbid safety net (shell.exec, code.execute, payment.initiate, credential.read, credential.write, credential.rotate). Note: unknown_sensitive_action is not in this safety net — unregistered tool names are implicitly permitted in open mode unless you add an explicit forbid rule for unknown_sensitive_action in data/rules.json. To fail closed on unknown tools out of the box, run in closed mode (implicit deny, explicit permits required) by setting the env var before launching your agent:

export CLAWTHORITY_MODE=closed

Mode is read once at activation - restart the agent to change it.

Customise the baseline by dropping hot-reloadable rules into data/rules.json:

[
  { "effect": "permit", "action_class": "filesystem.read" },
  { "effect": "forbid", "action_class": "payment.initiate", "priority": 90 },
  { "effect": "forbid", "resource": "tool", "match": "my_custom_tool" }
]

Run your agent. A shell.exec call now terminates at the boundary:

[clawthority] │ DECISION: BLOCKED (cedar/forbid priority=100 rule=action:shell.exec) - Shell execution is unconditionally forbidden

Every block - plus every HITL outcome - is appended to data/audit.jsonl as structured JSONL with stage, rule, priority, and mode fields. See docs/troubleshooting.md for the recovery runbook.

[!TIP] data/rules.json and hitl-policy.yaml hot-reload within ~300ms. Anything else under src/ requires a gateway restart.


How it works

Agent picks a tool → Clawthority intercepts
      │
      │  normalize_action(toolName, params) → { action_class, target, payload_hash }
      │  buildEnvelope(...)                  → ExecutionEnvelope
      ▼
┌──────────────────────── Pipeline ────────────────────────┐
│  Stage 1: Capability Gate                                │
│    • low-risk bypass                                     │
│    • approval_required / TTL / payload binding           │
│    • one-time consumption, session scope                 │
│    • untrusted source + high risk → deny                 │
│                                                          │
│  Stage 2: Constraint Enforcement Engine                  │
│    • protected path che

// HOW IT'S BUILT

KEY FILES

examples/skills/check_exists/SKILL.mdREADME.md

// REPO STATS

8 stars