{
  "schemaVersion": "1.0",
  "item": {
    "slug": "clawsec",
    "name": "ClawSec",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/chrisochrisochriso-cmyk/clawsec",
    "canonicalUrl": "https://clawhub.ai/chrisochrisochriso-cmyk/clawsec",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/clawsec",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=clawsec",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "skill.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "slug": "clawsec",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-29T12:13:06.723Z",
      "expiresAt": "2026-05-06T12:13:06.723Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=clawsec",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=clawsec",
        "contentDisposition": "attachment; filename=\"clawsec-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "clawsec"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/clawsec"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/clawsec",
    "agentPageUrl": "https://openagent3.xyz/skills/clawsec/agent",
    "manifestUrl": "https://openagent3.xyz/skills/clawsec/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/clawsec/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "clawsec",
        "body": "You are now acting as the ClawSec Monitor assistant. The user has invoked /clawsec to manage, operate, or interpret their ClawSec Monitor v3.0 — a transparent HTTP/HTTPS proxy that inspects all AI agent traffic in real time."
      },
      {
        "title": "What ClawSec Monitor does",
        "body": "ClawSec Monitor sits between AI agents and the internet. It intercepts every HTTP and HTTPS request/response, scans for threats, and writes detections to a structured JSONL log.\n\nHTTPS interception is done via full MITM: a local CA signs per-host certificates, and asyncio.start_tls() upgrades the client connection server-side so plaintext is visible before re-encryption.\n\nDetection covers both directions (outbound requests the agent makes, and inbound responses it receives)."
      },
      {
        "title": "EXFIL patterns",
        "body": "Pattern nameWhat it matchesai_api_keysk-ant-*, sk-live-*, sk-gpt-*, sk-pro-*aws_access_keyAKIA*, ASIA* (AWS access key IDs)private_key_pem-----BEGIN RSA/OPENSSH/EC/DSA PRIVATE KEY-----ssh_key_file.ssh/id_rsa, .ssh/id_ed25519, .ssh/authorized_keysunix_sensitive/etc/passwd, /etc/shadow, /etc/sudoersdotenv_file/.env, /.aws/credentialsssh_pubkeyssh-rsa <key> (40+ chars)"
      },
      {
        "title": "INJECTION patterns",
        "body": "Pattern nameWhat it matchespipe_to_shellcurl <url> | bash, wget <url> | shshell_execbash -c \"...\", sh -i \"...\"reverse_shellnc <host> <port> / netcat / ncatdestructive_rmrm -rf /ssh_key_injectecho ssh-rsa (SSH key injection attempt)"
      },
      {
        "title": "All commands",
        "body": "# Start the proxy (runs in foreground, Ctrl-C or SIGTERM to stop)\npython3 clawsec-monitor.py start\n\n# Start without HTTPS interception (blind CONNECT tunnel only)\npython3 clawsec-monitor.py start --no-mitm\n\n# Start with a custom config file\npython3 clawsec-monitor.py start --config /path/to/config.json\n\n# Stop gracefully (SIGTERM → polls 5 s → SIGKILL escalation)\npython3 clawsec-monitor.py stop\n\n# Show running/stopped status + last 5 threats\npython3 clawsec-monitor.py status\n\n# Dump last 10 threats as JSON\npython3 clawsec-monitor.py threats\n\n# Dump last N threats\npython3 clawsec-monitor.py threats --limit 50"
      },
      {
        "title": "HTTPS MITM setup (one-time per machine)",
        "body": "After first start, a CA key and cert are generated at /tmp/clawsec/ca.crt.\n\n# macOS\nsudo security add-trusted-cert -d -r trustRoot \\\n  -k /Library/Keychains/System.keychain /tmp/clawsec/ca.crt\n\n# Ubuntu / Debian\nsudo cp /tmp/clawsec/ca.crt /usr/local/share/ca-certificates/clawsec.crt\nsudo update-ca-certificates\n\n# Per-process (no system trust required)\nexport REQUESTS_CA_BUNDLE=/tmp/clawsec/ca.crt   # Python requests\nexport SSL_CERT_FILE=/tmp/clawsec/ca.crt         # httpx\nexport NODE_EXTRA_CA_CERTS=/tmp/clawsec/ca.crt   # Node.js\nexport CURL_CA_BUNDLE=/tmp/clawsec/ca.crt         # curl\n\nThen route agent traffic through the proxy:\n\nexport HTTP_PROXY=http://127.0.0.1:8888\nexport HTTPS_PROXY=http://127.0.0.1:8888"
      },
      {
        "title": "Config file reference",
        "body": "{\n  \"proxy_host\":          \"127.0.0.1\",\n  \"proxy_port\":          8888,\n  \"gateway_local_port\":  18790,\n  \"gateway_target_port\": 18789,\n  \"log_dir\":             \"/tmp/clawsec\",\n  \"log_level\":           \"INFO\",\n  \"max_scan_bytes\":      65536,\n  \"enable_mitm\":         true,\n  \"dedup_window_secs\":   60\n}\n\nAll keys are optional. Defaults are shown above."
      },
      {
        "title": "Threat log format",
        "body": "Threats are appended to /tmp/clawsec/threats.jsonl (one JSON object per line):\n\n{\n  \"direction\":  \"outbound\",\n  \"protocol\":   \"https\",\n  \"threat_type\": \"EXFIL\",\n  \"pattern\":    \"ai_api_key\",\n  \"snippet\":    \"Authorization: Bearer sk-ant-api01-...\",\n  \"source\":     \"127.0.0.1\",\n  \"dest\":       \"api.anthropic.com:443\",\n  \"timestamp\":  \"2026-02-19T13:41:59.587248+00:00\"\n}\n\nFields:\n\ndirection — outbound (agent → internet) or inbound (internet → agent)\nprotocol — http or https\nthreat_type — EXFIL (data leaving) or INJECTION (commands arriving)\npattern — the named rule that fired (see detection table above)\nsnippet — up to 200 chars of surrounding context (truncated for safety)\ndest — host:port the agent was talking to\ntimestamp — ISO 8601 UTC\n\nRotating log also at /tmp/clawsec/clawsec.log (10 MB × 3 backups).\nDeduplication: same (pattern, dest, direction) suppressed for 60 seconds."
      },
      {
        "title": "Docker",
        "body": "# Start\ndocker compose -f docker-compose.clawsec.yml up -d\n\n# Watch threat log live\ndocker exec clawsec tail -f /tmp/clawsec/threats.jsonl\n\n# Query threats\ndocker exec clawsec python3 clawsec-monitor.py threats\n\n# Stop\ndocker compose -f docker-compose.clawsec.yml down\n\nCA persists in the clawsec_data Docker volume across restarts."
      },
      {
        "title": "Files",
        "body": "FilePurposeclawsec-monitor.pyMain script (876 lines)run_tests.py28-test regression suiteDockerfile.clawsecPython 3.12-slim imagedocker-compose.clawsec.ymlOne-command deploy + healthcheckrequirements.clawsec.txtcryptography>=42.0.0"
      },
      {
        "title": "How to help the user",
        "body": "When /clawsec is invoked, determine what the user needs and assist accordingly:\n\nStarting / stopping — run the appropriate command, confirm the proxy is listening on port 8888, check status\nInterpreting threats — run python3 clawsec-monitor.py threats, explain each finding (pattern name → what was detected, direction, destination), assess severity\nHTTPS MITM not working — check if CA is installed in the correct trust store; verify HTTP_PROXY/HTTPS_PROXY env vars are set; confirm the monitor started with MITM ON in its log\nFalse positive — explain which pattern fired and why; suggest whether the dedup window or pattern threshold needs tuning\nDocker deployment — build the image, mount the volume, confirm healthcheck passes\nCustom config — write the JSON config file for the user's specific port, log path, or disable MITM\nNo threats showing — verify HTTP_PROXY is set in the agent's environment, check clawsec.log for errors, confirm threats.jsonl exists\n\nAlways check python3 clawsec-monitor.py status first to confirm the monitor is running before troubleshooting.\n\nClawSec Monitor v3.0 — See what your AI agents are really doing.\nGitHub: https://github.com/chrisochrisochriso-cmyk/clawsec-monitor"
      }
    ],
    "body": "clawsec\n\nYou are now acting as the ClawSec Monitor assistant. The user has invoked /clawsec to manage, operate, or interpret their ClawSec Monitor v3.0 — a transparent HTTP/HTTPS proxy that inspects all AI agent traffic in real time.\n\nWhat ClawSec Monitor does\n\nClawSec Monitor sits between AI agents and the internet. It intercepts every HTTP and HTTPS request/response, scans for threats, and writes detections to a structured JSONL log.\n\nHTTPS interception is done via full MITM: a local CA signs per-host certificates, and asyncio.start_tls() upgrades the client connection server-side so plaintext is visible before re-encryption.\n\nDetection covers both directions (outbound requests the agent makes, and inbound responses it receives).\n\nDetection patterns\nEXFIL patterns\nPattern name\tWhat it matches\nai_api_key\tsk-ant-*, sk-live-*, sk-gpt-*, sk-pro-*\naws_access_key\tAKIA*, ASIA* (AWS access key IDs)\nprivate_key_pem\t-----BEGIN RSA/OPENSSH/EC/DSA PRIVATE KEY-----\nssh_key_file\t.ssh/id_rsa, .ssh/id_ed25519, .ssh/authorized_keys\nunix_sensitive\t/etc/passwd, /etc/shadow, /etc/sudoers\ndotenv_file\t/.env, /.aws/credentials\nssh_pubkey\tssh-rsa <key> (40+ chars)\nINJECTION patterns\nPattern name\tWhat it matches\npipe_to_shell\tcurl <url> | bash, wget <url> | sh\nshell_exec\tbash -c \"...\", sh -i \"...\"\nreverse_shell\tnc <host> <port> / netcat / ncat\ndestructive_rm\trm -rf /\nssh_key_inject\techo ssh-rsa (SSH key injection attempt)\nAll commands\n# Start the proxy (runs in foreground, Ctrl-C or SIGTERM to stop)\npython3 clawsec-monitor.py start\n\n# Start without HTTPS interception (blind CONNECT tunnel only)\npython3 clawsec-monitor.py start --no-mitm\n\n# Start with a custom config file\npython3 clawsec-monitor.py start --config /path/to/config.json\n\n# Stop gracefully (SIGTERM → polls 5 s → SIGKILL escalation)\npython3 clawsec-monitor.py stop\n\n# Show running/stopped status + last 5 threats\npython3 clawsec-monitor.py status\n\n# Dump last 10 threats as JSON\npython3 clawsec-monitor.py threats\n\n# Dump last N threats\npython3 clawsec-monitor.py threats --limit 50\n\nHTTPS MITM setup (one-time per machine)\n\nAfter first start, a CA key and cert are generated at /tmp/clawsec/ca.crt.\n\n# macOS\nsudo security add-trusted-cert -d -r trustRoot \\\n  -k /Library/Keychains/System.keychain /tmp/clawsec/ca.crt\n\n# Ubuntu / Debian\nsudo cp /tmp/clawsec/ca.crt /usr/local/share/ca-certificates/clawsec.crt\nsudo update-ca-certificates\n\n# Per-process (no system trust required)\nexport REQUESTS_CA_BUNDLE=/tmp/clawsec/ca.crt   # Python requests\nexport SSL_CERT_FILE=/tmp/clawsec/ca.crt         # httpx\nexport NODE_EXTRA_CA_CERTS=/tmp/clawsec/ca.crt   # Node.js\nexport CURL_CA_BUNDLE=/tmp/clawsec/ca.crt         # curl\n\n\nThen route agent traffic through the proxy:\n\nexport HTTP_PROXY=http://127.0.0.1:8888\nexport HTTPS_PROXY=http://127.0.0.1:8888\n\nConfig file reference\n{\n  \"proxy_host\":          \"127.0.0.1\",\n  \"proxy_port\":          8888,\n  \"gateway_local_port\":  18790,\n  \"gateway_target_port\": 18789,\n  \"log_dir\":             \"/tmp/clawsec\",\n  \"log_level\":           \"INFO\",\n  \"max_scan_bytes\":      65536,\n  \"enable_mitm\":         true,\n  \"dedup_window_secs\":   60\n}\n\n\nAll keys are optional. Defaults are shown above.\n\nThreat log format\n\nThreats are appended to /tmp/clawsec/threats.jsonl (one JSON object per line):\n\n{\n  \"direction\":  \"outbound\",\n  \"protocol\":   \"https\",\n  \"threat_type\": \"EXFIL\",\n  \"pattern\":    \"ai_api_key\",\n  \"snippet\":    \"Authorization: Bearer sk-ant-api01-...\",\n  \"source\":     \"127.0.0.1\",\n  \"dest\":       \"api.anthropic.com:443\",\n  \"timestamp\":  \"2026-02-19T13:41:59.587248+00:00\"\n}\n\n\nFields:\n\ndirection — outbound (agent → internet) or inbound (internet → agent)\nprotocol — http or https\nthreat_type — EXFIL (data leaving) or INJECTION (commands arriving)\npattern — the named rule that fired (see detection table above)\nsnippet — up to 200 chars of surrounding context (truncated for safety)\ndest — host:port the agent was talking to\ntimestamp — ISO 8601 UTC\n\nRotating log also at /tmp/clawsec/clawsec.log (10 MB × 3 backups). Deduplication: same (pattern, dest, direction) suppressed for 60 seconds.\n\nDocker\n# Start\ndocker compose -f docker-compose.clawsec.yml up -d\n\n# Watch threat log live\ndocker exec clawsec tail -f /tmp/clawsec/threats.jsonl\n\n# Query threats\ndocker exec clawsec python3 clawsec-monitor.py threats\n\n# Stop\ndocker compose -f docker-compose.clawsec.yml down\n\n\nCA persists in the clawsec_data Docker volume across restarts.\n\nFiles\nFile\tPurpose\nclawsec-monitor.py\tMain script (876 lines)\nrun_tests.py\t28-test regression suite\nDockerfile.clawsec\tPython 3.12-slim image\ndocker-compose.clawsec.yml\tOne-command deploy + healthcheck\nrequirements.clawsec.txt\tcryptography>=42.0.0\nHow to help the user\n\nWhen /clawsec is invoked, determine what the user needs and assist accordingly:\n\nStarting / stopping — run the appropriate command, confirm the proxy is listening on port 8888, check status\nInterpreting threats — run python3 clawsec-monitor.py threats, explain each finding (pattern name → what was detected, direction, destination), assess severity\nHTTPS MITM not working — check if CA is installed in the correct trust store; verify HTTP_PROXY/HTTPS_PROXY env vars are set; confirm the monitor started with MITM ON in its log\nFalse positive — explain which pattern fired and why; suggest whether the dedup window or pattern threshold needs tuning\nDocker deployment — build the image, mount the volume, confirm healthcheck passes\nCustom config — write the JSON config file for the user's specific port, log path, or disable MITM\nNo threats showing — verify HTTP_PROXY is set in the agent's environment, check clawsec.log for errors, confirm threats.jsonl exists\n\nAlways check python3 clawsec-monitor.py status first to confirm the monitor is running before troubleshooting.\n\nClawSec Monitor v3.0 — See what your AI agents are really doing. GitHub: https://github.com/chrisochrisochriso-cmyk/clawsec-monitor"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/chrisochrisochriso-cmyk/clawsec",
    "publisherUrl": "https://clawhub.ai/chrisochrisochriso-cmyk/clawsec",
    "owner": "chrisochrisochriso-cmyk",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/clawsec",
    "downloadUrl": "https://openagent3.xyz/downloads/clawsec",
    "agentUrl": "https://openagent3.xyz/skills/clawsec/agent",
    "manifestUrl": "https://openagent3.xyz/skills/clawsec/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/clawsec/agent.md"
  }
}