{"adoption": {"forks": 57, "observed_at": "2026-08-28T04:03:16.092095+00:00", "stars": 1022}, "canonical_url": "https://ross.abutalabs.com/products/clawkeeper", "card": {"archived": false, "artifact_type": "library", "description": "ClawKeeper: Comprehensive Safety Protection for OpenClaw Agents Through Skills, Plugins, and Watchers (aka The Norton for OpenClaw)", "domain": ["security", "developer-tools", "large-language-models"], "enriched": true, "function": ["security", "middleware", "agent-framework", "monitoring", "logging"], "health_score": 79, "homepage": null, "language": "TypeScript", "license": null, "license_family": "other", "maturity": "active", "member_repos": ["SafeAI-Lab-X/ClawKeeper"], "name": "SafeAI-Lab-X/ClawKeeper", "platform": ["python", "cross-platform", "self-hosted"], "pushed_at": "2026-08-17T02:33:43+00:00", "repo": "SafeAI-Lab-X/ClawKeeper", "stars": 1022, "tags": ["agent-safety", "guardrails", "prompt-injection", "tool-call-filtering", "openclaw", "mcp", "watcher-daemon", "redaction", "ai-agents"], "topics": ["agents", "openclaw", "plugins", "safety", "security", "skills"], "urls": [], "use_cases": ["block dangerous shell commands before an agent executes them", "detect prompt injection and poisoned tool output in agent runs", "prevent agents from reading credentials and exfiltrating them over the network", "redact secrets from tool results returned to an LLM", "guard filesystem, browser, and network tool calls with inspectable policies", "add trajectory-level safety review to multi-step agent workflows", "run a centralized safety judge service for agents in any language"], "what_it_is": "ClawKeeper is a host-agnostic safety middleware layer that sits between AI agents and their tools, blocking risky tool calls, redacting sensitive results, and detecting attack patterns like prompt injection and credential exfiltration. It ships as a Python library with adapters (e.g., Hermes Agent), an HTTP Judge API for non-Python hosts, and an optional LLM-powered Watcher daemon that reasons over multi-step agent trajectories and self-improves guard coverage.", "when_to_avoid": ["you need a general-purpose web application firewall rather than agent tool-call guarding", "you require a formally verified or certified security product with a mature audit trail", "your agents make no tool calls and only generate text", "you need guaranteed protection - the policies are intentionally small and inspectable, not exhaustive"], "when_to_choose": ["you run tool-using agents (shell, filesystem, browser, network) and need pre-execution safety guards", "you want a host-independent safety layer that works across agent frameworks via adapters or HTTP", "you need detection of agent-specific attack chains like credential discovery plus exfiltration", "you want an LLM-based watcher for decisions that depend on intent and recent tool history"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/clawkeeper", "repo": "SafeAI-Lab-X/ClawKeeper", "role": "main", "score": 59}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:16.092095+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:08:41.838135+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fa1931a3f366c73b6e2d9e0a300d8910bbf43b945e160b1716408eaf72b16246", "fetched_at": "2026-08-28T04:03:16.092095+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SafeAI-Lab-X/ClawKeeper"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:16.092095+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:08:41.838135+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fa1931a3f366c73b6e2d9e0a300d8910bbf43b945e160b1716408eaf72b16246", "fetched_at": "2026-08-28T04:03:16.092095+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SafeAI-Lab-X/ClawKeeper"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:08:41.838135+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fa1931a3f366c73b6e2d9e0a300d8910bbf43b945e160b1716408eaf72b16246", "fetched_at": "2026-08-28T04:03:16.092095+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SafeAI-Lab-X/ClawKeeper"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:03:16.092095+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:16.092095+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:16.092095+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:08:41.838135+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fa1931a3f366c73b6e2d9e0a300d8910bbf43b945e160b1716408eaf72b16246", "fetched_at": "2026-08-28T04:03:16.092095+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SafeAI-Lab-X/ClawKeeper"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:16.092095+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:16.092095+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:08:41.838135+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fa1931a3f366c73b6e2d9e0a300d8910bbf43b945e160b1716408eaf72b16246", "fetched_at": "2026-08-28T04:03:16.092095+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SafeAI-Lab-X/ClawKeeper"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:16.092095+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:16.092095+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:16.092095+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:08:41.838135+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fa1931a3f366c73b6e2d9e0a300d8910bbf43b945e160b1716408eaf72b16246", "fetched_at": "2026-08-28T04:03:16.092095+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SafeAI-Lab-X/ClawKeeper"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:16.092095+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:16.092095+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:08:41.838135+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fa1931a3f366c73b6e2d9e0a300d8910bbf43b945e160b1716408eaf72b16246", "fetched_at": "2026-08-28T04:03:16.092095+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SafeAI-Lab-X/ClawKeeper"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:08:41.838135+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fa1931a3f366c73b6e2d9e0a300d8910bbf43b945e160b1716408eaf72b16246", "fetched_at": "2026-08-28T04:03:16.092095+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SafeAI-Lab-X/ClawKeeper"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:08:41.838135+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fa1931a3f366c73b6e2d9e0a300d8910bbf43b945e160b1716408eaf72b16246", "fetched_at": "2026-08-28T04:03:16.092095+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SafeAI-Lab-X/ClawKeeper"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:08:41.838135+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fa1931a3f366c73b6e2d9e0a300d8910bbf43b945e160b1716408eaf72b16246", "fetched_at": "2026-08-28T04:03:16.092095+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SafeAI-Lab-X/ClawKeeper"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 11, "rhythm": 35}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": ["no_releases", "young", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 166, "days_push": 17, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 59, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}