首页龙虾技能列表 › Castreader Openclaw Skill — 技能工具

Castreader Openclaw Skill — 技能工具

v2.1.1

[自动翻译] Read any web page aloud with natural AI voices. Extract article text from any URL and convert it to audio (MP3). Use when the user wants to: listen to...

0· 325·1 当前·1 累计
by @vinxu·MIT-0
下载技能包
License
MIT-0
最后更新
2026/4/10
安全扫描
VirusTotal
可疑
查看报告
OpenClaw
安全
high confidence
The skill's code, instructions, and dependencies match its stated purpose (extract a web page and produce TTS audio), but it sends extracted page text to an external CastReader TTS server and installs Puppeteer/Chromium — review privacy and runtime network behavior before use.
评估建议
This skill does what it says: it uses Node + Puppeteer to load pages, run an in-page extractor, and then calls a CastReader TTS API to produce MP3 files. Before installing or using it, consider: 1) Privacy: the full extracted text of any URL you ask it to read is sent (by default) to http://api.castreader.ai:8123 — do not send sensitive or private pages unless you trust that service or change CASTREADER_API_URL to a service you control. 2) Installation: `npm install` will download many packages ...
详细分析 ▾
用途与能力
Name/description (read webpages and produce MP3) align with the included files and runtime requirements: Node + Puppeteer are required to load pages and extract DOM content, and the scripts call an external TTS API to generate MP3s. The package.json, extractor bundle, and read/generate scripts support the claimed functionality.
指令范围
SKILL.md confines the agent to running the provided node scripts (read-url.js, generate-text.js) and to using the `message` tool for delivery. However, those scripts execute a full browser (Puppeteer) to fetch/render pages and then POST the extracted text to an external TTS endpoint. The SKILL.md does not prominently warn that full page text (potentially sensitive) will be transmitted off-host.
安装机制
There is no formal install spec in the registry, but SKILL.md instructs `npm install` which will install puppeteer and a large dependency tree and download Chromium. This is expected for a page-extraction engine that uses headless Chrome, but it writes packages and Chromium to disk and performs network downloads during setup.
凭证需求
The skill declares no required env vars, and optional env vars (CASTREADER_API_URL, CASTREADER_VOICE, CASTREADER_SPEED, CASTREADER_API_KEY) are reasonable for configuring a TTS client. Still: the default API URL (http://api.castreader.ai:8123) means extracted page text will be sent to that third-party service by default. That is proportional to the feature but is a privacy risk that users should be aware of.
持久化与权限
The skill is user-invocable and not always-enabled. It does not request elevated platform privileges in the registry metadata. Runtime behavior may interact with a Chrome user profile if CHROME_PROFILE is set, and read-aloud launches a non-headless browser with an extension path — those are optional runtime behaviors, not registry-level persistent privileges.
scripts/demo.js:83
Shell command execution detected (child_process).
scripts/read-url.js:133
Shell command execution detected (child_process).
scripts/generate-paragraph.js:25
Environment variable access combined with network send.
scripts/generate-text.js:16
Environment variable access combined with network send.
scripts/read-url.js:29
Environment variable access combined with network send.
scripts/generate-paragraph.js:114
File read combined with network send (possible exfiltration).
scripts/generate-text.js:103
File read combined with network send (possible exfiltration).
scripts/read-url.js:130
File read combined with network send (possible exfiltration).
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

🖥️ OSmacOS · Linux · Windows

版本

latestv2.1.12026/3/13

Update README and docs to match v2.1 flow: extract→choose full/summary→generate audio

● 可疑

安装命令 点击复制

官方npx clawhub@latest install castreader-openclaw-skill
镜像加速npx clawhub@latest install castreader-openclaw-skill --registry https://cn.clawhub-mirror.com

技能文档

Setup (once per session)

cd  && npm install --silent 2>/dev/null

How to find target (chatId)

User messages look like: [Telegram username id:8716240840 ...] The number after id: is the target. You MUST use this number in every message tool call. Example: target is "8716240840".

When user sends a URL, follow these steps:

Step 1: Extract article

node scripts/read-url.js "" 0

Returns: { title, language, totalParagraphs, totalCharacters, paragraphs[] }

Step 2: Show info + ask user to choose

Reply with this text:

📖 {title}
🌐 {language} · 📝 {totalParagraphs} paragraphs · 📊 {totalCharacters} chars

📋 Summary: {write 2-3 sentence summary from paragraphs}

Reply a number to choose: 1️⃣ Listen to full article (~{totalCharacters} chars, ~{Math.ceil(totalCharacters / 200)} sec to generate) 2️⃣ Listen to summary only (~{summary_char_count} chars, ~{Math.ceil(summary_char_count / 200)} sec to generate)

STOP. Wait for user to reply 1 or 2.

Step 3a: User chose 1 (full article)

Reply: 🎙️ Generating full audio (~{totalCharacters} chars, ~{Math.ceil(totalCharacters / 200)} seconds)...

node scripts/read-url.js "" all

Then send the audio file using the message tool:

{"action":"send", "target":"", "channel":"telegram", "filePath":"", "caption":"🔊 {title}"}

Reply: ✅ Done!

Step 3b: User chose 2 (summary only)

Reply: 🎙️ Generating summary audio...

Save the SAME summary text you showed in Step 2 to a file and generate:

echo "" > /tmp/castreader-summary.txt
node scripts/generate-text.js /tmp/castreader-summary.txt 

Then send the audio file using the message tool:

{"action":"send", "target":"", "channel":"telegram", "filePath":"/tmp/castreader-summary.mp3", "caption":"📋 Summary: {title}"}

Reply: ✅ Done!

Rules

  • ALWAYS extract first (index=0), show info, wait for user choice. Never skip.
  • ALWAYS send audio files using the message tool with target (numeric chatId) and channel ("telegram"). Never just print the file path.
  • Do NOT use built-in TTS tools. ONLY use read-url.js and generate-text.js.
  • Do NOT use web_fetch. ONLY use read-url.js.
数据来源:ClawHub ↗ · 中文优化:龙虾技能库
OpenClaw 技能定制 / 插件定制 / 私有工作流定制

免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制

了解定制服务