{
  "schemaVersion": "1.0",
  "item": {
    "slug": "feishu-file-sender",
    "name": "Feishu File Sender",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/ziwenwang28/feishu-file-sender",
    "canonicalUrl": "https://clawhub.ai/ziwenwang28/feishu-file-sender",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/feishu-file-sender",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=feishu-file-sender",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "clawdis.yaml",
      "scripts/feishu_file_sender.py"
    ],
    "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-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-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/feishu-file-sender"
    },
    "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-file-sender",
    "agentPageUrl": "https://openagent3.xyz/skills/feishu-file-sender/agent",
    "manifestUrl": "https://openagent3.xyz/skills/feishu-file-sender/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/feishu-file-sender/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": "Feishu File Sender | 飞书文件发送器",
        "body": "OpenClaw agent 在本地生成文件，但飞书渠道插件只支持文本消息，没有文件投递能力。本 skill 通过直接调用飞书 OpenAPI（上传+发送）补齐这一底层能力，使生成的文件能回传到聊天中。\n\nOpenClaw agents generate files locally, but the Feishu channel integration only supports text messages and does not provide native file delivery. This skill fills that architectural gap by calling Feishu OpenAPI directly (upload + send), enabling files to be delivered back to chat.\n\n将本地文件上传到飞书并作为文件消息发送。\n\nUpload a local file to Feishu and send it as a file message."
      },
      {
        "title": "快速开始 | Quick Start",
        "body": "python3 scripts/feishu_file_sender.py \\\n  --file /absolute/path/to/report.xlsx \\\n  --receive-id oc_xxx"
      },
      {
        "title": "使用方法 | Usage",
        "body": "python3 scripts/feishu_file_sender.py \\\n  --file /absolute/path/to/file \\\n  --receive-id <chat_id|open_id> \\\n  --receive-id-type <chat_id|open_id|user_id>"
      },
      {
        "title": "参数说明 | Arguments",
        "body": "--file（必填）：本地文件绝对路径。\n\n\n--receive-id（可选）：目标 chat_id 或 open_id。若省略，脚本会读取\nOPENCLAW_CHAT_ID（或 OPENCLAW_RECEIVE_ID / FEISHU_CHAT_ID）。\n\n\n--receive-id-type（可选）：若省略，将根据前缀自动识别：\n\noc_ → chat_id\nou_ → open_id\non_ → user_id\n\n\n\n--file-type（可选）：飞书上传的文件类型，默认 stream。\n\n\n--file (required): Absolute path to the local file.\n\n\n--receive-id (optional): Target chat_id or open_id. If omitted, the script\nreads OPENCLAW_CHAT_ID (or OPENCLAW_RECEIVE_ID / FEISHU_CHAT_ID).\n\n\n--receive-id-type (optional): If omitted, auto-detect by prefix:\n\noc_ → chat_id\nou_ → open_id\non_ → user_id\n\n\n\n--file-type (optional): Feishu file upload type, default stream."
      },
      {
        "title": "工作原理 | How It Works",
        "body": "通过 cwd 匹配 OpenClaw 工作区，解析当前 agent id。\n\n\n根据 agent id 从 ~/.openclaw/openclaw.json 读取 appId/appSecret。\n\n\n调用飞书 上传文件 API 获取 file_key。\n\n\n调用飞书 发送消息 API 发送文件。\n\n\nResolve the current agent id by matching cwd to OpenClaw workspace path.\n\n\nRead appId/appSecret from ~/.openclaw/openclaw.json based on the agent id.\n\n\nCall Feishu Upload File API to get file_key.\n\n\nCall Feishu Send Message API to deliver the file."
      },
      {
        "title": "错误处理 | Error Handling",
        "body": "缺少凭证 → 确保 channels.feishu.accounts 存在于\n~/.openclaw/openclaw.json，且 bindings 映射 agentId → accountId。\n\n\n机器人不在群内（230002） → 将机器人加入目标群或换一个群。\n\n\n缺少 receive_id → 传入 --receive-id 或设置 OPENCLAW_CHAT_ID。\n\n\nHTTP 错误 → 查看飞书错误返回中的 log_id 进行排查。\n\n\nMissing credentials → Ensure channels.feishu.accounts exists in\n~/.openclaw/openclaw.json and bindings map agentId → accountId.\n\n\nBot not in chat (code 230002) → Add the bot to the target chat or use a\nchat where the bot is present.\n\n\nMissing receive_id → Pass --receive-id or set OPENCLAW_CHAT_ID.\n\n\nHTTP errors → Check the returned log_id in Feishu error payload."
      },
      {
        "title": "安全说明 | Security",
        "body": "本技能会从本机 OpenClaw 配置中读取飞书凭证（~/.openclaw/openclaw.json）：\n\nchannels.feishu.accounts.*.appId\nchannels.feishu.accounts.*.appSecret\n\n这些凭证仅用于获取 tenant access token 并发送文件。技能不会存储或向其他地方传输凭证。\n\nThis skill reads Feishu credentials from the local OpenClaw config\n(~/.openclaw/openclaw.json) on the machine where it runs:\n\nchannels.feishu.accounts.*.appId\nchannels.feishu.accounts.*.appSecret\n\nThese values are used only to obtain a tenant access token and send the file.\nThe skill does not store or transmit credentials anywhere else."
      },
      {
        "title": "备注 | Notes",
        "body": "本技能面向 所有 agent 设计，会自动读取当前工作区来选择正确的\n飞书应用凭证。\n\n\n建议通过入站 chat_id 发送到 当前聊天。\n\n\nThis skill is designed for all agents; it reads the active workspace to\nchoose the correct Feishu app credentials automatically.\n\n\nPrefer sending to the current chat by passing the inbound chat_id."
      },
      {
        "title": "随附脚本 | Bundled Script",
        "body": "scripts/feishu_file_sender.py"
      }
    ],
    "body": "Feishu File Sender | 飞书文件发送器\n\nOpenClaw agent 在本地生成文件，但飞书渠道插件只支持文本消息，没有文件投递能力。本 skill 通过直接调用飞书 OpenAPI（上传+发送）补齐这一底层能力，使生成的文件能回传到聊天中。\n\nOpenClaw agents generate files locally, but the Feishu channel integration only supports text messages and does not provide native file delivery. This skill fills that architectural gap by calling Feishu OpenAPI directly (upload + send), enabling files to be delivered back to chat.\n\n将本地文件上传到飞书并作为文件消息发送。\n\nUpload a local file to Feishu and send it as a file message.\n\n快速开始 | Quick Start\npython3 scripts/feishu_file_sender.py \\\n  --file /absolute/path/to/report.xlsx \\\n  --receive-id oc_xxx\n\n使用方法 | Usage\npython3 scripts/feishu_file_sender.py \\\n  --file /absolute/path/to/file \\\n  --receive-id <chat_id|open_id> \\\n  --receive-id-type <chat_id|open_id|user_id>\n\n参数说明 | Arguments\n\n--file（必填）：本地文件绝对路径。\n\n--receive-id（可选）：目标 chat_id 或 open_id。若省略，脚本会读取 OPENCLAW_CHAT_ID（或 OPENCLAW_RECEIVE_ID / FEISHU_CHAT_ID）。\n\n--receive-id-type（可选）：若省略，将根据前缀自动识别：\n\noc_ → chat_id\nou_ → open_id\non_ → user_id\n\n--file-type（可选）：飞书上传的文件类型，默认 stream。\n\n--file (required): Absolute path to the local file.\n\n--receive-id (optional): Target chat_id or open_id. If omitted, the script reads OPENCLAW_CHAT_ID (or OPENCLAW_RECEIVE_ID / FEISHU_CHAT_ID).\n\n--receive-id-type (optional): If omitted, auto-detect by prefix:\n\noc_ → chat_id\nou_ → open_id\non_ → user_id\n\n--file-type (optional): Feishu file upload type, default stream.\n\n工作原理 | How It Works\n\n通过 cwd 匹配 OpenClaw 工作区，解析当前 agent id。\n\n根据 agent id 从 ~/.openclaw/openclaw.json 读取 appId/appSecret。\n\n调用飞书 上传文件 API 获取 file_key。\n\n调用飞书 发送消息 API 发送文件。\n\nResolve the current agent id by matching cwd to OpenClaw workspace path.\n\nRead appId/appSecret from ~/.openclaw/openclaw.json based on the agent id.\n\nCall Feishu Upload File API to get file_key.\n\nCall Feishu Send Message API to deliver the file.\n\n错误处理 | Error Handling\n\n缺少凭证 → 确保 channels.feishu.accounts 存在于 ~/.openclaw/openclaw.json，且 bindings 映射 agentId → accountId。\n\n机器人不在群内（230002） → 将机器人加入目标群或换一个群。\n\n缺少 receive_id → 传入 --receive-id 或设置 OPENCLAW_CHAT_ID。\n\nHTTP 错误 → 查看飞书错误返回中的 log_id 进行排查。\n\nMissing credentials → Ensure channels.feishu.accounts exists in ~/.openclaw/openclaw.json and bindings map agentId → accountId.\n\nBot not in chat (code 230002) → Add the bot to the target chat or use a chat where the bot is present.\n\nMissing receive_id → Pass --receive-id or set OPENCLAW_CHAT_ID.\n\nHTTP errors → Check the returned log_id in Feishu error payload.\n\n安全说明 | Security\n\n本技能会从本机 OpenClaw 配置中读取飞书凭证（~/.openclaw/openclaw.json）：\n\nchannels.feishu.accounts.*.appId\nchannels.feishu.accounts.*.appSecret\n\n这些凭证仅用于获取 tenant access token 并发送文件。技能不会存储或向其他地方传输凭证。\n\nThis skill reads Feishu credentials from the local OpenClaw config (~/.openclaw/openclaw.json) on the machine where it runs:\n\nchannels.feishu.accounts.*.appId\nchannels.feishu.accounts.*.appSecret\n\nThese values are used only to obtain a tenant access token and send the file. The skill does not store or transmit credentials anywhere else.\n\n备注 | Notes\n\n本技能面向 所有 agent 设计，会自动读取当前工作区来选择正确的 飞书应用凭证。\n\n建议通过入站 chat_id 发送到 当前聊天。\n\nThis skill is designed for all agents; it reads the active workspace to choose the correct Feishu app credentials automatically.\n\nPrefer sending to the current chat by passing the inbound chat_id.\n\n随附脚本 | Bundled Script\nscripts/feishu_file_sender.py"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/ziwenwang28/feishu-file-sender",
    "publisherUrl": "https://clawhub.ai/ziwenwang28/feishu-file-sender",
    "owner": "ziwenwang28",
    "version": "1.0.9",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/feishu-file-sender",
    "downloadUrl": "https://openagent3.xyz/downloads/feishu-file-sender",
    "agentUrl": "https://openagent3.xyz/skills/feishu-file-sender/agent",
    "manifestUrl": "https://openagent3.xyz/skills/feishu-file-sender/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/feishu-file-sender/agent.md"
  }
}