Daily news briefing generator — produces a conversational radio-host-style audio briefing + DOCX document covering weather, X/Twitter trends, web trends, world news, politics, tech, local news, sports, markets, and crypto. macOS only (uses Apple TTS and afplay). Use when user asks for a news briefing, morning briefing, daily update, or similar.
数据来源:ClawHub。 在 ClawSkills 查看
选择你使用的 Agent
方法一:命令行安装(推荐)
推荐(无需提前安装 clawhub)
npx clawhub@latest --dir ~/.claude/skills install briefing-room或使用 clawhub CLI(需提前安装)
clawhub --dir ~/.claude/skills install briefing-room⚠️ 需要 Node.js 18+,没有 Node?请使用下方方法二直接下载 ZIP。 安装 Node.js →
方法二:手动下载安装(无需 Node)
下载 ZIP,解压后将文件夹放到以下路径,重启 Agent 即可:
安装路径
~/.claude/skills/briefing-room/💡解压后将文件夹放到上方路径,重启 Agent 即可生效
--- name: Briefing Room description: "Daily news briefing generator — produces a conversational radio-host-style audio briefing + DOCX document covering weather, X/Twitter trends, web trends, world news, politics, tech, local news, sports, markets, and crypto. macOS only (uses Apple TTS and afplay). Use when user asks for a news briefing, morning briefing, daily update, or similar." metadata: { "openclaw": { "emoji": "📻", "requires": { "bins": ["curl"] } } } ---
Your personal daily news briefing — audio + document.
On demand, research and compose a comprehensive ~10 minute news briefing in a conversational radio-host style. Output: audio file (MP3) + formatted document (DOCX).
say (any language)~/.briefing-room/config.json (settings) and ~/Documents/Briefing Room/ (output)On first use, check if ~/.briefing-room/config.json exists. If not, run:
python3 SKILL_DIR/scripts/config.py init
This creates default config. The user can customize:
en, sk, de, etc.Show setup status:
python3 SKILL_DIR/scripts/config.py status
When user asks for a briefing (e.g. "give me a briefing", "morning update", "what's happening today"):
afplay /System/Library/Sounds/Blow.aiff &Language override: If user says "po slovensky", "v slovenčine", "auf deutsch", "en français", etc. → pass that to the sub-agent. Otherwise use the configured default language. Any language macOS supports will work — the agent writes the script in that language and TTS auto-detects a matching voice.
sessions_spawn(
task="<full pipeline instructions — see below>",
label="briefing-room",
runTimeoutSeconds=600,
cleanup="delete"
)
The task message should include ALL the pipeline steps below so the sub-agent is fully self-contained. Replace all SKILL_DIR references with the actual absolute path to this skill's directory.
Host name: Read host.name from config. If empty, use your own agent name (from your identity). Pass it to the sub-agent as the radio host name (e.g. "Good morning, I'm Jackie, and this is your Briefing Room...").
Config file: ~/.briefing-room/config.json
Read values:
python3 SKILL_DIR/scripts/config.py get location.city
python3 SKILL_DIR/scripts/config.py get language
python3 SKILL_DIR/scripts/config.py get voices.en.mlx_voice
Set values:
python3 SKILL_DIR/scripts/config.py set location.city "Vienna"
python3 SKILL_DIR/scripts/config.py set location.latitude 48.21
python3 SKILL_DIR/scripts/config.py set location.longitude 16.37
python3 SKILL_DIR/scripts/config.py set language "de"
| Key | Default | Description | |-----|---------|-------------| | location.city | Bratislava | City name for weather + local news | | location.latitude | 48.15 | Weather API latitude | | location.longitude | 17.11 | Weather API longitude | | location.timezone | Europe/Bratislava | Timezone for weather API | | language | en | Default briefing language | | output.folder | ~/Documents/Briefing Room | Output directory | | audio.enabled | true | Generate audio | | audio.format | mp3 | Audio format (mp3, wav, aiff) | | audio.tts_engine | auto | TTS engine (auto, mlx, kokoro, builtin) | | sections | all 11 (see below) | Which sections to include | | host.name | (empty = agent name) | Radio host name for the briefing | | trends.regions | united-states,united-kingdom, | X/Twitter trend regions (comma-separated, trailing comma = worldwide) | | webtrends.regions | US,GB, | Google Trends regions (ISO codes, trailing comma = worldwide) |
Each language can have its own TTS engine and voice:
{
"voices": {
"en": {
"engine": "mlx",
"mlx_voice": "af_heart",
"mlx_voice_blend": {"af_heart": 0.6, "af_sky": 0.4},
"builtin_voice": "Samantha",
"speed": 1.05
},
"sk": {
"engine": "builtin",
"builtin_voice": "Laura (Enhanced)",
"builtin_rate": 220
},
"de": {
"engine": "builtin",
"builtin_voice": "Petra (Premium)",
"builtin_rate": 200
}
}
}
Engine priority (when auto):
Users can add any language by adding a voices entry + a matching builtin_voice from say -v '?'.
~/Documents/Briefing Room/YYYY-MM-DD/
├── briefing-YYYY-MM-DD-HHMM.docx # Formatted document
└── briefing-YYYY-MM-DD-HHMM.mp3 # Audio briefing (~10 min)
Do NOT save the .md working file in the output folder. Use /tmp/ for working files, delete after.
# Read config
CITY=$(python3 SKILL_DIR/scripts/config.py get location.city)
LAT=$(python3 SKILL_DIR/scripts/config.py get location.latitude)
LON=$(python3 SKILL_DIR/scripts/config.py get location.longitude)
TZ=$(python3 SKILL_DIR/scripts/config.py get location.timezone)
LANG=$(python3 SKILL_DIR/scripts/config.py get language)
OUTPUT_FOLDER=$(python3 SKILL_DIR/scripts/config.py get output.folder)
DATE=$(date +%Y-%m-%d)
TIMESTAMP=$(date +%Y-%m-%d-%H%M)
OUTPUT_DIR="$OUTPUT_FOLDER/$DATE"
mkdir -p "$OUTPUT_DIR"
Use the configured location coordinates:
# Current weather
TZ_ENC="${TZ/\//%2F}"
BASE="https://api.open-meteo.com/v1/forecast"
CURRENT="temperature_2m,relative_humidity_2m"
CURRENT="$CURRENT,apparent_temperature,precipitation"
CURRENT="$CURRENT,weather_code,wind_speed_10m"
curl -s "$BASE?latitude=$LAT&longitude=$LON\
¤t=$CURRENT&timezone=$TZ_ENC"
# 7-day forecast
DAILY="temperature_2m_max,temperature_2m_min"
DAILY="$DAILY,precipitation_sum,weather_code"
curl -s "$BASE?latitude=$LAT&longitude=$LON\
&daily=$DAILY&timezone=$TZ_ENC"
Or use the helper: bash SKILL_DIR/scripts/briefing.sh weather
Map weather_code to descriptions:
Use web_search tool for each section. Add current date to queries for freshness. Use the configured $CITY for local news.
X/Twitter Trends (from getdaytrends.com — real-time, no API key):
bash SKILL_DIR/scripts/briefing.sh trends
This fetches top 25 trends from US, UK, and Worldwide. Use the output to:
web_search to get context on the top trends you selected...
安装 Briefing Room 后,可以对 AI 说这些话来触发它
Help me get started with Briefing Room
Explains what Briefing Room does, walks through the setup, and runs a quick demo based on your current project
Use Briefing Room to daily news briefing generator — produces a conversational radio-hos...
Invokes Briefing Room with the right parameters and returns the result directly in the conversation
What can I do with Briefing Room in my design & creative workflow?
Lists the top use cases for Briefing Room, with example commands for each scenario
将技能文件夹放到 ~/.claude/skills/briefing-room/ 目录(个人级,所有项目可用),或 .claude/skills/briefing-room/(项目级)。重启 AI 客户端后,用 /briefing-room 主动调用,或让 AI 根据上下文自动发现并使用。
Briefing Room 支持 Claude、Cursor、OpenClaw,可与这些 AI 平台无缝集成,扩展其能力。
Briefing Room 可免费安装使用。请查阅仓库了解许可证信息。
Daily news briefing generator — produces a conversational radio-host-style audio briefing + DOCX document covering weather, X/Twitter trends, web trends, world news, politics, tech, local news, sports, markets, and crypto. macOS only (uses Apple TTS and afplay). Use when user asks for a news briefing, morning briefing, daily update, or similar.
Briefing Room 属于「Design & Creative」分类,该分类的技能帮助 AI 智能体在此领域执行专业任务。
Automate my design & creative tasks using Briefing Room
Identifies repetitive steps in your workflow and sets up Briefing Room to handle them automatically