Murasame Feishu Voice
v0.1.0Feishu 语音气泡技能:使用丛雨(Murasame)语音包发送语音;若可表达则按标签发送语音并同步发送中文文本;支持开关控制、标签映射与关键词回退。
Security Scan
OpenClaw
Suspicious
high confidencePurpose & Capability
The skill's declared purpose (send Feishu voice bubbles using a Murasame voicepack) matches the behavior in the scripts: it selects local MP3s, sends text and uploads audio to Feishu APIs. Requiring Feishu credentials and a local audio path is expected. However the registry metadata lists no required env vars or credentials while SKILL.md and the code do require FEISHU_APP_ID/FEISHU_APP_SECRET and FEISHU_RECEIVER — that mismatch is unexpected.
Instruction Scope
SKILL.md and the code instruct the agent to read/write files in a hard-coded Windows workspace (C:\Users\chenxun\.nanobot\workspace), manage a state file, and write a debug text file containing message text. The main send operation is delegated to an external script (feishu-voice/scripts/send_voice_file.py) which is not included in the package; this delegation creates an opaque runtime dependency that could execute arbitrary behavior if present. Aside from Feishu endpoints (expected), there are no other network endpoints.
Install Mechanism
There is no install spec (instruction-only + included scripts). Nothing is downloaded or installed by the skill itself. Code files are provided directly, so no external installer risk is present in the package — but the missing external sender script is an unresolved dependency.
Credentials
The code requires FEISHU_APP_ID, FEISHU_APP_SECRET, and FEISHU_RECEIVER (and optionally MURASAME_VOICE), and references ffmpeg/ffprobe and a specific local audio path. The skill registry metadata, however, declares no required env vars/credentials — an incoherence. The required Feishu credentials are proportionate to the feature, but the metadata omission and hard-coded Windows paths reduce clarity and portability.
Persistence & Privilege
The skill does not request always:true and does not modify other skills. It writes a local state file and a debug file under the workspace path and spawns an async subprocess to send voice. Those are limited, local effects and within the normal scope for this functionality.
What to consider before installing
Key things to consider before installing:
- Metadata mismatch: the registry lists no required env vars but the code needs FEISHU_APP_ID, FEISHU_APP_SECRET and FEISHU_RECEIVER — confirm the author updates metadata and document required secrets.
- Missing dependency: the script delegates voice sending to feishu-voice/scripts/send_voice_file.py which is not included. Ask the author for that file and inspect it before running (it will execute asynchronously and could do anything if malicious).
- Hard-coded Windows paths: the workspace and audio path are fixed to C:\Users\chenxun\.nanobot\workspace — verify or change these paths before use and ensure audio files exist and are trusted.
- Local file writes: the skill writes a state file and a debug file containing message text to the workspace. If you have privacy concerns, run in a sandbox or change the paths.
- Credentials safety: only provide your Feishu app credentials to this skill if you trust the code; consider using a limited-scope app/receiver and rotate credentials after testing.
- Operational check: request the missing sender script, confirm ffmpeg/ffprobe availability, and test in a controlled environment before enabling for real conversations.Like a lobster shell, security has layers — review code before you run it.
latest
Murasame Feishu Voice
能做什么
- 当回复适合用丛雨语音表达时,给文本加上标签(如
[agree]/[thanks]/[greet_night]) - 发送 飞书语音气泡,并同步发送原本的中文回复(文字先到,语音异步)
- 若未匹配合适标签,输出
NO_VOICE,由上层改为仅发文本 - 支持手动开关语音:
/murasame on或/murasame off
适用场景(触发建议)
- 飞书对话里希望用丛雨语音气泡表达情绪(称赞/问候/道歉/同意等)
- 想在语音之外保留可读的中文文本
- 需要可控开关,随时暂停语音发送
运行流程
- 解析标签/关键词 → 选取对应语音文件
- 先发送中文文本
- 异步发送语音气泡
开关控制
- 发送
/murasame off关闭语音(写入状态文件) - 发送
/murasame on开启语音 - 环境变量也可覆盖:
MURASAME_VOICE=off
环境与依赖
- Feishu 凭证:
FEISHU_APP_ID/FEISHU_APP_SECRET - 接收者 OpenID:
FEISHU_RECEIVER(仅环境变量) ffmpeg+ffprobe- 丛雨语音包路径:
C:\Users\chenxun\.nanobot\workspace\murasame-voice\audios
使用方式
发送带标签的回复
python scripts/send_murasame_voice.py "[thanks] 谢谢你"
返回值
OK: sent text+voice (async) for <category>→ 已发送文字,语音异步发送中NO_VOICE→ 未匹配,改用纯文本VOICE_DISABLED→ 被开关关闭
标签与映射
- 标签与音频文件在
references/mapping.json - 默认标签:
- greetings: greet_morning / greet_noon / greet_evening / greet_night
- basic: agree / thanks / apology / refuse / wait / rest
- care: encourage / care / compliment / explain
备注
- 若你想新增标签或替换音频文件,只需编辑
mapping.json - 建议由上层对话逻辑判断是否加标签(即“能用丛雨语音表达就发语音”)
Comments
Loading comments...
