daily-news-caster
关于
The daily-news-caster skill fetches current news via the news-aggregator-skill, formats it into a Markdown podcast script, and generates an audio file using the tts skill. Use it when a user requests the latest news read aloud as a podcast. It requires network and filesystem permissions and depends on specific skills and binaries.
快速安装
Claude Code
推荐npx skills add NoizAI/skills -a claude-code/plugin add https://github.com/NoizAI/skillsgit clone https://github.com/NoizAI/skills.git ~/.claude/skills/daily-news-caster在 Claude Code 中复制并粘贴此命令以安装该技能
技能文档
Daily News Caster Skill
This skill allows the agent to fetch real-time news, organize it into a conversational podcast script, and generate an audio file reading the script out loud.
Workflow Instructions
When the user asks to get the latest news and make a podcast out of it, follow these steps strictly:
Step 1: Ensure Required Skills are Present
Verify that news-aggregator-skill and tts exist in the workspace (under skills/ or .cursor/skills/). If either is missing, inform the user which skill(s) are not found and ask them to install manually before proceeding. Do NOT attempt to install skills automatically.
Step 2: Fetch the Latest News
Locate fetch_news.py from the news-aggregator-skill skill directory (e.g., skills/news-aggregator-skill/scripts/fetch_news.py). Read its SKILL.md to understand usage if needed.
Run the script to fetch real-time news. You can specify a source (e.g., hackernews, github, all) or keywords based on the user's request.
Example command:
python3 skills/news-aggregator-skill/scripts/fetch_news.py --source all --limit 10 --deep
Step 3: Draft the Podcast Script (Internal Step)
Read the fetched news data and rewrite the information into a Markdown podcast script. Crucially, prioritize a dual-host (two-person) conversational format (e.g., Host A and Host B) in a dynamic Q&A style. The script should be:
- Dual-Host Conversational yet concise: Write an engaging back-and-forth between two hosts. Host A should ask insightful, high-value questions to guide the conversation, and Host B should provide informative, concise answers. It should feel like a smart, fast-paced Q&A dialogue.
- Avoid fluff: Do not include unnecessary fluff or overly long transitions. Keep it to the point (言简意赅) while retaining all critical information and facts.
- Clearly Labeled Speakers: Start each line or paragraph with the speaker's name (e.g.,
Host A:orHost B:). - Clear text for speech: Avoid complex URLs, raw markdown links, or unpronounceable characters in the spoken text.
Save this script to a local file named podcast_script.md.
Example podcast_script.md Content:
**Host A:** Welcome to today's news roundup. We have some exciting tech updates today. To start things off, there's a big update from [Company Name]. What are the core implications of their new release for everyday users?
**Host B:** The main takeaway is that... [Insert concise answer and summary of News Item 1]. This completely changes how we approach [Topic].
**Host A:** That's fascinating. But does this new approach raise any security concerns, especially given recent data breaches?
**Host B:** Exactly. Experts are pointing out that... [Insert analysis or context].
**Host A:** Moving on to the open-source world, what's trending on GitHub today that developers should pay attention to?
**Host B:** A standout project is... [Insert concise summary of News Item 2].
**Host A:** Great insights. That's all for today's quick update. Thanks for tuning in!
Step 4: Generate the Podcast Audio Line-by-Line
To avoid sending the entire script to the API at once, you must generate the audio sentence by sentence (一人一句地生成) and then concatenate them.
Use tts.py from the local tts skill (skills/tts/scripts/tts.py). Read the tts skill's SKILL.md for full usage and backend options.
1. Generate Audio for Each Line:
For each dialogue line in the script, run the speak command. Use the appropriate voice or reference audio for the respective host. If the user provided reference audio files for the two roles, use them via the --ref-audio flag (requires noiz backend and NOIZ_API_KEY). Without an API key, guest mode voices are available (see tts SKILL.md for the voice list).
python3 skills/tts/scripts/tts.py -t "Welcome to today's news roundup..." --ref-audio host_A.wav -o line_01.wav
python3 skills/tts/scripts/tts.py -t "The main takeaway is that..." --ref-audio host_B.wav -o line_02.wav
2. Concatenate the Audio Files:
Create a text file (e.g., list.txt) listing all the generated audio files in order:
file 'line_01.wav'
file 'line_02.wav'
Then use ffmpeg to merge them into a single podcast audio file:
ffmpeg -f concat -safe 0 -i list.txt -c copy podcast_output.wav
Step 5: Present the Final Result
After the full audio has been generated and merged, present the results to the user. You MUST provide both pieces of content:
- Output the fully drafted Markdown podcast script into the chat so the user can read it.
- Provide the path to the final
podcast_output.wavfile so they can listen to the audio. - Briefly summarize the headlines that were included in the podcast.
Security & data disclosure
This skill is instruction-only — it contains no executable code itself. At runtime it orchestrates scripts from two dependency skills:
- Scripts executed:
news-aggregator-skill/scripts/fetch_news.py(fetches news from public sources) andtts/scripts/tts.py(generates speech audio). Both must be present locally before this skill runs; review their code and SKILL.md for details on their network behavior and credential requirements. - Credentials: This skill does not require any API keys or environment variables directly. The
ttsdependency may requireNOIZ_API_KEYfor voice-cloning features (noiz backend); without it, guest-mode voices work out of the box. See the tts skill's SKILL.md for details. - Network access: All network calls are made by the dependency skills, not by this skill's instructions. The news-aggregator fetches from public news sources; the tts skill contacts
noiz.aionly when the noiz backend is used. - Files written:
podcast_script.md,line_*.wav(temporary per-sentence audio),list.txt(ffmpeg concat list),podcast_output.wav(final output). All are written to the current working directory. - No persistent state: This skill does not write configuration files, store credentials, or modify other skills.
GitHub 仓库
相关推荐技能
content-collections
元Content Collections 是一个 TypeScript 优先的构建工具,可将本地 Markdown/MDX 文件转换为类型安全的数据集合。它专为构建博客、文档站和内容密集型 Vite+React 应用而设计,提供基于 Zod 的自动模式验证。该工具涵盖从 Vite 插件配置、MDX 编译到生产环境部署的完整工作流。
polymarket
元这个Claude Skill为开发者提供完整的Polymarket预测市场开发支持,涵盖API调用、交易执行和市场数据分析。关键特性包括实时WebSocket数据流,可监控实时交易、订单和市场动态。开发者可用它构建预测市场应用、实施交易策略并集成实时市场预测功能。
creating-opencode-plugins
元该Skill帮助开发者创建OpenCode插件,用于接入命令、文件、LSP等25+种事件。它提供了插件结构、事件API规范和JavaScript/TypeScript实现模式,适合需要拦截操作、扩展功能或自定义事件处理的场景。开发者可通过它快速构建响应式模块来增强OpenCode AI助手的能力。
sglang
元SGLang是一个专为LLM设计的高性能推理框架,特别适用于需要结构化输出的场景。它通过RadixAttention前缀缓存技术,在处理JSON、正则表达式、工具调用等具有重复前缀的复杂工作流时,能实现极速生成。如果你正在构建智能体或多轮对话系统,并追求远超vLLM的推理性能,SGLang是理想选择。
