Feishu Voice Loop
ReviewAudited by ClawScan on May 1, 2026.
Overview
The skill appears to do what it says—turn text or voice into OpenAI-generated speech and send it to Feishu—but it requires users to trust Feishu/OpenAI credentials, local CLI tools, and outbound chat delivery.
Install or use this skill only if you expect it to use your OpenAI API key, Feishu app credentials, local transcription CLI, and ffmpeg/ffprobe. Verify Feishu app scopes, recipient open_id values, and any text/audio content before sending.
Findings (5)
Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.
A user relying only on registry metadata may not realize the skill needs provider credentials and local media tools.
The runtime requirements are disclosed in SKILL.md, but the registry metadata lists no required env vars, credentials, binaries, or config paths, so automated requirement declarations are incomplete.
Prerequisites: - `OPENAI_API_KEY` is set for TTS - Feishu app credentials exist in `~/.openclaw/openclaw.json` ... - `ffmpeg` and `ffprobe` are installed
Declare OPENAI_API_KEY, Feishu credential/config requirements, ffmpeg/ffprobe, and the transcription CLI configuration in metadata.
The skill can act through the configured Feishu app and consume the configured OpenAI account quota.
The script reads an OpenAI API key and Feishu app credentials to generate speech and obtain a Feishu tenant access token.
api_key = os.getenv('OPENAI_API_KEY') ... cfg_path = Path.home() / '.openclaw' / 'openclaw.json' ... app_secret = args.app_secret or feishu.get('appSecret')Use least-privilege Feishu app permissions, keep credentials out of logs and chat, and only run the script with credentials intended for this workflow.
Running the script can post audio into Feishu chats on behalf of the configured app.
The script sends an audio message to a user-provided Feishu open_id using the Feishu tenant token.
post_json(
'https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=open_id',
{
'receive_id': args.to,
'msg_type': 'audio'Confirm the recipient open_id and synthesized text before sending, and avoid granting the Feishu app broader messaging permissions than needed.
Using the transcription feature runs a local command from configuration, so a bad local config could execute the wrong program.
For transcription, the script executes the CLI command and arguments configured in the user's local OpenClaw config.
cmd = [model['command']] ... cmd.extend(rendered) ... subprocess.run(cmd, check=True)
Ensure `tools.media.audio.models[0]` points to a trusted transcription CLI and review configured arguments before use.
Text and generated audio leave the local machine and are processed by OpenAI and Feishu.
The script sends the provided text to OpenAI for TTS and uploads the generated audio to Feishu.
'https://api.openai.com/v1/audio/speech' ... 'input': args.text ... 'https://open.feishu.cn/open-apis/im/v1/files'
Do not use the skill for sensitive text or audio unless those provider data flows are acceptable for your use case.
