Claw Reliability

Security checks across static analysis, malware telemetry, and agentic risk

Overview

The skill is coherent for agent observability, but it handles local agent transcript data and can send optional webhook alerts, so users should understand those data flows before enabling it.

This appears suitable for its stated observability purpose. Before installing, be aware that it reads OpenClaw session transcripts, keeps a local SQLite metrics database and alert log, runs a local dashboard, and may send alert summaries to external webhooks if you configure them. Use trusted webhook destinations and protect the local data files.

Static analysis

No static analysis findings were reported for this release.

VirusTotal

VirusTotal findings are pending for this skill version.

View on VirusTotal

Risk analysis

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

Local metrics may include sensitive tool names, arguments, errors, paths, session IDs, token usage, and cost data.

Why it was flagged

The skill intentionally collects and persists agent transcript-derived data, including tool arguments, which may contain sensitive context even though the storage is local and purpose-aligned.

Skill content
This skill reads OpenClaw gateway events and session transcripts to extract: ... Tool invocations ... arguments ... All data is stored in a local SQLite database at `{baseDir}/data/metrics.db`.
Recommendation

Use it only on trusted machines, protect or periodically delete data/metrics.db and alert logs, and avoid enabling it for sessions that may contain secrets unless you are comfortable with local retention.

What this means

A configured Discord or other webhook can receive alert messages derived from local agent activity, including sanitized error snippets or operational metadata.

Why it was flagged

When the user configures a webhook, alert data is sent to that external endpoint; this is disclosed and sanitized, but the webhook becomes a data boundary.

Skill content
req = urllib.request.Request(self.webhook_url, data=data, headers={"Content-Type": "application/json", "User-Agent": "claw-reliability/1.0"}, method="POST")
Recommendation

Only use trusted webhook URLs, assume the destination can read alert content, and review alert details before enabling external notifications in sensitive environments.

What this means

Anyone with access to the config file may be able to see or reuse the webhook URL, and the skill can post to the configured channel.

Why it was flagged

The optional Discord webhook URL is stored in the skill configuration and gives the skill delegated ability to post alerts to that Discord destination.

Skill content
cfg.setdefault("alert_destinations", {})["discord"] = {"enabled": True, "webhook_url": args.webhook_url}
Recommendation

Treat webhook URLs as credentials, keep config.yaml private, rotate the webhook if exposed, and remove it when alerts are no longer needed.

What this means

Opening the dashboard depends on external CDN resources, which may be undesirable in air-gapped or high-security environments.

Why it was flagged

The dashboard loads browser JavaScript from public CDNs, which is purpose-aligned for a web UI but adds third-party supply-chain dependence.

Skill content
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/18.2.0/umd/react.production.min.js"></script> ... <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/7.23.9/babel.min.js"></script>
Recommendation

For sensitive deployments, vendor these assets locally or add integrity/pinning controls, and install Python dependencies from trusted, pinned sources.