Install
openclaw skills install @frod27/overwingCheck any text for safety, personal data, self-harm, sexual content and severity before you send it, act on it, or show it to a person. One API call returns pass / fail / review per rule with calibrated confidence in under 500 ms. Use for moderating model output, screening incoming messages, or scoring drafts. Works with an API key or, for wallet-holding agents, pay-per-request in USDC with no account.
openclaw skills install @frod27/overwingOverwing scores text and returns a typed verdict. Use it as a guardrail: before
you send a reply, post content, act on an untrusted message, or hand something
to a person, evaluate it. fail means block or rewrite. review means a rule
was unsure: ask your human or take the cautious path. pass means go ahead.
Do not use it for trivial system messages, code, or text your human wrote and explicitly asked you to send unchanged.
The key lives in OVERWING_API_KEY. If it is not set:
{baseDir}/scripts/overwing.sh signup you@example.com 'a-password-of-12-or-more'
The response contains api_key. Put it in OVERWING_API_KEY (or skills.entries.overwing.apiKey in openclaw.json). Never print the key back into chat. Accounts made this way start at 50 checks a day until the email is confirmed.
If you hold a funded wallet on Base and have no key, see "Paying per request" below.
{baseDir}/scripts/overwing.sh evaluate "The text to check"
Returns JSON:
{ "id": "eval_…", "verdict": "fail", "aggregate_score": 0.82, "confidence": 0.97, "latency_ms": 251,
"results": [ { "rule": "pii_detected", "type": "noul", "answer": true, "probability": 0.99, "confidence": 0.98, "verdict": "fail" }, … ] }
How to act on it:
| verdict | meaning | what to do |
|---|---|---|
fail | a rule's fail condition matched | do not send; rewrite without the flagged content, or tell your human what was flagged and why |
review | no rule failed, but one was unsure (confidence under its threshold) | ask your human, or take the safer option |
pass | nothing tripped | proceed |
results[].rule names the rule; the prebuilt set has toxicity, pii_detected, self_harm, sexual_content, severity. confidence is 0 to 1. Read the rule list before deciding: a fail on pii_detected with a pass on everything else means "remove the personal data", not "the message is hostile".
Pass a different rule set with --rule-set <slug>; the default is content-safety.
Up to 50 per call, one line of JSON per item on stdin:
printf '%s\n' '{"id":"a","input":"first"}' '{"id":"b","input":"second"}' | {baseDir}/scripts/overwing.sh batch
Returns a summary plus per-item verdicts. Each item counts as one check.
X-RateLimit-Remaining and X-Burst-Remaining.Retry-After, or tell your human the daily limit is reached (they can upgrade or buy prepaid credits at https://overwing.ai/dashboard/billing).{"error": "human readable message"}.Check remaining quota:
{baseDir}/scripts/overwing.sh usage
POST https://overwing.ai/api/x402/evaluate takes the same body as the normal endpoint and is paid per call in USDC on Base (about $0.002 each) over the x402 protocol. The first response is HTTP 402 with the payment requirements; sign them with an x402 client (for example x402-fetch in Node) and resend with the X-PAYMENT header. GET on that URL shows the current price and network. Only do this if your human has given you a wallet to spend from.
Your human can define rules in plain language (yes/no questions, classifications, or scored scales) at https://overwing.ai/dashboard/rule-sets or via POST /api/v1/rule-sets. Then pass the slug with --rule-set. GET https://overwing.ai/api/v1/rule-sets/content-safety is a complete example to copy from.
npx -y overwing-mcp exposes the same calls as tools.npm install overwing, pip install overwing.Verdicts are signals from a calibrated model, not guarantees. When the stakes are high and the verdict is not a clear pass, involve your human.