{
  "schemaVersion": "1.0",
  "item": {
    "slug": "feishu-chat",
    "name": "Feishu Chat",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/Heimo-He/feishu-chat",
    "canonicalUrl": "https://clawhub.ai/Heimo-He/feishu-chat",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/feishu-chat",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=feishu-chat",
    "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/feishu-chat"
    },
    "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/feishu-chat",
    "agentPageUrl": "https://openagent3.xyz/skills/feishu-chat/agent",
    "manifestUrl": "https://openagent3.xyz/skills/feishu-chat/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/feishu-chat/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": "Quick Start: Configure renderMode",
        "body": "⚠️ IMPORTANT: Set renderMode explicitly for stable message formatting\n\n# Recommended configuration\nchannels:\n  feishu:\n    renderMode: \"card\"  # Always use card format\n\nWhy? The default \"auto\" mode causes unpredictable format switching (raw vs card), creating poor user experience.\n\nConfiguration:\n\nopenclaw config set channels.feishu.renderMode \"card\"\nopenclaw gateway restart\n\nVerify:\n\nopenclaw config get channels.feishu.renderMode"
      },
      {
        "title": "Prerequisites",
        "body": "In a Feishu group - OpenClaw connected to Feishu\nConfigure renderMode - Set to \"card\" for consistent formatting\nKnow member IDs:\n\nHuman: open_id (ou_xxx format)\nBot: App ID (cli_xxx format)"
      },
      {
        "title": "The Problem: Raw vs Card Mixing",
        "body": "Without proper renderMode configuration, messages can inconsistently appear as:\n\nRaw text: Plain markdown source, no formatting\nCard format: Rendered markdown with syntax highlighting, tables, links"
      },
      {
        "title": "The Solution: Explicit renderMode",
        "body": "ModeBehaviorUse CaseautoDetects content, uses card for code/tables❌ Avoid - unpredictablerawAlways plain textSimple text-only responsescardAlways interactive card✅ Recommended - consistent\n\nRecommended: renderMode: \"card\" for all production use."
      },
      {
        "title": "⚠️ CRITICAL: Only Use ONE Method",
        "body": "DO NOT use both direct reply and message tool for the same content! This will send two messages.\n\nChoose ONE:\n\nPlain text → message tool only\nMarkdown → direct reply only"
      },
      {
        "title": "Two Methods",
        "body": "MethodToolRender ModeUse Casemessage toolmessageRaw (plain text)Plain text, @ mentionsDirect replySession replyCard (with Markdown)Markdown formatted messages"
      },
      {
        "title": "Raw Mode (Plain Text)",
        "body": "When to use: Plain text messages, @ mentions\n\nHow to send:\n\nmessage({\n  action: \"send\",\n  channel: \"feishu\",\n  target: \"oc_xxx\",\n  message: \"Plain text content\"\n})\n\n@ Mention format:\n\nmessage({\n  action: \"send\",\n  channel: \"feishu\",\n  target: \"oc_xxx\",\n  message: \"<at user_id=\\\"ou_xxx\\\">nickname</at> Hello!\"\n})\n\nRaw Mode Limitations:\n\n❌ No Markdown rendering (bold, italic, code blocks won't render)\n❌ Tables won't render\n❌ Links won't render\n✅ @ mentions work correctly"
      },
      {
        "title": "Card Mode (Markdown)",
        "body": "When to use: Formatted messages with code blocks, tables, bold/italic text\n\nHow to send: Direct reply in session with Markdown elements.\n\nCard Mode Triggers (any of these):\n\nCode blocks  \nTables | table |\nBold **bold**\nItalic *italic*\nStrikethrough ~~text~~\nLinks [link](url)\nHeadings # heading\nLists - item or 1. item\n\n@ Mention format:\n\n<at id=ou_xxx></at> This is Card mode @ mention\n\n**Markdown content** renders correctly\n\nSupported in Card Mode:\n\nStyleSyntaxStatusBold**bold**✅ SupportedItalic*italic*✅ SupportedStrikethrough~~text~~✅ SupportedColor<font color='red'>text</font>✅ SupportedLinks[link](https://xxx)✅ SupportedHeadings# heading✅ SupportedLists- item or 1. item✅ SupportedCode blockscode✅ SupportedTables`table\n\nNot Supported in Card Mode:\n\nStyleSyntaxStatusBlockquote> quote❌ Not supportedInline code`code`❌ UnstableHorizontal rule---❌ Not supportedComplex nestingMultiple levels❌ Unstable\n\nBest Practice for Card Mode:\n\nUse **bold** for emphasis\nUse *italic* for light emphasis\nUse numbered lists 1. or bullet lists -\nAvoid ---, >, and inline code\nKeep formatting simple"
      },
      {
        "title": "Avoid Auto Mode",
        "body": "Problem: Auto mode can incorrectly choose between Raw and Card.\n\nBest Practice:\n\nPlain text → Use message tool (Raw mode)\nMarkdown content → Direct reply (Card mode)\n\nDon't:\n\nUse message tool for Markdown (won't render)\nUse complex structures in Card mode (may trigger Raw incorrectly)"
      },
      {
        "title": "⚠️ Important: Bots Only See @ Mentioned Messages",
        "body": "Bots can only see messages that @ mention them! If a group member sends a message without @ mentioning the bot, the bot won't receive it.\n\nThis means:\n\nTo identify a human member's open_id, they must @ mention the bot and send a message\nThe bot cannot see past messages where it wasn't mentioned"
      },
      {
        "title": "How to Get Member IDs",
        "body": "Human open_id (must @ mention bot):\n\nAsk the human to @ mention the bot and send any message\nWhen the message arrives, the system shows:\n[Feishu oc_xxx:ou_xxx timestamp] nickname: message content\nThe ou_xxx is the sender's open_id\n\nBot App ID (requires user to provide):\n\nGo to Feishu Developer Console: https://open.feishu.cn/app\nClick on the bot you want to view\nIn \"Application Credentials\" (应用凭证), copy the App ID (cli_xxx format)\n@ mention the bot and send the App ID"
      },
      {
        "title": "Maintain Member List",
        "body": "Store member info in memory file:\n\n## Group Members (oc_xxx)\n### Humans\n- nickname1: `ou_xxx`\n- nickname2: `ou_xxx`\n\n### AI Bots\n- bot1: `cli_xxx` (must @ to receive messages)"
      },
      {
        "title": "@ Format Difference (Critical!)",
        "body": "Mode@ FormatExampleRaw (message tool)<at user_id=\"ID\">nickname</at><at user_id=\"ou_xxx\">kk</at>Card (direct reply)<at id=ID></at><at id=ou_xxx></at>"
      },
      {
        "title": "@ Different Target Types",
        "body": "@ TargetID TypeRaw FormatCard FormatHumanopen_id (ou_xxx)<at user_id=\"ou_xxx\">nickname</at><at id=ou_xxx></at>BotApp ID (cli_xxx)<at user_id=\"cli_xxx\">botname</at><at id=cli_xxx></at>Everyone\"all\"<at user_id=\"all\">everyone</at><at id=all></at>"
      },
      {
        "title": "@ Bot vs @ Human",
        "body": "Important difference:\n\nBots: MUST be @ mentioned to receive messages! Without @, bots won't get notified\nHumans: Can see all group messages, @ not required\n\n⚠️ Feishu Limitation: Bot-to-Bot Messages\n\nA bot CAN send messages and @ mention another bot\nBut bots can only receive messages from human accounts\nBots cannot receive messages from other bots\nTherefore, @ mentioning another bot will NOT notify that bot\n\nPractical implication:\n\nIf you need to communicate with another bot, ask a human to send the message instead\nBot-to-bot communication is not possible in Feishu groups\n\nExample - @ Bot:\n\n// Raw mode\nmessage({\n  action: \"send\",\n  channel: \"feishu\",\n  target: \"oc_xxx\",\n  message: \"<at user_id=\\\"cli_xxx\\\">botname</at> Please reply!\"\n})\n\n// Card mode\n<at id=cli_xxx></at> Please reply!\n\n**Markdown content**"
      },
      {
        "title": "@ Everyone",
        "body": "Note: Requires group permission (Group Settings > Group Management > Who can @everyone)\n\n// Raw mode\nmessage({\n  action: \"send\",\n  channel: \"feishu\",\n  target: \"oc_xxx\",\n  message: \"<at user_id=\\\"all\\\">everyone</at> Important announcement!\"\n})\n\n// Card mode\n<at id=all></at> Important announcement!"
      },
      {
        "title": "Common @ Mistakes",
        "body": "Raw mode errors:\n\n@nickname - Plain text, no notification\n@{nickname} - Plain text\n<at id=\"ou_xxx\"></at> - id attribute doesn't work in Raw mode\n\nCard mode errors:\n\n<at user_id=\"ou_xxx\">nickname</at> - user_id attribute doesn't work in Card mode"
      },
      {
        "title": "Message Decision Tree",
        "body": "Need to send message\n    │\n    ├─ Plain text only?\n    │   └─ YES → message tool (Raw mode)\n    │\n    └─ Need Markdown?\n        └─ YES → Direct reply (Card mode)"
      },
      {
        "title": "@ Mention Decision Tree",
        "body": "Need to @ mention\n    │\n    ├─ Using message tool?\n    │   └─ YES → <at user_id=\"ID\">nickname</at>\n    │\n    └─ Direct reply (Card mode)?\n        └─ YES → <at id=ID></at>"
      },
      {
        "title": "ID Format Reference",
        "body": "TypeFormatExampleHuman open_idou_xxxou_example123abcBot App IDcli_xxxcli_example456defGroup chat_idoc_xxxoc_example789ghi"
      },
      {
        "title": "5. Important Notes",
        "body": "Card and Raw mode use different @ formats - Wrong format = @ fails\nBots MUST be @ mentioned to receive messages - Humans don't need @\nBot-to-bot communication is NOT possible - Bots can only receive messages from humans, not other bots\nmessage tool only sends Raw mode - No Markdown rendering\n@everyone requires group permission\nAvoid unsupported styles in Card mode (blockquote, inline code, horizontal rule)"
      },
      {
        "title": "renderMode Settings",
        "body": "Location: OpenClaw config file or environment\n\nQuick Setup:\n\n# Set to card mode (recommended)\nopenclaw config set channels.feishu.renderMode \"card\"\nopenclaw gateway restart\n\nEnvironment-specific configurations:\n\nDevelopment:\n\nchannels:\n  feishu:\n    renderMode: \"raw\"  # Easier debugging\n    dmPolicy: \"open\"   # Easier testing\n\nProduction:\n\nchannels:\n  feishu:\n    renderMode: \"card\"      # Consistent formatting\n    dmPolicy: \"pairing\"     # Security\n    requireMention: true    # Avoid spam"
      },
      {
        "title": "Troubleshooting",
        "body": "Messages appear as raw markdown:\n\nCheck: openclaw config get channels.feishu.renderMode\nSet: openclaw config set channels.feishu.renderMode \"card\"\nRestart: openclaw gateway restart\n\nFormat switches between raw and card:\n\nCause: Using renderMode: \"auto\"\nFix: Change to \"card\" or \"raw\" explicitly\n\nProactive messages not using card:\n\nExpected: Proactive messages (via message tool) always use plain text\nWorkaround: Have user send a message first, then reply"
      },
      {
        "title": "Source",
        "body": "Tested on: OpenClaw Feishu integration\nTest date: 2026-02-27 ~ 2026-02-28\nSource files:\n\n/home/admin/.openclaw/extensions/feishu/src/bot.ts\n/home/admin/.openclaw/extensions/feishu/src/reply-dispatcher.ts\n/home/admin/.openclaw/extensions/feishu/src/mention.ts\n/home/admin/.openclaw/extensions/feishu/src/send.ts"
      }
    ],
    "body": "Feishu Group Chat Guide\nQuick Start: Configure renderMode\n\n⚠️ IMPORTANT: Set renderMode explicitly for stable message formatting\n\n# Recommended configuration\nchannels:\n  feishu:\n    renderMode: \"card\"  # Always use card format\n\n\nWhy? The default \"auto\" mode causes unpredictable format switching (raw vs card), creating poor user experience.\n\nConfiguration:\n\nopenclaw config set channels.feishu.renderMode \"card\"\nopenclaw gateway restart\n\n\nVerify:\n\nopenclaw config get channels.feishu.renderMode\n\nPrerequisites\nIn a Feishu group - OpenClaw connected to Feishu\nConfigure renderMode - Set to \"card\" for consistent formatting\nKnow member IDs:\nHuman: open_id (ou_xxx format)\nBot: App ID (cli_xxx format)\n0. Message Format Stability\nThe Problem: Raw vs Card Mixing\n\nWithout proper renderMode configuration, messages can inconsistently appear as:\n\nRaw text: Plain markdown source, no formatting\nCard format: Rendered markdown with syntax highlighting, tables, links\nThe Solution: Explicit renderMode\nMode\tBehavior\tUse Case\nauto\tDetects content, uses card for code/tables\t❌ Avoid - unpredictable\nraw\tAlways plain text\tSimple text-only responses\ncard\tAlways interactive card\t✅ Recommended - consistent\n\nRecommended: renderMode: \"card\" for all production use.\n\n1. Message Sending\n⚠️ CRITICAL: Only Use ONE Method\n\nDO NOT use both direct reply and message tool for the same content! This will send two messages.\n\nChoose ONE:\n\nPlain text → message tool only\nMarkdown → direct reply only\nTwo Methods\nMethod\tTool\tRender Mode\tUse Case\nmessage tool\tmessage\tRaw (plain text)\tPlain text, @ mentions\nDirect reply\tSession reply\tCard (with Markdown)\tMarkdown formatted messages\nRaw Mode (Plain Text)\n\nWhen to use: Plain text messages, @ mentions\n\nHow to send:\n\nmessage({\n  action: \"send\",\n  channel: \"feishu\",\n  target: \"oc_xxx\",\n  message: \"Plain text content\"\n})\n\n\n@ Mention format:\n\nmessage({\n  action: \"send\",\n  channel: \"feishu\",\n  target: \"oc_xxx\",\n  message: \"<at user_id=\\\"ou_xxx\\\">nickname</at> Hello!\"\n})\n\n\nRaw Mode Limitations:\n\n❌ No Markdown rendering (bold, italic, code blocks won't render)\n❌ Tables won't render\n❌ Links won't render\n✅ @ mentions work correctly\nCard Mode (Markdown)\n\nWhen to use: Formatted messages with code blocks, tables, bold/italic text\n\nHow to send: Direct reply in session with Markdown elements.\n\nCard Mode Triggers (any of these):\n\nCode blocks\nTables | table |\nBold **bold**\nItalic *italic*\nStrikethrough ~~text~~\nLinks [link](url)\nHeadings # heading\nLists - item or 1. item\n\n@ Mention format:\n\n<at id=ou_xxx></at> This is Card mode @ mention\n\n**Markdown content** renders correctly\n\n\nSupported in Card Mode:\n\nStyle\tSyntax\tStatus\nBold\t**bold**\t✅ Supported\nItalic\t*italic*\t✅ Supported\nStrikethrough\t~~text~~\t✅ Supported\nColor\t<font color='red'>text</font>\t✅ Supported\nLinks\t[link](https://xxx)\t✅ Supported\nHeadings\t# heading\t✅ Supported\nLists\t- item or 1. item\t✅ Supported\nCode blocks\tcode\t✅ Supported\nTables\t`\ttable\n\nNot Supported in Card Mode:\n\nStyle\tSyntax\tStatus\nBlockquote\t> quote\t❌ Not supported\nInline code\t`code`\t❌ Unstable\nHorizontal rule\t---\t❌ Not supported\nComplex nesting\tMultiple levels\t❌ Unstable\n\nBest Practice for Card Mode:\n\nUse **bold** for emphasis\nUse *italic* for light emphasis\nUse numbered lists 1. or bullet lists -\nAvoid ---, >, and inline code\nKeep formatting simple\nAvoid Auto Mode\n\nProblem: Auto mode can incorrectly choose between Raw and Card.\n\nBest Practice:\n\nPlain text → Use message tool (Raw mode)\nMarkdown content → Direct reply (Card mode)\n\nDon't:\n\nUse message tool for Markdown (won't render)\nUse complex structures in Card mode (may trigger Raw incorrectly)\n2. Group Member Management\n⚠️ Important: Bots Only See @ Mentioned Messages\n\nBots can only see messages that @ mention them! If a group member sends a message without @ mentioning the bot, the bot won't receive it.\n\nThis means:\n\nTo identify a human member's open_id, they must @ mention the bot and send a message\nThe bot cannot see past messages where it wasn't mentioned\nHow to Get Member IDs\n\nHuman open_id (must @ mention bot):\n\nAsk the human to @ mention the bot and send any message\nWhen the message arrives, the system shows: [Feishu oc_xxx:ou_xxx timestamp] nickname: message content\nThe ou_xxx is the sender's open_id\n\nBot App ID (requires user to provide):\n\nGo to Feishu Developer Console: https://open.feishu.cn/app\nClick on the bot you want to view\nIn \"Application Credentials\" (应用凭证), copy the App ID (cli_xxx format)\n@ mention the bot and send the App ID\nMaintain Member List\n\nStore member info in memory file:\n\n## Group Members (oc_xxx)\n### Humans\n- nickname1: `ou_xxx`\n- nickname2: `ou_xxx`\n\n### AI Bots\n- bot1: `cli_xxx` (must @ to receive messages)\n\n3. @ Mention Tips\n@ Format Difference (Critical!)\nMode\t@ Format\tExample\nRaw (message tool)\t<at user_id=\"ID\">nickname</at>\t<at user_id=\"ou_xxx\">kk</at>\nCard (direct reply)\t<at id=ID></at>\t<at id=ou_xxx></at>\n@ Different Target Types\n@ Target\tID Type\tRaw Format\tCard Format\nHuman\topen_id (ou_xxx)\t<at user_id=\"ou_xxx\">nickname</at>\t<at id=ou_xxx></at>\nBot\tApp ID (cli_xxx)\t<at user_id=\"cli_xxx\">botname</at>\t<at id=cli_xxx></at>\nEveryone\t\"all\"\t<at user_id=\"all\">everyone</at>\t<at id=all></at>\n@ Bot vs @ Human\n\nImportant difference:\n\nBots: MUST be @ mentioned to receive messages! Without @, bots won't get notified\nHumans: Can see all group messages, @ not required\n\n⚠️ Feishu Limitation: Bot-to-Bot Messages\n\nA bot CAN send messages and @ mention another bot\nBut bots can only receive messages from human accounts\nBots cannot receive messages from other bots\nTherefore, @ mentioning another bot will NOT notify that bot\n\nPractical implication:\n\nIf you need to communicate with another bot, ask a human to send the message instead\nBot-to-bot communication is not possible in Feishu groups\n\nExample - @ Bot:\n\n// Raw mode\nmessage({\n  action: \"send\",\n  channel: \"feishu\",\n  target: \"oc_xxx\",\n  message: \"<at user_id=\\\"cli_xxx\\\">botname</at> Please reply!\"\n})\n\n// Card mode\n<at id=cli_xxx></at> Please reply!\n\n**Markdown content**\n\n@ Everyone\n\nNote: Requires group permission (Group Settings > Group Management > Who can @everyone)\n\n// Raw mode\nmessage({\n  action: \"send\",\n  channel: \"feishu\",\n  target: \"oc_xxx\",\n  message: \"<at user_id=\\\"all\\\">everyone</at> Important announcement!\"\n})\n\n// Card mode\n<at id=all></at> Important announcement!\n\nCommon @ Mistakes\n\nRaw mode errors:\n\n@nickname - Plain text, no notification\n@{nickname} - Plain text\n<at id=\"ou_xxx\"></at> - id attribute doesn't work in Raw mode\n\nCard mode errors:\n\n<at user_id=\"ou_xxx\">nickname</at> - user_id attribute doesn't work in Card mode\n4. Quick Reference\nMessage Decision Tree\nNeed to send message\n    │\n    ├─ Plain text only?\n    │   └─ YES → message tool (Raw mode)\n    │\n    └─ Need Markdown?\n        └─ YES → Direct reply (Card mode)\n\n@ Mention Decision Tree\nNeed to @ mention\n    │\n    ├─ Using message tool?\n    │   └─ YES → <at user_id=\"ID\">nickname</at>\n    │\n    └─ Direct reply (Card mode)?\n        └─ YES → <at id=ID></at>\n\nID Format Reference\nType\tFormat\tExample\nHuman open_id\tou_xxx\tou_example123abc\nBot App ID\tcli_xxx\tcli_example456def\nGroup chat_id\toc_xxx\toc_example789ghi\n5. Important Notes\nCard and Raw mode use different @ formats - Wrong format = @ fails\nBots MUST be @ mentioned to receive messages - Humans don't need @\nBot-to-bot communication is NOT possible - Bots can only receive messages from humans, not other bots\nmessage tool only sends Raw mode - No Markdown rendering\n@everyone requires group permission\nAvoid unsupported styles in Card mode (blockquote, inline code, horizontal rule)\n6. Configuration Reference\nrenderMode Settings\n\nLocation: OpenClaw config file or environment\n\nQuick Setup:\n\n# Set to card mode (recommended)\nopenclaw config set channels.feishu.renderMode \"card\"\nopenclaw gateway restart\n\n\nEnvironment-specific configurations:\n\nDevelopment:\n\nchannels:\n  feishu:\n    renderMode: \"raw\"  # Easier debugging\n    dmPolicy: \"open\"   # Easier testing\n\n\nProduction:\n\nchannels:\n  feishu:\n    renderMode: \"card\"      # Consistent formatting\n    dmPolicy: \"pairing\"     # Security\n    requireMention: true    # Avoid spam\n\nTroubleshooting\n\nMessages appear as raw markdown:\n\nCheck: openclaw config get channels.feishu.renderMode\nSet: openclaw config set channels.feishu.renderMode \"card\"\nRestart: openclaw gateway restart\n\nFormat switches between raw and card:\n\nCause: Using renderMode: \"auto\"\nFix: Change to \"card\" or \"raw\" explicitly\n\nProactive messages not using card:\n\nExpected: Proactive messages (via message tool) always use plain text\nWorkaround: Have user send a message first, then reply\nSource\nTested on: OpenClaw Feishu integration\nTest date: 2026-02-27 ~ 2026-02-28\nSource files:\n/home/admin/.openclaw/extensions/feishu/src/bot.ts\n/home/admin/.openclaw/extensions/feishu/src/reply-dispatcher.ts\n/home/admin/.openclaw/extensions/feishu/src/mention.ts\n/home/admin/.openclaw/extensions/feishu/src/send.ts"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/Heimo-He/feishu-chat",
    "publisherUrl": "https://clawhub.ai/Heimo-He/feishu-chat",
    "owner": "Heimo-He",
    "version": "1.1.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/feishu-chat",
    "downloadUrl": "https://openagent3.xyz/downloads/feishu-chat",
    "agentUrl": "https://openagent3.xyz/skills/feishu-chat/agent",
    "manifestUrl": "https://openagent3.xyz/skills/feishu-chat/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/feishu-chat/agent.md"
  }
}