← Back to Skills Marketplace
richerlv

Cyber Horn

by Richerlv · GitHub ↗ · v1.0.3 · MIT-0
linuxdarwinwin32 ✓ Security Clean
367
Downloads
2
Stars
0
Active Installs
4
Versions
Install in OpenClaw
/install cyber-horn
Description
Turn text into spoken Feishu (Lark) voice messages. Use when the agent should speak in a Feishu group, send voice alerts or announcements, or reply with a pl...
README (SKILL.md)

CyberHorn (赛博小喇叭)

Let OpenClaw speak in Feishu: turn any text into a native voice message (not a file link) in a Feishu chat.

When to use

  • The user asks to "say something in Feishu" or "send a voice message to the group".
  • The agent should announce or alert via voice in a Feishu room.
  • You want replies as playable voice notes instead of text bubbles.

How it works

  1. TTS — Text is synthesized with Edge TTS (default, no API key) or ElevenLabs (custom voices). Set TTS_PROVIDER=EDGE or ELEVEN in .env.
  2. Encode — Audio is converted to Opus (mono 16 kHz) via FFmpeg for Feishu’s voice message format.
  3. Send — The file is uploaded to Feishu and sent as a voice message to the given chat.

Setup

  • Required (all modes): FEISHU_APP_ID, FEISHU_APP_SECRET in .env or OpenClaw config. FFmpeg must be on PATH or set FFMPEG_PATH.
  • Optional default target chat: FEISHU_DEFAULT_CHAT_ID can be set in .env so you don't have to pass a chat ID every time.
  • Edge TTS (default): No extra keys. Optional EDGE_VOICE (e.g. zh-CN-XiaoxiaoNeural).
  • ElevenLabs: Set TTS_PROVIDER=ELEVEN, and add ELEVEN_API_KEY, VOICE_ID.

Invocation

From the skill directory (or with PYTHONPATH set):

python main.py "\x3Ctext to speak>" "[feishu_chat_id]" [receive_id_type]
  • Arg 1: Text to speak.
  • Arg 2 (optional): Feishu chat ID (or other receive_id). If omitted, the skill will use FEISHU_DEFAULT_CHAT_ID from .env when available.
  • Arg 3 (optional): receive_id_type, default chat_id (can be open_id etc. per Feishu API).

OpenClaw can call this with env vars injected and the same two (or three) arguments.

Usage Guidance
This skill appears to do what it says: synthesize TTS and send native Feishu voice messages. Before installing: (1) provide FEISHU_APP_ID/FEISHU_APP_SECRET only for an app you control and limit that app's scopes (it can send messages wherever permitted); (2) if using ElevenLabs, only supply ELEVEN_API_KEY if you trust the voice cloning usage; (3) install dependencies in a virtualenv and review requirements.txt for packages you wish to allow; (4) confirm ffmpeg is a trusted binary on PATH; (5) be aware the agent (if invoked) can send voice messages to any receive_id the app is permitted to message. If you want extra assurance, review the code (especially feishu_client.py and audio_engine.py) and run tests locally with test scripts before granting this skill access to production credentials.
Capability Analysis
Type: OpenClaw Skill Name: cyber-horn Version: 1.0.3 The CyberHorn skill is designed to convert text to speech and send it as a native voice message to Feishu (Lark). The code follows security best practices by using subprocess argument lists to prevent shell injection in audio_engine.py and utilizes standard, well-known libraries (requests, edge-tts, elevenlabs) for its core functionality. There is no evidence of data exfiltration, unauthorized credential access, or malicious prompt injection; all operations are consistent with the documented purpose of the skill.
Capability Assessment
Purpose & Capability
Name/description (TTS → Feishu voice messages) aligns with required items: ffmpeg for encoding, FEISHU_APP_ID/FEISHU_APP_SECRET for API calls, optional ElevenLabs credentials for alternate TTS. The declared primary credential and required binaries are appropriate for the stated functionality.
Instruction Scope
SKILL.md and code instruct only to load .env, synthesize audio (Edge or ElevenLabs), transcode via ffmpeg, upload to Feishu, and send a voice message. The runtime steps and files accessed are limited to temp audio files and declared env vars; there are no instructions to read unrelated system files or to post data to unexpected external endpoints.
Install Mechanism
This is instruction-only for OpenClaw (no platform install spec). The repository includes a requirements.txt with expected TTS and HTTP libraries (edge-tts, elevenlabs, requests, etc.). Nothing is downloaded from arbitrary URLs, but the dependency list is non-trivial — audit and install in a virtual environment.
Credentials
Requested env vars (FEISHU_APP_ID, FEISHU_APP_SECRET, optional ELEVEN_API_KEY/VOICE_ID, EDGE settings) are consistent with functionality. However FEISHU_APP_SECRET is powerful (allows sending messages using the app); ensure the provided Feishu app has minimal necessary scopes and is trusted. ElevenLabs keys are optional and only needed if that provider is selected.
Persistence & Privilege
Skill does not request persistent 'always' inclusion and does not modify other skills or system-wide configs. It runs as a script, cleans up temp files, and uses only its own config.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install cyber-horn
  3. After installation, invoke the skill by name or use /cyber-horn
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.3
- Added support for FEISHU_DEFAULT_CHAT_ID: you can now set a default chat ID in the environment and omit the chat ID argument when invoking the skill. - Invocation instructions updated: chat ID argument is now optional if FEISHU_DEFAULT_CHAT_ID is set. - Clarified setup and usage in documentation.
v1.0.2
Version 1.0.2 of cyber-horn - By default, chat_id is read from .env .
v1.0.1
- Compatible with Mac & Linux
v1.0.0
CyberHorn turns OpenClaw into a voice: say something in chat, and it shows up in Feishu (Lark) as a real voice message — not a text bubble, not a file link, a playable voice note. What’s new Dual TTS engines — Use Edge TTS (free, no API key) by default, or ElevenLabs for custom voices. Set TTS_PROVIDER=EDGE or ELEVEN in .env. Feishu-native voice — Text → TTS → Opus → upload → send as Feishu voice message. No workarounds, no “open in browser.” One command to speak — python main.py "要说的内容" "CHAT_ID". Same flow for OpenClaw: your agent can now read out updates, alerts, or replies in Feishu. Local-first config — API keys and TTS_PROVIDER live in your .env; nothing sensitive is shipped with the skill. Quick start Install the skill (from ClawHub). Add your Feishu app credentials (and optionally ElevenLabs keys) to .env. Run main.py with your text and Feishu chat ID, or wire it into OpenClaw so the agent sends voice messages when it “speaks.” OpenClaw isn’t just typing anymore — it’s talking.
Metadata
Slug cyber-horn
Version 1.0.3
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 4
Frequently Asked Questions

What is Cyber Horn?

Turn text into spoken Feishu (Lark) voice messages. Use when the agent should speak in a Feishu group, send voice alerts or announcements, or reply with a pl... It is an AI Agent Skill for Claude Code / OpenClaw, with 367 downloads so far.

How do I install Cyber Horn?

Run "/install cyber-horn" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Cyber Horn free?

Yes, Cyber Horn is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Cyber Horn support?

Cyber Horn is cross-platform and runs anywhere OpenClaw / Claude Code is available (linux, darwin, win32).

Who created Cyber Horn?

It is built and maintained by Richerlv (@richerlv); the current version is v1.0.3.

💬 Comments