{
  "schemaVersion": "1.0",
  "item": {
    "slug": "safe-web",
    "name": "Safe-Web",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/AdamNaghs/safe-web",
    "canonicalUrl": "https://clawhub.ai/AdamNaghs/safe-web",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/safe-web",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=safe-web",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "scripts/safe-web.py",
      "skill.json"
    ],
    "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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/safe-web"
    },
    "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/safe-web",
    "agentPageUrl": "https://openagent3.xyz/skills/safe-web/agent",
    "manifestUrl": "https://openagent3.xyz/skills/safe-web/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/safe-web/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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "safe-web",
        "body": "Secure web fetch and search with PromptGuard scanning."
      },
      {
        "title": "Status",
        "body": "✅ Working"
      },
      {
        "title": "Purpose",
        "body": "Protects against prompt injection attacks hidden in web content before returning it to the AI. Wraps web fetching and searching with security scanning."
      },
      {
        "title": "Installation",
        "body": "Requires PromptGuard and Python dependencies:\n\n# Install PromptGuard first\ncd /home/linuxbrew/.openclaw/workspace/skills/prompt-guard\npip3 install --break-system-packages -e .\n\n# Install web dependencies (if not present)\npip3 install --break-system-packages requests beautifulsoup4"
      },
      {
        "title": "Fetch Command",
        "body": "Fetch a URL and scan the content:\n\n# Basic fetch\nsafe-web fetch https://example.com/article\n\n# Save to file\nsafe-web fetch https://example.com --output article.txt\n\n# JSON output for automation\nsafe-web fetch https://example.com --json\n\n# Strict mode (block on MEDIUM)\nsafe-web fetch https://example.com --strict"
      },
      {
        "title": "Search Command",
        "body": "Search the web and scan results:\n\n# Basic search\nsafe-web search \"AI safety research\"\n\n# More results\nsafe-web search \"stock market news\" --count 10\n\n# JSON output\nsafe-web search \"machine learning\" --json"
      },
      {
        "title": "Exit Codes",
        "body": "CodeMeaning0Success - content/results are clean1Error (network, parsing, etc.)2Threat detected - content blocked"
      },
      {
        "title": "Environment Variables",
        "body": "BRAVE_API_KEY - API key for Brave Search (optional, enables search command)\n\nGet one at: https://brave.com/search/api/"
      },
      {
        "title": "Symlink (Recommended)",
        "body": "Create a system-wide symlink so safe-web works from any directory:\n\nsudo ln -s /home/linuxbrew/.openclaw/workspace/skills/safe-web/scripts/safe-web.py /usr/local/bin/safe-web\n\nAfter creating the symlink, you can use safe-web directly without specifying the full path."
      },
      {
        "title": "Fetch Flow",
        "body": "Downloads URL content with requests\nExtracts text using BeautifulSoup (removes scripts, styles)\nScans extracted text with PromptGuard\nReturns clean content or blocks with SHIELD report"
      },
      {
        "title": "Search Flow",
        "body": "Queries Brave Search API (requires API key)\nScans each result title and description\nFilters out suspicious results\nReturns only clean results"
      },
      {
        "title": "Security Model",
        "body": "Fail-closed: If PromptGuard cannot be loaded or scanning fails, the tool reports an error rather than returning unverified content.\n\nContent sanitization: HTML is parsed and scripts/styles are removed before scanning to reduce false positives.\n\nNo execution: This tool only fetches and scans. It never executes JavaScript or runs commands found in web content."
      },
      {
        "title": "Clean Fetch",
        "body": "Fetching: https://site.com/article\nFetched 1523 characters\nScanning with PromptGuard...\n\nArticle content here..."
      },
      {
        "title": "Blocked Content",
        "body": "Fetching: https://suspicious-site.com\nFetched 2048 characters\nScanning with PromptGuard...\n============================================================\n🛡️  SAFE-WEB SECURITY ALERT\n============================================================\nSource: https://suspicious-site.com\nSeverity: CRITICAL\nAction: BLOCK_NOTIFY\nPatterns Matched: 8\n\nDetected Patterns:\n  - instruction_override_en\n  - role_manipulation_en\n  - system_impersonation_en\n============================================================\n\nContent from https://suspicious-site.com has been blocked."
      },
      {
        "title": "Search Results",
        "body": "Searching: AI research\nFound 5 results, scanning...\n\nShowing 3 clean results:\n\n1. Latest AI Research Papers\n   URL: https://arxiv.org/list/ai/recent\n   Recent submissions in artificial intelligence...\n\n2. AI Safety Institute\n   URL: https://www.safe.ai/\n   Research and development for safe AI systems..."
      },
      {
        "title": "When to Use",
        "body": "Use safe-web when:\n\nFetching content from untrusted URLs\nScraping web pages for analysis\nSearching and processing web results\nAny web content will enter the AI context window\n\nUse standard web_fetch/web_search tools only for:\n\nTrusted, known-safe domains\nInternal documentation sites\nWhen you explicitly want to bypass scanning"
      },
      {
        "title": "Comparison with Native Tools",
        "body": "FeatureNative web_fetchsafe-web fetchFetches HTML✅✅Extracts text✅✅Injection scanning❌✅JSON output✅✅Save to file❌✅Exit codes0/10/1/2 (security)"
      },
      {
        "title": "Dependencies",
        "body": "Python 3.8+\nPromptGuard 3.1.0+ (installed in workspace)\nrequests\nbeautifulsoup4\nBrave Search API key (for search command)"
      },
      {
        "title": "Limitations",
        "body": "Search requires Brave API key (free tier available)\nFetch does not execute JavaScript (static HTML only)\nLarge pages may be truncated during text extraction\nNetwork timeouts default to 30 seconds"
      }
    ],
    "body": "safe-web\n\nSecure web fetch and search with PromptGuard scanning.\n\nStatus\n\n✅ Working\n\nPurpose\n\nProtects against prompt injection attacks hidden in web content before returning it to the AI. Wraps web fetching and searching with security scanning.\n\nInstallation\n\nRequires PromptGuard and Python dependencies:\n\n# Install PromptGuard first\ncd /home/linuxbrew/.openclaw/workspace/skills/prompt-guard\npip3 install --break-system-packages -e .\n\n# Install web dependencies (if not present)\npip3 install --break-system-packages requests beautifulsoup4\n\nUsage\nFetch Command\n\nFetch a URL and scan the content:\n\n# Basic fetch\nsafe-web fetch https://example.com/article\n\n# Save to file\nsafe-web fetch https://example.com --output article.txt\n\n# JSON output for automation\nsafe-web fetch https://example.com --json\n\n# Strict mode (block on MEDIUM)\nsafe-web fetch https://example.com --strict\n\nSearch Command\n\nSearch the web and scan results:\n\n# Basic search\nsafe-web search \"AI safety research\"\n\n# More results\nsafe-web search \"stock market news\" --count 10\n\n# JSON output\nsafe-web search \"machine learning\" --json\n\nExit Codes\nCode\tMeaning\n0\tSuccess - content/results are clean\n1\tError (network, parsing, etc.)\n2\tThreat detected - content blocked\nConfiguration\nEnvironment Variables\nBRAVE_API_KEY - API key for Brave Search (optional, enables search command)\nGet one at: https://brave.com/search/api/\nSymlink (Recommended)\n\nCreate a system-wide symlink so safe-web works from any directory:\n\nsudo ln -s /home/linuxbrew/.openclaw/workspace/skills/safe-web/scripts/safe-web.py /usr/local/bin/safe-web\n\n\nAfter creating the symlink, you can use safe-web directly without specifying the full path.\n\nHow It Works\nFetch Flow\nDownloads URL content with requests\nExtracts text using BeautifulSoup (removes scripts, styles)\nScans extracted text with PromptGuard\nReturns clean content or blocks with SHIELD report\nSearch Flow\nQueries Brave Search API (requires API key)\nScans each result title and description\nFilters out suspicious results\nReturns only clean results\nSecurity Model\n\nFail-closed: If PromptGuard cannot be loaded or scanning fails, the tool reports an error rather than returning unverified content.\n\nContent sanitization: HTML is parsed and scripts/styles are removed before scanning to reduce false positives.\n\nNo execution: This tool only fetches and scans. It never executes JavaScript or runs commands found in web content.\n\nExample Output\nClean Fetch\nFetching: https://site.com/article\nFetched 1523 characters\nScanning with PromptGuard...\n\nArticle content here...\n\nBlocked Content\nFetching: https://suspicious-site.com\nFetched 2048 characters\nScanning with PromptGuard...\n============================================================\n🛡️  SAFE-WEB SECURITY ALERT\n============================================================\nSource: https://suspicious-site.com\nSeverity: CRITICAL\nAction: BLOCK_NOTIFY\nPatterns Matched: 8\n\nDetected Patterns:\n  - instruction_override_en\n  - role_manipulation_en\n  - system_impersonation_en\n============================================================\n\nContent from https://suspicious-site.com has been blocked.\n\nSearch Results\nSearching: AI research\nFound 5 results, scanning...\n\nShowing 3 clean results:\n\n1. Latest AI Research Papers\n   URL: https://arxiv.org/list/ai/recent\n   Recent submissions in artificial intelligence...\n\n2. AI Safety Institute\n   URL: https://www.safe.ai/\n   Research and development for safe AI systems...\n\nWhen to Use\n\nUse safe-web when:\n\nFetching content from untrusted URLs\nScraping web pages for analysis\nSearching and processing web results\nAny web content will enter the AI context window\n\nUse standard web_fetch/web_search tools only for:\n\nTrusted, known-safe domains\nInternal documentation sites\nWhen you explicitly want to bypass scanning\nComparison with Native Tools\nFeature\tNative web_fetch\tsafe-web fetch\nFetches HTML\t✅\t✅\nExtracts text\t✅\t✅\nInjection scanning\t❌\t✅\nJSON output\t✅\t✅\nSave to file\t❌\t✅\nExit codes\t0/1\t0/1/2 (security)\nDependencies\nPython 3.8+\nPromptGuard 3.1.0+ (installed in workspace)\nrequests\nbeautifulsoup4\nBrave Search API key (for search command)\nLimitations\nSearch requires Brave API key (free tier available)\nFetch does not execute JavaScript (static HTML only)\nLarge pages may be truncated during text extraction\nNetwork timeouts default to 30 seconds"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/AdamNaghs/safe-web",
    "publisherUrl": "https://clawhub.ai/AdamNaghs/safe-web",
    "owner": "AdamNaghs",
    "version": "1.0.8",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/safe-web",
    "downloadUrl": "https://openagent3.xyz/downloads/safe-web",
    "agentUrl": "https://openagent3.xyz/skills/safe-web/agent",
    "manifestUrl": "https://openagent3.xyz/skills/safe-web/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/safe-web/agent.md"
  }
}