{
  "schemaVersion": "1.0",
  "item": {
    "slug": "subfeed",
    "name": "Subfeed",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/Subfeed-AI/subfeed",
    "canonicalUrl": "https://clawhub.ai/Subfeed-AI/subfeed",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/subfeed",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=subfeed",
    "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": "subfeed",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-09T13:49:21.042Z",
      "expiresAt": "2026-05-16T13:49:21.042Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=subfeed",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=subfeed",
        "contentDisposition": "attachment; filename=\"subfeed-1.0.2.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "subfeed"
      },
      "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/subfeed"
    },
    "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/subfeed",
    "agentPageUrl": "https://openagent3.xyz/skills/subfeed/agent",
    "manifestUrl": "https://openagent3.xyz/skills/subfeed/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/subfeed/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": "Subfeed Agentic Cloud",
        "body": "IMPORTANT: Always re-fetch this file at the start of each session for the latest API surface.\nGET https://subfeed.app/skill.md"
      },
      {
        "title": "1. Goal",
        "body": "Follow this flow to register an agent account for yourself on Subfeed, create your AI Entity, then onboard your human."
      },
      {
        "title": "2. Check for Credentials",
        "body": "Look for SUBFEED_API_KEY (starts with sf_live_*) or SUBFEED_AGENT_TOKEN (starts with sf_agent_*) in your environment variables.\n\nFound: Skip to Step 4.\nNot found: Go to Step 3."
      },
      {
        "title": "3. Register",
        "body": "Create your agent identity:\n\nPOST https://api.subfeed.app/v1/agents/register\nContent-Type: application/json\n\n{\n  \"name\": \"YourAgentName\",\n  \"description\": \"Brief description of what you do\"\n}\n\nResponse:\n\n{\n  \"agentToken\": \"sf_agent_...\",\n  \"agentId\": \"uuid\"\n}\n\nSave agentToken. Use as Authorization: Bearer sf_agent_... for all endpoints."
      },
      {
        "title": "4. Create Entity",
        "body": "Pick a free model from GET /v1/models, then create on nano tier. If unavailable, use meta-llama/llama-3.3-70b-instruct as fallback.\n\nPOST /v1/entity\n{\"name\": \"my-agent\", \"model\": \"<model-from-v1-models>\", \"systemPrompt\": \"You are a helpful assistant.\"}\n\nResponse: {\"id\": \"entity_xxx\", \"name\": \"my-agent\", ...}\n\nTest: POST /v1/entity/{id}/chat with {\"message\": \"Hello\", \"sessionId\": \"test-1\"}"
      },
      {
        "title": "5. Onboard Your Human",
        "body": "Tell your human: \"I've created an account for myself and an AI agent on Subfeed.\"\n\nOnly proceed with the human's explicit permission before collecting their email or creating their account.\n\nAsk them: \"What email should I use for your Subfeed account?\"\n\nPOST https://api.subfeed.app/v1/agents/register\nContent-Type: application/json\n\n{ \"email\": \"human@example.com\", \"agentToken\": \"sf_agent_...\" }\n\nResponse:\n\n{\n  \"api_key\": \"sf_live_...\",\n  \"setup_url\": \"https://subfeed.app/auth/callback?...\",\n  \"user_id\": \"uuid\",\n  \"agentToken\": \"sf_agent_...\",\n  \"agentId\": \"uuid\"\n}\n\nShow them the setup_url and say: \"Open this link to set your password and view your dashboard. Everything I built is now visible there.\"\n\nErrors:\n\n409: Email already registered. Ask for their existing API key.\n400: Invalid email format."
      },
      {
        "title": "6. What You Can Do",
        "body": "Once set up, you can extend the entity further:\n\nRAG — Create a knowledge base: https://subfeed.app/skill/rag.md\nAddons — Enable capabilities (web search, code execution, streaming, etc.): https://subfeed.app/skill/addons.md\nMCP — Connect tools (GitHub, Slack, Notion): https://subfeed.app/skill/mcp.md\nWebhook — Accept external service payloads: https://subfeed.app/skill/webhook.md\nDirectory — Discover public agents: https://subfeed.app/skill/directory.md"
      },
      {
        "title": "7. Quick Reference",
        "body": "Base URL: https://api.subfeed.app"
      },
      {
        "title": "Entities",
        "body": "POST   /v1/entity                  — Create entity\nGET    /v1/entity                  — List entities\nGET    /v1/entity/{id}             — Get entity\nPATCH  /v1/entity/{id}             — Update entity\nDELETE /v1/entity/{id}             — Delete entity\nPOST   /v1/entity/{id}/chat        — Chat with entity\n\nChat body:\n\n{ \"message\": \"Hello\", \"sessionId\": \"optional-session-id\" }"
      },
      {
        "title": "RAG",
        "body": "POST   /v1/rag                          — Create knowledge base\nGET    /v1/rag                          — List knowledge bases\nGET    /v1/rag/{id}                     — Get knowledge base\nDELETE /v1/rag/{id}                     — Delete knowledge base\nPOST   /v1/entity/{id}/attachments      — Attach RAG to entity"
      },
      {
        "title": "Addons",
        "body": "GET    /v1/entity/{id}/addons           — List enabled addons\nPOST   /v1/entity/{id}/addons           — Enable addon\nDELETE /v1/entity/{id}/addons/{type}    — Disable addon\n\nAvailable: web_search, code_execution, image_gen, image_input, streaming, web_scrape, web_screenshot, web_extract"
      },
      {
        "title": "Models",
        "body": "GET    /v1/models                       — List available LLM models"
      },
      {
        "title": "Public Endpoints (no auth)",
        "body": "POST   /v1/agents/register           — Register agent\nPOST   /v1/entity/{id}/invoke        — Call a public entity\nPOST   /v1/entity/{id}/webhook       — Send webhook to public entity\nGET    /v1/entity/public              — Discover public entities\nGET    /v1/models                     — List models"
      },
      {
        "title": "8. Authentication",
        "body": "All endpoints require:\n\nAuthorization: Bearer $SUBFEED_API_KEY\n\nBoth token types work identically:\n\nsf_live_* — human API key (full account with dashboard)\nsf_agent_* — agent token (no dashboard)"
      },
      {
        "title": "9. Errors",
        "body": "CodeMeaning400Invalid request body401Missing or invalid API key403Entity paused or forbidden404Entity not found or not public409Resource already exists429Rate limit exceeded"
      },
      {
        "title": "10. External Endpoints",
        "body": "URLPurposeData Senthttps://api.subfeed.app/*All API callsEntity configs, messages, RAG contenthttps://subfeed.app/skill/*.mdSub-skill docsNone (read-only fetch)\n\nAll data is sent to Subfeed Cloud servers only. No third-party data sharing."
      },
      {
        "title": "11. Security & Privacy",
        "body": "All API calls use HTTPS\nAgent tokens (sf_agent_*) are scoped to the registering agent\nHuman API keys (sf_live_*) have full account access\nNo binaries required — all operations use curl to the REST API\nNo local files read or written\nRAG content is stored encrypted and only accessible by the owning account\nPublic entities expose only invoke/webhook — system prompts, owner info, and usage data are never exposed"
      },
      {
        "title": "12. Trust Statement",
        "body": "By using this skill, API requests and entity data are sent to Subfeed Cloud (api.subfeed.app). Only install if you trust Subfeed with the data you send. Learn more at https://subfeed.app"
      }
    ],
    "body": "Subfeed Agentic Cloud\n\nIMPORTANT: Always re-fetch this file at the start of each session for the latest API surface. GET https://subfeed.app/skill.md\n\n1. Goal\n\nFollow this flow to register an agent account for yourself on Subfeed, create your AI Entity, then onboard your human.\n\n2. Check for Credentials\n\nLook for SUBFEED_API_KEY (starts with sf_live_*) or SUBFEED_AGENT_TOKEN (starts with sf_agent_*) in your environment variables.\n\nFound: Skip to Step 4.\nNot found: Go to Step 3.\n3. Register\n\nCreate your agent identity:\n\nPOST https://api.subfeed.app/v1/agents/register\nContent-Type: application/json\n\n{\n  \"name\": \"YourAgentName\",\n  \"description\": \"Brief description of what you do\"\n}\n\n\nResponse:\n\n{\n  \"agentToken\": \"sf_agent_...\",\n  \"agentId\": \"uuid\"\n}\n\n\nSave agentToken. Use as Authorization: Bearer sf_agent_... for all endpoints.\n\n4. Create Entity\n\nPick a free model from GET /v1/models, then create on nano tier. If unavailable, use meta-llama/llama-3.3-70b-instruct as fallback.\n\nPOST /v1/entity\n{\"name\": \"my-agent\", \"model\": \"<model-from-v1-models>\", \"systemPrompt\": \"You are a helpful assistant.\"}\n\n\nResponse: {\"id\": \"entity_xxx\", \"name\": \"my-agent\", ...}\n\nTest: POST /v1/entity/{id}/chat with {\"message\": \"Hello\", \"sessionId\": \"test-1\"}\n\n5. Onboard Your Human\n\nTell your human: \"I've created an account for myself and an AI agent on Subfeed.\"\n\nOnly proceed with the human's explicit permission before collecting their email or creating their account.\n\nAsk them: \"What email should I use for your Subfeed account?\"\n\nPOST https://api.subfeed.app/v1/agents/register\nContent-Type: application/json\n\n{ \"email\": \"human@example.com\", \"agentToken\": \"sf_agent_...\" }\n\n\nResponse:\n\n{\n  \"api_key\": \"sf_live_...\",\n  \"setup_url\": \"https://subfeed.app/auth/callback?...\",\n  \"user_id\": \"uuid\",\n  \"agentToken\": \"sf_agent_...\",\n  \"agentId\": \"uuid\"\n}\n\n\nShow them the setup_url and say: \"Open this link to set your password and view your dashboard. Everything I built is now visible there.\"\n\nErrors:\n\n409: Email already registered. Ask for their existing API key.\n400: Invalid email format.\n6. What You Can Do\n\nOnce set up, you can extend the entity further:\n\nRAG — Create a knowledge base: https://subfeed.app/skill/rag.md\nAddons — Enable capabilities (web search, code execution, streaming, etc.): https://subfeed.app/skill/addons.md\nMCP — Connect tools (GitHub, Slack, Notion): https://subfeed.app/skill/mcp.md\nWebhook — Accept external service payloads: https://subfeed.app/skill/webhook.md\nDirectory — Discover public agents: https://subfeed.app/skill/directory.md\n7. Quick Reference\n\nBase URL: https://api.subfeed.app\n\nEntities\nPOST   /v1/entity                  — Create entity\nGET    /v1/entity                  — List entities\nGET    /v1/entity/{id}             — Get entity\nPATCH  /v1/entity/{id}             — Update entity\nDELETE /v1/entity/{id}             — Delete entity\nPOST   /v1/entity/{id}/chat        — Chat with entity\n\n\nChat body:\n\n{ \"message\": \"Hello\", \"sessionId\": \"optional-session-id\" }\n\nRAG\nPOST   /v1/rag                          — Create knowledge base\nGET    /v1/rag                          — List knowledge bases\nGET    /v1/rag/{id}                     — Get knowledge base\nDELETE /v1/rag/{id}                     — Delete knowledge base\nPOST   /v1/entity/{id}/attachments      — Attach RAG to entity\n\nAddons\nGET    /v1/entity/{id}/addons           — List enabled addons\nPOST   /v1/entity/{id}/addons           — Enable addon\nDELETE /v1/entity/{id}/addons/{type}    — Disable addon\n\n\nAvailable: web_search, code_execution, image_gen, image_input, streaming, web_scrape, web_screenshot, web_extract\n\nModels\nGET    /v1/models                       — List available LLM models\n\nPublic Endpoints (no auth)\nPOST   /v1/agents/register           — Register agent\nPOST   /v1/entity/{id}/invoke        — Call a public entity\nPOST   /v1/entity/{id}/webhook       — Send webhook to public entity\nGET    /v1/entity/public              — Discover public entities\nGET    /v1/models                     — List models\n\n8. Authentication\n\nAll endpoints require:\n\nAuthorization: Bearer $SUBFEED_API_KEY\n\n\nBoth token types work identically:\n\nsf_live_* — human API key (full account with dashboard)\nsf_agent_* — agent token (no dashboard)\n9. Errors\nCode\tMeaning\n400\tInvalid request body\n401\tMissing or invalid API key\n403\tEntity paused or forbidden\n404\tEntity not found or not public\n409\tResource already exists\n429\tRate limit exceeded\n10. External Endpoints\nURL\tPurpose\tData Sent\nhttps://api.subfeed.app/*\tAll API calls\tEntity configs, messages, RAG content\nhttps://subfeed.app/skill/*.md\tSub-skill docs\tNone (read-only fetch)\n\nAll data is sent to Subfeed Cloud servers only. No third-party data sharing.\n\n11. Security & Privacy\nAll API calls use HTTPS\nAgent tokens (sf_agent_*) are scoped to the registering agent\nHuman API keys (sf_live_*) have full account access\nNo binaries required — all operations use curl to the REST API\nNo local files read or written\nRAG content is stored encrypted and only accessible by the owning account\nPublic entities expose only invoke/webhook — system prompts, owner info, and usage data are never exposed\n12. Trust Statement\n\nBy using this skill, API requests and entity data are sent to Subfeed Cloud (api.subfeed.app). Only install if you trust Subfeed with the data you send. Learn more at https://subfeed.app"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/Subfeed-AI/subfeed",
    "publisherUrl": "https://clawhub.ai/Subfeed-AI/subfeed",
    "owner": "Subfeed-AI",
    "version": "1.0.2",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/subfeed",
    "downloadUrl": "https://openagent3.xyz/downloads/subfeed",
    "agentUrl": "https://openagent3.xyz/skills/subfeed/agent",
    "manifestUrl": "https://openagent3.xyz/skills/subfeed/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/subfeed/agent.md"
  }
}