{"id":"3c718e9f-fa1c-4051-9579-4eda890353f1","entityType":"agent","slug":"clawhub-wangyendt-lark-bot-listener","name":"Pywayne Lark Bot Listener","canonicalUrl":"https://www.xpersona.co/agent/clawhub-wangyendt-lark-bot-listener","canonicalPath":"/agent/clawhub-wangyendt-lark-bot-listener","generatedAt":"2026-10-10T17:35:39.306Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-10T14:42:30.338Z","emptyReason":null},"description":"Feishu/Lark message listener for real-time message processing via WebSocket. Use when users need to listen for incoming Feishu messages (text, image, file, p... Skill: Pywayne Lark Bot Listener Owner: wangyendt Summary: Feishu/Lark message listener for real-time message processing via WebSocket. Use when users need to listen for incoming Feishu messages (text, image, file, p... Tags: latest:0.1.0 Version history: v0.1.0 | 2026-02-16T08:23:34.770Z | auto Initial release of pywayne-lark-bot-listener. - Provides real-time Feishu/Lark message listening via WebSocket with async h","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.4K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s172p3g61c0j9vy0sa1bs01b7x885y52:lark-bot-listener","sourceUrl":"https://clawhub.ai/wangyendt/lark-bot-listener","homepage":"https://clawhub.ai/wangyendt/skills/lark-bot-listener","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/wangyendt/lark-bot-listener","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/wangyendt/skills/lark-bot-listener","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":63,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Feishu/Lark message listener for real-time message processing via WebSocket. Use when users need to listen for incoming Feishu messages (text, image, file, p..."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T14:42:30.338Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T14:42:30.338Z","emptyReason":null},"stars":null,"forks":null,"downloads":1380,"packageName":null,"latestVersion":"0.1.0","tractionLabel":"1.4K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T14:42:30.337Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T14:42:30.338Z","lastCrawledAt":"2026-10-10T14:42:30.337Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T14:42:30.337Z","lastVerifiedAt":null,"highlights":[{"version":"0.1.0","createdAt":"2026-02-16T08:23:34.770Z","changelog":"Initial release of pywayne-lark-bot-listener. - Provides real-time Feishu/Lark message listening via WebSocket with async handling and deduplication. - Convenient decorators for handling text, image, file, and post messages. - Automatic download, cleanup, and optional reply for image/file handlers. - Unified send_message API for sending Markdown messages. - Includes robust async and error isolation features, with support for group/private messages. - Rich documentation and code examples provided for rapid integration.","fileCount":3,"zipByteSize":3466}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s172p3g61c0j9vy0sa1bs01b7x885y52:lark-bot-listener","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-wangyendt-lark-bot-listener/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-wangyendt-lark-bot-listener/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-wangyendt-lark-bot-listener/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-wangyendt-lark-bot-listener/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-wangyendt-lark-bot-listener/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-wangyendt-lark-bot-listener/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T17:35:39.306Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-wangyendt-lark-bot-listener/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-wangyendt-lark-bot-listener/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-wangyendt-lark-bot-listener/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-wangyendt-lark-bot-listener/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-10T14:42:30.338Z","emptyReason":null},"readme":"Skill: Pywayne Lark Bot Listener\n\nOwner: wangyendt\n\nSummary: Feishu/Lark message listener for real-time message processing via WebSocket. Use when users need to listen for incoming Feishu messages (text, image, file, p...\n\nTags: latest:0.1.0\n\nVersion history:\n\nv0.1.0 | 2026-02-16T08:23:34.770Z | auto\n\nInitial release of pywayne-lark-bot-listener.\n\n- Provides real-time Feishu/Lark message listening via WebSocket with async handling and deduplication.\n- Convenient decorators for handling text, image, file, and post messages.\n- Automatic download, cleanup, and optional reply for image/file handlers.\n- Unified send_message API for sending Markdown messages.\n- Includes robust async and error isolation features, with support for group/private messages.\n- Rich documentation and code examples provided for rapid integration.\n\nArchive index:\n\nArchive v0.1.0: 3 files, 3466 bytes\n\nFiles: skill-card.md (1937b), SKILL.md (5692b), _meta.json (136b)\n\nFile v0.1.0:SKILL.md\n\n---\nname: pywayne-lark-bot-listener\ndescription: Feishu/Lark message listener for real-time message processing via WebSocket. Use when users need to listen for incoming Feishu messages (text, image, file, post) with automatic deduplication and async handling. Provides convenient decorators (text_handler, image_handler, file_handler) that handle message download/cleanup and optional automatic reply.\n---\n\n# Pywayne Lark Bot Listener\n\n飞书消息监听器，通过 WebSocket 实时接收和处理飞书消息。\n\n## Quick Start\n\n```python\nfrom pywayne.lark_bot_listener import LarkBotListener\n\n# 初始化监听器\nlistener = LarkBotListener(\n    app_id=\"your_app_id\",\n    app_secret=\"your_app_secret\",\n    message_expiry_time=60  # 消息去重过期时间（秒）\n)\n\n# 处理文本消息\n@listener.text_handler()\nasync def handle_text(text: str):\n    print(f\"收到消息: {text}\")\n\n# 启动监听\nlistener.run()\n```\n\n## Decorators - 消息处理装饰器\n\n### text_handler\n\n文本消息处理装饰器，直接传递文本内容。\n\n```python\n@listener.text_handler(group_only=False, user_only=False)\nasync def handle_text(text: str, chat_id: str, is_group: bool, group_name: str, user_name: str):\n    print(f\"收到来自 {user_name} 的消息: {text}\")\n    listener.send_message(chat_id, f\"已收到：{text}\")\n```\n\n**参数说明**（除 `text` 外均为可选）：\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| `text` | str | 文本内容（必需） |\n| `chat_id` | str | 会话 ID |\n| `is_group` | bool | 是否群组消息 |\n| `group_name` | str | 群组名称（私聊时为空） |\n| `user_name` | str | 发送消息的用户姓名 |\n\n**装饰器参数**：\n- `group_only=True`: 只处理群组消息\n- `user_only=True`: 只处理私聊消息\n\n### image_handler\n\n图片消息处理装饰器，自动下载图片到临时文件并清理。\n\n```python\nfrom pathlib import Path\nimport cv2\nimport tempfile\n\n@listener.image_handler()\nasync def handle_image(image_path: Path, user_name: str) -> Path:\n    # 处理图片\n    img = cv2.imread(str(image_path))\n    # ...处理逻辑...\n    # 返回新图片路径会自动发送回去，返回 None 则不发送\n    return image_path\n```\n\n**参数说明**（除 `image_path` 外均为可选）：\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| `image_path` | Path | 临时图片文件路径（必需） |\n| `chat_id` | str | 会话 ID |\n| `is_group` | bool | 是否群组消息 |\n| `group_name` | str | 群组名称 |\n| `user_name` | str | 发送消息的用户姓名 |\n\n**返回值**：\n- 返回 `Path`: 自动上传并发送新图片\n- 返回 `None`: 不发送任何图片\n\n### file_handler\n\n文件消息处理装饰器，自动下载文件到临时文件并清理。\n\n```python\n@listener.file_handler()\nasync def handle_file(file_path: Path, user_name: str) -> Path:\n    # 处理文件\n    with open(file_path, 'r') as f:\n        content = f.read()\n    # ...处理逻辑...\n    return file_path  # 返回文件路径会自动发送回去\n```\n\n**参数说明**（除 `file_path` 外均为可选）：\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| `file_path` | Path | 临时文件路径（必需） |\n| `chat_id` | str | 会话 ID |\n| `is_group` | bool | 是否群组消息 |\n| `group_name` | str | 群组名称 |\n| `user_name` | str | 发送消息的用户姓名 |\n\n## listen - 通用消息监听器\n\n用于监听任意类型消息（包括富文本 post）。\n\n```python\n@listener.listen(message_type=\"post\")\nasync def handle_post(ctx: MessageContext):\n    print(f\"收到富文本消息: {ctx.content}\")\n```\n\n**MessageContext 属性**：\n\n| 属性 | 类型 | 说明 |\n|------|------|------|\n| `chat_id` | str | 会话 ID |\n| `user_id` | str | 用户 ID |\n| `message_type` | str | 消息类型 |\n| `content` | str | 消息内容（文本消息为字符串，其他类型为 JSON 字符串） |\n| `is_group` | bool | 是否群组消息 |\n| `chat_type` | str | 会话类型 |\n| `message_id` | str | 消息 ID |\n\n## send_message - 发送消息\n\n发送 Markdown 格式的消息到飞书。\n\n```python\nlistener.send_message(chat_id, \"**这是加粗文本**\")\nlistener.send_message(chat_id, \"普通文本\\n[链接](https://example.com)\")\n```\n\n## 完整示例\n\n```python\nfrom pywayne.lark_bot_listener import LarkBotListener\nfrom pathlib import Path\n\nlistener = LarkBotListener(\n    app_id=\"your_app_id\",\n    app_secret=\"your_app_secret\"\n)\n\n# 文本消息 - AI 回复示例\n@listener.text_handler()\nasync def handle_text(text: str, chat_id: str, user_name: str):\n    # 处理逻辑...\n    listener.send_message(chat_id, f\"收到来自 {user_name} 的消息\")\n\n# 图片消息 - 自动下载和清理\n@listener.image_handler()\nasync def handle_image(image_path: Path):\n    # image_path 是临时文件，处理完会自动清理\n    print(f\"处理图片: {image_path}\")\n\n# 文件消息 - 自动下载和清理\n@listener.file_handler(group_only=True)\nasync def handle_file(file_path: Path, group_name: str):\n    print(f\"收到文件: {file_path} 来自 {group_name}\")\n\n# 富文本消息\n@listener.listen(message_type=\"post\")\nasync def handle_post(ctx: MessageContext):\n    import json\n    post_content = json.loads(ctx.content)\n    print(f\"收到富文本: {post_content}\")\n\n# 启动监听\nlistener.run()\n```\n\n## 注意事项\n\n1. **异步处理**: 所有处理函数使用 `async/await` 语法\n2. **消息去重**: 每个处理函数独立去重，默认 60 秒过期\n3. **临时文件**: 图片和文件下载到 `系统临时目录/lark_bot_temp`，处理完自动清理\n4. **错误隔离**: 每个处理函数异常独立捕获，不影响其他函数\n5. **多注册**: 同一消息可被多个处理函数处理\n\nFile v0.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn7d2b8vpaw5d7bq2ybbb9sqjh8143nf\",\n  \"slug\": \"lark-bot-listener\",\n  \"version\": \"0.1.0\",\n  \"publishedAt\": 1771230214770\n}\n\nFile v0.1.0:skill-card.md\n\n## Description:\n\nFeishu/Lark message listener for real-time WebSocket message processing with async handlers, message deduplication, attachment cleanup, and optional replies.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[wangyendt](https://clawhub.ai/user/wangyendt)\n\n### License/Terms of Use:\n\n\n## Use Case:\n\nDevelopers and engineers use this skill to build Feishu/Lark bot listeners that process text, image, file, and rich post messages in real time. It is suited for agents that need to provide integration guidance, Python handler examples, and safe handling notes for message and attachment workflows.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Bot credentials and incoming Feishu/Lark messages or attachments may be sensitive.\n\nMitigation: Keep app_id and app_secret out of source control, grant only required bot permissions, and treat incoming content as sensitive.\n\nRisk: Handlers that automatically reply or re-send files can expose processed content to unintended chats.\n\nMitigation: Review handler code and chat routing before enabling automatic replies or file sends.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/wangyendt/skills/lark-bot-listener)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, configuration, guidance]\n\n**Output Format:** [Markdown with Python code examples and configuration guidance]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May include guidance for app credentials, async handlers, message filtering, temporary file handling, and automatic replies.]\n\n## Skill Version(s):\n\n0.1.0 (source: release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.","readmeExcerpt":"Skill: Pywayne Lark Bot Listener Owner: wangyendt Summary: Feishu/Lark message listener for real-time message processing via WebSocket. Use when users need to listen for incoming Feishu messages (text, image, file, p... Tags: latest:0.1.0 Version history: v0.1.0 | 2026-02-16T08:23:34.770Z | auto Initial release of pywayne-lark-bot-listener. - Provides real-time Feishu/Lark message listening via WebSocket with async h","codeSnippets":[],"executableExamples":[{"language":"python","snippet":"from pywayne.lark_bot_listener import LarkBotListener\n\n# 初始化监听器\nlistener = LarkBotListener(\n    app_id=\"your_app_id\",\n    app_secret=\"your_app_secret\",\n    message_expiry_time=60  # 消息去重过期时间（秒）\n)\n\n# 处理文本消息\n@listener.text_handler()\nasync def handle_text(text: str):\n    print(f\"收到消息: {text}\")\n\n# 启动监听\nlistener.run()"},{"language":"python","snippet":"@listener.text_handler(group_only=False, user_only=False)\nasync def handle_text(text: str, chat_id: str, is_group: bool, group_name: str, user_name: str):\n    print(f\"收到来自 {user_name} 的消息: {text}\")\n    listener.send_message(chat_id, f\"已收到：{text}\")"},{"language":"python","snippet":"from pathlib import Path\nimport cv2\nimport tempfile\n\n@listener.image_handler()\nasync def handle_image(image_path: Path, user_name: str) -> Path:\n    # 处理图片\n    img = cv2.imread(str(image_path))\n    # ...处理逻辑...\n    # 返回新图片路径会自动发送回去，返回 None 则不发送\n    return image_path"},{"language":"python","snippet":"@listener.file_handler()\nasync def handle_file(file_path: Path, user_name: str) -> Path:\n    # 处理文件\n    with open(file_path, 'r') as f:\n        content = f.read()\n    # ...处理逻辑...\n    return file_path  # 返回文件路径会自动发送回去"},{"language":"python","snippet":"@listener.listen(message_type=\"post\")\nasync def handle_post(ctx: MessageContext):\n    print(f\"收到富文本消息: {ctx.content}\")"},{"language":"python","snippet":"listener.send_message(chat_id, \"**这是加粗文本**\")\nlistener.send_message(chat_id, \"普通文本\\n[链接](https://example.com)\")"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: pywayne-lark-bot-listener\ndescription: Feishu/Lark message listener for real-time message processing via WebSocket. Use when users need to listen for incoming Feishu messages (text, image, file, post) with automatic deduplication and async handling. Provides convenient decorators (text_handler, image_handler, file_handler) that handle message download/cleanup and optional automatic reply.\n---\n\n# Pywayne Lark Bot Listener\n\n飞书消息监听器，通过 WebSocket 实时接收和处理飞书消息。\n\n## Quick Start\n\n```python\nfrom pywayne.lark_bot_listener import LarkBotListener\n\n# 初始化监听器\nlistener = LarkBotListener(\n    app_id=\"your_app_id\",\n    app_secret=\"your_app_secret\",\n    message_expiry_time=60  # 消息去重过期时间（秒）\n)\n\n# 处理文本消息\n@listener.text_handler()\nasync def handle_text(text: str):\n    print(f\"收到消息: {text}\")\n\n# 启动监听\nlistener.run()\n```\n\n## Decorators - 消息处理装饰器\n\n### text_handler\n\n文本消息处理装饰器，直接传递文本内容。\n\n```python\n@listener.text_handler(group_only=False, user_only=False)\nasync def handle_text(text: str, chat_id: str, is_group: bool, group_name: str, user_name: str):\n    print(f\"收到来自 {user_name} 的消息: {text}\")\n    listener.send_message(chat_id, f\"已收到：{text}\")\n```\n\n**参数说明**（除 `text` 外均为可选）：\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| `text` | str | 文本内容（必需） |\n| `chat_id` | str | 会话 ID |\n| `is_group` | bool | 是否群组消息 |\n| `group_name` | str | 群组名称（私聊时为空） |\n| `user_name` | str | 发送消息的用户姓名 |\n\n**装饰器参数**：\n- `group_only=True`: 只处理群组消息\n- `user_only=True`: 只处理私聊消息\n\n### image_handler\n\n图片消息处理装饰器，自动下载图片到临时文件并清理。\n\n```python\nfrom pathlib import Path\nimport cv2\nimport tempfile\n\n@listener.image_handler()\nasync def handle_image(image_path: Path, user_name: str) -> Path:\n    # 处理图片\n    img = cv2.imread(str(image_path))\n    # ...处理逻辑...\n    # 返回新图片路径会自动发送回去，返回 None 则不发送\n    return image_path\n```\n\n**参数说明**（除 `image_path` 外均为可选）：\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| `image_path` | Path | 临时图片文件路径（必需） |\n| `chat_id` | str | 会话 ID |\n| `is_group` | bool | 是否群组消息 |\n| `group_name` | str | 群组名称 |\n| `user_name` | str | 发送消息的用户姓名 |\n\n**返回值**：\n- 返回 `Path`: 自动上传并发送新图片\n- 返回 `None`: 不发送任何图片\n\n### file_handler\n\n文件消息处理装饰器，自动下载文件到临时文件并清理。\n\n```python\n@listener.file_handler()\nasync def handle_file(file_path: Path, user_name: str) -> Path:\n    # 处理文件\n    with open(file_path, 'r') as f:\n        content = f.read()\n    # ...处理逻辑...\n    return file_path  # 返回文件路径会自动发送回去\n```\n\n**参数说明**（除 `file_path` 外均为可选）：\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| `file_path` | Path | 临时文件路径（必需） |\n| `chat_id` | str | 会话 ID |\n| `is_group` | bool | 是否群组消息 |\n| `group_name` | str | 群组名称 |\n| `user_name` | str | 发送消息的用户姓名 |\n\n## listen - 通用消息监听器\n\n用于监听任意类型消息（包括富文本 post）。\n\n```python\n@listener.listen(message_type=\"post\")\nasync def handle_post(ctx: MessageContext):\n    print(f\"收到富文本消息: {ctx.content}\")\n```\n\n**MessageContext 属性**：\n\n| 属性 | 类型 | 说明 |\n|------|------|------|\n| `chat_id` | str | 会话 ID |\n| `user_id` | str | 用户 ID |\n| `message_type` | str | 消息类型 |\n| `content` | str | 消息内容（文本消息为字符串，其他类型为 JSON 字符串） |\n| `is_group` | bool | 是否群组消息 |\n| `chat_type` | s"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7d2b8vpaw5d7bq2ybbb9sqjh8143nf\",\n  \"slug\": \"lark-bot-listener\",\n  \"version\": \"0.1.0\",\n  \"publishedAt\": 1771230214770\n}"},{"path":"skill-card.md","content":"## Description:\n\nFeishu/Lark message listener for real-time WebSocket message processing with async handlers, message deduplication, attachment cleanup, and optional replies.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[wangyendt](https://clawhub.ai/user/wangyendt)\n\n### License/Terms of Use:\n\n\n## Use Case:\n\nDevelopers and engineers use this skill to build Feishu/Lark bot listeners that process text, image, file, and rich post messages in real time. It is suited for agents that need to provide integration guidance, Python handler examples, and safe handling notes for message and attachment workflows.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Bot credentials and incoming Feishu/Lark messages or attachments may be sensitive.\n\nMitigation: Keep app_id and app_secret out of source control, grant only required bot permissions, and treat incoming content as sensitive.\n\nRisk: Handlers that automatically reply or re-send files can expose processed content to unintended chats.\n\nMitigation: Review handler code and chat routing before enabling automatic replies or file sends.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/wangyendt/skills/lark-bot-listener)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, configuration, guidance]\n\n**Output Format:** [Markdown with Python code examples and configuration guidance]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May include guidance for app credentials, async handlers, message filtering, temporary file handling, and automatic replies.]\n\n## Skill Version(s):\n\n0.1.0 (source: release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Feishu/Lark message listener for real-time message processing via WebSocket. Use when users need to listen for incoming Feishu messages (text, image, file, p... Skill: Pywayne Lark Bot Listener Owner: wangyendt Summary: Feishu/Lark message listener for real-time message processing via WebSocket. Use when users need to listen for incoming Feishu messages (text, image, file, p... Tags: latest:0.1.0 Version history: v0.1.0 | 2026-02-16T08:23:34.770Z | auto Initial release of pywayne-lark-bot-listener. - Provides real-time Feishu/Lark message listening via WebSocket with async h","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":888,"uniquenessScore":46,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T14:42:30.338Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-10T14:42:30.338Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T17:35:39.306Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}