Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

Feishu Audio Message

Send TTS audio as a proper playable audio message (not file attachment) to Feishu chats. Use when asked to send voice messages, TTS audio, speech announcemen...

MIT-0 · Free to use, modify, and redistribute. No attribution required.
0 · 200 · 2 current installs · 2 all-time installs
byRong@Kylinr
MIT-0
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Suspicious
medium confidence
Purpose & Capability
The skill's described purpose (send TTS audio as msg_type=audio to Feishu) matches the included script behavior. However the package metadata declares no required environment variables or binaries while the script clearly expects FEISHU_APP_ID/FEISHU_APP_SECRET (or to read /root/.openclaw/openclaw.json) and relies on curl, python3, and a local TTS binary (/app/openclaw/node_modules/.bin/node-edge-tts). The missing declarations are an inconsistency.
Instruction Scope
SKILL.md and the script stay on-task: generate or accept audio, obtain a Feishu tenant token, upload with file_type=opus, and send msg_type=audio. The only notable instruction is to auto-read /root/.openclaw/openclaw.json for Feishu credentials, which is consistent with OpenClaw deployments but is a privileged read of a config file.
Install Mechanism
No install spec (instruction-only + script) — nothing is downloaded or written by an installer. The script is bundled with the skill; there is no external install URL or archive to evaluate.
!
Credentials
The script requires Feishu app credentials (FEISHU_APP_ID and FEISHU_APP_SECRET) and will attempt to read them from /root/.openclaw/openclaw.json if env vars are not set. The skill metadata, however, lists no required env vars or primary credential. Reading a root-level OpenClaw config file can expose other channel credentials if the config structure differs; the TTS binary path (/app/openclaw/node_modules/.bin/node-edge-tts) and use of system tools (curl, python3) are not declared either. These omissions reduce transparency about what secrets and system tools the skill accesses.
Persistence & Privilege
The skill does not request persistent or always-on privileges (always:false) and does not modify other skills or system-wide settings. It runs when invoked and cleans up temp files.
What to consider before installing
This skill appears to do what it claims (generate/send Feishu audio messages), but the package metadata underreports what the script actually uses. Before installing: 1) Inspect /root/.openclaw/openclaw.json yourself — it will be read for Feishu creds; ensure you are comfortable with the skill reading that file or set FEISHU_APP_ID and FEISHU_APP_SECRET ENV vars instead. 2) Verify the presence and trustworthiness of the TTS binary (/app/openclaw/node_modules/.bin/node-edge-tts) and confirm you have curl and python3 available. 3) Ask the publisher to update metadata to declare required env vars and binaries so the skill's requirements are transparent. 4) If you require stronger isolation, run the script in a sandbox/container or create a dedicated Feishu account with limited permissions. If you cannot confirm these items, consider this skill suspicious and avoid installing it on sensitive hosts.

Like a lobster shell, security has layers — review code before you run it.

Current versionv1.1.0
Download zip
latestvk97dj25rker12eqv6geaxdejj182f7pb

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

SKILL.md

feishu-audio

Send TTS audio to Feishu as a playable audio message (msg_type=audio), not a file attachment.

Why This Skill Exists

OpenClaw's message tool sends audio as a generic file. Feishu requires a two-step API flow to display it as a playable voice message:

  1. Upload with file_type=opus
  2. Send with msg_type=audio

Quick Usage

bash /root/.openclaw/skills/feishu-audio/scripts/send_audio.sh \
  "要说的内容" \
  "<chat_id or user open_id>" \
  [voice]          # optional, default: zh-CN-XiaoyiNeural

receive_id_type is always chat_id. For group chats use oc_xxx; for DMs use ou_xxx (open_id).

Common Voices

LanguageVoice
Chinese (F)zh-CN-XiaoyiNeural (default)
Chinese (M)zh-CN-YunxiNeural
English (F)en-US-AriaNeural
English (M)en-US-GuyNeural

Credentials

Auto-read from /root/.openclaw/openclaw.jsonchannels.feishu.accounts.main. No manual setup needed in standard OpenClaw deployments.

Two-Step API Flow (for custom integrations)

# Step 1: Upload (file_type=opus is required regardless of actual format)
curl -X POST "https://open.feishu.cn/open-apis/im/v1/files" \
  -H "Authorization: Bearer $TOKEN" \
  -F "file_type=opus" -F "file_name=voice.opus" -F "file=@audio.mp3"
# → returns file_key

# Step 2: Send (msg_type=audio, NOT file)
curl -X POST "https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=chat_id" \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"receive_id":"oc_xxx","msg_type":"audio","content":"{\"file_key\":\"...\"}"}' 

Key pitfalls:

  • file_type must be opus (not mp3) or upload returns 234001
  • msg_type must be audio (not file) or it shows as attachment

Files

2 total
Select a file
Select a file to preview.

Comments

Loading comments…