{
  "schemaVersion": "1.0",
  "item": {
    "slug": "clawfeed-2",
    "name": "Clawfeed",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/94W666/clawfeed-2",
    "canonicalUrl": "https://clawhub.ai/94W666/clawfeed-2",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/clawfeed-2",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=clawfeed-2",
    "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",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.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/clawfeed-2"
    },
    "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/clawfeed-2",
    "agentPageUrl": "https://openagent3.xyz/skills/clawfeed-2/agent",
    "manifestUrl": "https://openagent3.xyz/skills/clawfeed-2/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/clawfeed-2/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": "ClawFeed",
        "body": "AI-powered news digest tool. Automatically generates structured summaries (4H/daily/weekly/monthly) from Twitter and RSS feeds."
      },
      {
        "title": "Credentials & Dependencies",
        "body": "ClawFeed runs in read-only mode with zero credentials — browse digests, view feeds, switch languages. Authentication features (bookmarks, sources, packs) require additional credentials.\n\nCredentialPurposeRequiredGOOGLE_CLIENT_IDGoogle OAuth loginFor auth featuresGOOGLE_CLIENT_SECRETGoogle OAuth loginFor auth featuresSESSION_SECRETSession cookie encryptionFor auth featuresAPI_KEYDigest creation endpoint protectionFor write API\n\nRuntime dependency: SQLite via better-sqlite3 (native addon, bundled). No external database server required."
      },
      {
        "title": "Setup",
        "body": "# Install dependencies\nnpm install\n\n# Copy environment config\ncp .env.example .env\n# Edit .env with your settings\n\n# Start API server\nnpm start"
      },
      {
        "title": "Environment Variables",
        "body": "Configure in .env file:\n\nVariableDescriptionRequiredDefaultDIGEST_PORTServer portNo8767GOOGLE_CLIENT_IDGoogle OAuth client IDFor auth-GOOGLE_CLIENT_SECRETGoogle OAuth client secretFor auth-SESSION_SECRETSession cookie encryption keyFor auth-API_KEYDigest creation API keyFor write API-AI_DIGEST_DBSQLite database pathNodata/digest.dbALLOWED_ORIGINSCORS allowed originsNolocalhost"
      },
      {
        "title": "API Server",
        "body": "Runs on port 8767 by default. Set DIGEST_PORT env to change."
      },
      {
        "title": "Endpoints",
        "body": "MethodPathDescriptionAuthGET/api/digestsList digests (?type=4h|daily|weekly&limit=20&offset=0)-GET/api/digests/:idGet single digest-POST/api/digestsCreate digest (internal)-GET/api/auth/googleStart Google OAuth flow-GET/api/auth/callbackOAuth callback endpoint-GET/api/auth/meGet current user infoYesPOST/api/auth/logoutLogout userYesGET/api/marksList user bookmarksYesPOST/api/marksAdd bookmarkYesDELETE/api/marks/:idRemove bookmarkYesGET/api/configGet configuration-PUT/api/configUpdate configuration-"
      },
      {
        "title": "Web Dashboard",
        "body": "Serve web/index.html via your reverse proxy or any static file server."
      },
      {
        "title": "Templates",
        "body": "templates/curation-rules.md — Customize feed curation rules\ntemplates/digest-prompt.md — Customize the AI summarization prompt"
      },
      {
        "title": "Configuration",
        "body": "Copy config.example.json to config.json and edit. See README for details."
      },
      {
        "title": "Reverse Proxy (Caddy example)",
        "body": "handle /digest/api/* {\n    uri strip_prefix /digest/api\n    reverse_proxy localhost:8767\n}\nhandle_path /digest/* {\n    root * /path/to/clawfeed/web\n    file_server\n}"
      }
    ],
    "body": "ClawFeed\n\nAI-powered news digest tool. Automatically generates structured summaries (4H/daily/weekly/monthly) from Twitter and RSS feeds.\n\nCredentials & Dependencies\n\nClawFeed runs in read-only mode with zero credentials — browse digests, view feeds, switch languages. Authentication features (bookmarks, sources, packs) require additional credentials.\n\nCredential\tPurpose\tRequired\nGOOGLE_CLIENT_ID\tGoogle OAuth login\tFor auth features\nGOOGLE_CLIENT_SECRET\tGoogle OAuth login\tFor auth features\nSESSION_SECRET\tSession cookie encryption\tFor auth features\nAPI_KEY\tDigest creation endpoint protection\tFor write API\n\nRuntime dependency: SQLite via better-sqlite3 (native addon, bundled). No external database server required.\n\nSetup\n# Install dependencies\nnpm install\n\n# Copy environment config\ncp .env.example .env\n# Edit .env with your settings\n\n# Start API server\nnpm start\n\nEnvironment Variables\n\nConfigure in .env file:\n\nVariable\tDescription\tRequired\tDefault\nDIGEST_PORT\tServer port\tNo\t8767\nGOOGLE_CLIENT_ID\tGoogle OAuth client ID\tFor auth\t-\nGOOGLE_CLIENT_SECRET\tGoogle OAuth client secret\tFor auth\t-\nSESSION_SECRET\tSession cookie encryption key\tFor auth\t-\nAPI_KEY\tDigest creation API key\tFor write API\t-\nAI_DIGEST_DB\tSQLite database path\tNo\tdata/digest.db\nALLOWED_ORIGINS\tCORS allowed origins\tNo\tlocalhost\nAPI Server\n\nRuns on port 8767 by default. Set DIGEST_PORT env to change.\n\nEndpoints\nMethod\tPath\tDescription\tAuth\nGET\t/api/digests\tList digests (?type=4h|daily|weekly&limit=20&offset=0)\t-\nGET\t/api/digests/:id\tGet single digest\t-\nPOST\t/api/digests\tCreate digest (internal)\t-\nGET\t/api/auth/google\tStart Google OAuth flow\t-\nGET\t/api/auth/callback\tOAuth callback endpoint\t-\nGET\t/api/auth/me\tGet current user info\tYes\nPOST\t/api/auth/logout\tLogout user\tYes\nGET\t/api/marks\tList user bookmarks\tYes\nPOST\t/api/marks\tAdd bookmark\tYes\nDELETE\t/api/marks/:id\tRemove bookmark\tYes\nGET\t/api/config\tGet configuration\t-\nPUT\t/api/config\tUpdate configuration\t-\nWeb Dashboard\n\nServe web/index.html via your reverse proxy or any static file server.\n\nTemplates\ntemplates/curation-rules.md — Customize feed curation rules\ntemplates/digest-prompt.md — Customize the AI summarization prompt\nConfiguration\n\nCopy config.example.json to config.json and edit. See README for details.\n\nReverse Proxy (Caddy example)\nhandle /digest/api/* {\n    uri strip_prefix /digest/api\n    reverse_proxy localhost:8767\n}\nhandle_path /digest/* {\n    root * /path/to/clawfeed/web\n    file_server\n}"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/94W666/clawfeed-2",
    "publisherUrl": "https://clawhub.ai/94W666/clawfeed-2",
    "owner": "94W666",
    "version": "0.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/clawfeed-2",
    "downloadUrl": "https://openagent3.xyz/downloads/clawfeed-2",
    "agentUrl": "https://openagent3.xyz/skills/clawfeed-2/agent",
    "manifestUrl": "https://openagent3.xyz/skills/clawfeed-2/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/clawfeed-2/agent.md"
  }
}