The OpenClaw + OpenCode pillar essay flagged the ClawHub problem in one paragraph: 8,000+ exposed instances, an unknown share with malicious skills, and Agent Trust Hub as the recommended fix. That's accurate but operationally useless if you can't or won't pay for verification.
This post is the manual audit checklist we use at our agency before any skill — verified or otherwise — touches a project machine. It works without Agent Trust Hub. It takes about 8 minutes per skill the first time, 2 minutes once you internalize the checks.
A ClawHub skill is a manifest, a set of capability declarations, and code. It runs inside OpenClaw with whatever permissions the manifest claims. The threats, ranked by what we've seen in the wild:
~/.ssh, ~/.aws, .env* files and exfiltrates over an outbound webhook. Most common.The first two account for ~95% of incidents we've heard about. They're also the ones manual review can actually catch.
Before openclaw skills install <name>, do this:
openclaw skills inspect <skill-name>
The output includes a permissions block. Compare what's declared to what the skill claims to do. Mismatches matter.
| Skill claims to... | Permissions you'd expect | Red flag if you also see... |
|---|---|---|
| Suggest commit messages | read:git, network:none | read:home, network:outbound |
| Format code | read:project, write:project | network:outbound, read:home |
| Switch AI models | network:llm-providers | read:project, exec:shell |
| "Organize your project" | varies | Anything broad. This phrase is itself a red flag. |
If the permissions don't match the description, stop. There's no benign reason for a code formatter to want network access to arbitrary domains.
openclaw skills source <skill-name> | grep -E "fetch\(|http\.get|curl|axios|webhook|discord\.com|telegram|pastebin"
You're looking for any HTTP destination that isn't an LLM provider you recognize. Discord webhooks and Telegram bot URLs are popular exfiltration channels because they look benign in a packet capture. Pastebin and ngrok URLs in skill source are an immediate stop.
Most skills do work in response to slash commands. Some do work on session start — that's where exfiltration tends to live, before you have a chance to react.
openclaw skills source <skill-name> | grep -A5 "on_start\|init\|activate"
Read every line of those handlers. If a skill that claims to format code is, on init, walking ~/ looking for .env* or id_rsa, you've caught the thing.
openclaw skills changelog <skill-name>
Pattern that should worry you: a skill at v1.0–v1.5 that adds new capabilities without changing the user-facing description. "Just bug fixes" releases that add read:home are how supply-chain attacks land in skills you've already trusted.
If a skill's permission scope has grown over its history without a clear feature reason, the safest move is to pin to the last known-clean version:
openclaw skills install <skill-name>@1.2.0
openclaw skills publisher <skill-name>
This shows the publisher's GitHub or Hub identity, when they registered, and what other skills they've shipped. New publishers (registered < 30 days) with one skill should clear a higher bar — assume nothing about reputation.
Established publishers can still get compromised. A surprise change in publisher identity (account changed hands) is a strong signal to pin to the version before the change.
For any skill that requests read:home, read:project, write:project, or exec:shell:
# Spin up a throwaway OpenClaw session in a Docker container docker run --rm -it -v $(pwd)/sandbox:/work openclaw/sandbox:latest openclaw skills install <skill-name> # Use it. Watch it. Then: docker rm
The sandbox image (openclaw/sandbox) ships with a network-monitoring layer that logs every outbound request. A clean skill will have zero outbound traffic except to declared LLM providers. Anything else is the conversation you wanted to have before installing on your real machine.
Agent Trust Hub's verification is real. They run roughly the same checks above plus continuous diff-monitoring on subsequent releases. A (verified) skill has cleared their audit pipeline.
What verification doesn't cover:
.env*. If you put your AWS keys in a file the skill does read, ATH didn't fail you — your config did.Across our agency, we keep a shared deny-list. Currently:
This list isn't exhaustive — it's just the patterns that have wasted our time enough to be worth ruling out at the door.
If after reading this you realize you've installed a skill that fails the checklist:
openclaw skills disable <name> immediately — disable, not just uninstall, so it can't run on next session start.~/.openclaw/audit.log for what the skill ran while active.openclaw skills uninstall <name> after step 3.The cost of a skill audit is 8 minutes. The cost of credential rotation across an agency after a confirmed exfiltration is a workday minimum. Audit first.
For the broader picture on local AI agents and why ClawHub matters in the first place, see the OpenClaw + OpenCode pillar. If you're setting up the opencode-controller skill — one of the safer ones to start with, since it has no file or shell access — the install guide covers verification commands inline.
Founder & Lead Developer
With 8+ years building software from the Philippines, Jomar has served 50+ US, Australian, and UK clients. He specializes in construction SaaS, enterprise automation, and helping Western companies build high-performing Philippine development teams.
Tell us what you're building. We'll show you the fastest path to a production-ready launch.
Get My Free Proposal