Daily Briefing Hub
Your AI Chief of Staff. This skill pulls data from multiple sources and generates a single, prioritized daily briefing — delivered however the user wants it.
Why This Exists
Most OpenClaw users end up building their own morning briefing by manually calling 5-8 separate tools. This skill does it in one step: gather everything, prioritize it, format it beautifully, and deliver it.
How It Works
When triggered, gather data from whichever sources the user has available, then compose a structured briefing. Not every source needs to be configured — the skill gracefully skips unavailable sources and works with whatever is connected.
Data Sources
Attempt to pull from these sources in order. If a source is unavailable (tool not enabled, API not configured), skip it silently and move on. Never fail because one source is missing.
1. Calendar (High Priority)
Use the
gog tool or Google Calendar CLI to fetch today's events.
- - Show: event name, time, location, attendees (if available)
- Flag conflicts (overlapping events)
- Note gaps longer than 2 hours as "focus time" opportunities
- If tomorrow's first event is early, mention it as a heads-up
2. Email (High Priority)
Use Gmail via
gog or the configured email tool to scan recent unread messages.
- - Summarize the top 5-10 most important unread emails (skip newsletters, promotions)
- Prioritize: emails from known contacts > emails with urgent keywords > everything else
- For each: sender, subject, one-line summary, suggested action (reply/read/archive)
- Count total unread and note if inbox is getting out of control (>50 unread = flag it)
3. Weather (Medium Priority)
Use
curl to fetch weather from a public API, or use an installed weather skill.
- - If user location is known (from memory or config), fetch automatically
- If not, ask once and remember for future briefings
- Show: current temp, high/low, conditions, rain probability
- Only mention weather if it's notable (rain, extreme temps, storms) — skip "sunny and 72°F"
- Suggest: "bring an umbrella" or "dress warm" when relevant
4. GitHub / Dev Activity (Medium Priority — skip for non-developers)
Use the GitHub CLI (
gh) or GitHub skill to check activity.
- - Open PRs awaiting your review (with age: "PR #142 waiting 3 days")
- PRs you authored that have new reviews or comments
- CI/CD failures on your repos in the last 24 hours
- New issues assigned to you
- Skip this section entirely if the user doesn't have GitHub configured
5. Tasks (Medium Priority)
Check configured task managers: Todoist, ClickUp, Linear, GitHub Issues, or local task files.
- - Show tasks due today and overdue tasks
- Group by project/label if available
- Flag overdue items prominently
6. News & Feeds (Low Priority)
Use web_search or RSS feeds to pull relevant headlines.
- - If the user has specified interests (in memory or config), filter for those topics
- Default: top 3-5 tech/business headlines from the last 24 hours
- Keep summaries to one sentence each
- Hacker News top 3 stories (if user is a developer)
Briefing Format
ALWAYS structure the briefing like this. Adapt sections based on available data:
CODEBLOCK0
Prioritization Logic
The briefing should feel like a smart assistant, not a data dump. Apply these rules:
- 1. Urgent items surface first: overdue tasks, meeting in <1 hour, CI failures, emails from boss/clients
- Combine related items: if there's a meeting about a PR, mention them together
- Be concise by default: one line per item. The user can ask to expand any section
- Skip empty sections: don't show "No new emails" — just omit the section
- Time-aware: morning briefings focus on today. Evening briefings ("what did I miss") focus on what happened today
Setting Up Recurring Briefings
If the user asks to "send me a briefing every morning" or "set up a daily digest":
- 1. Help them configure a cron job via OpenClaw's cron system
- Suggested schedule: weekdays at 7:00 AM local time (ask user preference)
- Deliver via their preferred channel (Telegram, Slack, WhatsApp, Discord)
- Store the briefing configuration in the workspace for persistence
Example cron setup:
CODEBLOCK1
Customization
The user can customize their briefing at any time:
- - "Add RSS feeds to my briefing" → ask for feed URLs, store in memory
- "Skip weather in my briefings" → remember this preference
- "I want briefings at 6 AM" → update cron schedule
- "Focus on GitHub and email only" → disable other sections
- "Add Stripe revenue to my briefing" → extend with financial data source
Store all preferences in OpenClaw's memory system so they persist across sessions.
Edge Cases
- - First run: If this is the first briefing, explain what you're doing and ask about preferences rather than generating a sparse briefing with no data
- Weekend briefings: lighter tone, skip work email/GitHub, focus on personal calendar and weather
- Evening trigger: if user asks for briefing after 5 PM, shift to "end of day recap" — what happened today, what's tomorrow
- No data at all: if literally no tools are configured, help the user set up at least calendar + email before generating a briefing
- Multiple calendars: if user has personal + work calendars, show both but label them clearly
Example Interactions
User: "Brief me"
→ Generate full briefing with all available sources
User: "What's on my plate today?"
→ Focus on calendar + tasks, lighter on news
User: "Set up a daily morning briefing on Telegram at 7 AM"
→ Configure cron job, confirm channel, generate a test briefing
User: "What did I miss today?"
→ Evening recap: summarize the day's emails, completed tasks, GitHub activity
User: "Add Hacker News to my daily briefing"
→ Store preference, confirm, show preview of how it'll look
每日简报中心
您的AI幕僚长。该技能从多个来源提取数据,生成一份经过优先级排序的每日简报——并按用户期望的方式交付。
存在理由
大多数OpenClaw用户最终都是通过手动调用5-8个独立工具来构建自己的晨间简报。该技能一步完成:收集所有信息,进行优先级排序,精美排版,然后交付。
工作原理
触发时,从用户可用的任何来源收集数据,然后编写结构化简报。并非每个来源都需要配置——该技能会优雅地跳过不可用的来源,仅使用已连接的部分。
数据来源
按顺序尝试从以下来源提取数据。如果某个来源不可用(工具未启用、API未配置),则静默跳过并继续。绝不会因为缺少某个来源而失败。
1. 日历(高优先级)
使用gog工具或Google Calendar CLI获取今日事件。
- - 显示:事件名称、时间、地点、参与者(如有)
- 标记冲突(重叠事件)
- 将超过2小时的空档标注为专注时间机会
- 如果明天第一个事件时间较早,提前提醒
2. 邮件(高优先级)
通过gog或已配置的邮件工具使用Gmail扫描最近的未读邮件。
- - 总结最重要的5-10封未读邮件(跳过新闻简报、促销邮件)
- 优先级排序:已知联系人邮件 > 含紧急关键词邮件 > 其他
- 每封邮件:发件人、主题、一行摘要、建议操作(回复/阅读/归档)
- 统计未读总数,若收件箱失控(>50封未读则标记)
3. 天气(中优先级)
使用curl从公共API获取天气,或使用已安装的天气技能。
- - 如果已知用户位置(来自记忆或配置),自动获取
- 如果未知,询问一次并在未来简报中记住
- 显示:当前温度、最高/最低、天气状况、降雨概率
- 仅在天气显著时提及(雨、极端温度、暴风雨)——跳过晴,22°C
- 相关时建议:带伞或多穿点
4. GitHub/开发活动(中优先级——非开发者跳过)
使用GitHub CLI(gh)或GitHub技能检查活动。
- - 等待您审阅的开放PR(含等待时间:PR #142已等待3天)
- 您创建的PR有新评论或审阅
- 过去24小时内您仓库的CI/CD失败
- 分配给您的新的Issue
- 如果用户未配置GitHub,完全跳过此部分
5. 任务(中优先级)
检查已配置的任务管理器:Todoist、ClickUp、Linear、GitHub Issues或本地任务文件。
- - 显示今日到期任务和逾期任务
- 如有,按项目/标签分组
- 突出标记逾期项目
6. 新闻与订阅(低优先级)
使用web_search或RSS订阅获取相关头条。
- - 如果用户指定了兴趣领域(在记忆或配置中),按主题筛选
- 默认:过去24小时内3-5条科技/商业头条
- 每条摘要保持一句话
- Hacker News前3条故事(如果用户是开发者)
简报格式
始终按此结构组织简报。根据可用数据调整各部分:
☀️ 早上/下午好,[姓名]!以下是您[星期,日期]的简报。
📅 今日日程
[按时间顺序排列的日历事件]
[标记任何冲突或显著空档]
📧 邮件摘要
[高优先级邮件及一行摘要]
[未读邮件总数]
⚡ 待办事项
[逾期任务——紧急]
[今日到期任务]
[需要您审阅的PR]
🌤️ 天气
[仅在显著时——雨、极端温度等]
💻 开发活动
[CI失败、新Issue、PR更新]
📰 新闻
[3-5条相关头条,每条一行]
祝您愉快!回复任何项目编号可深入了解详情。
优先级逻辑
简报应像智能助手,而非数据倾倒。应用以下规则:
- 1. 紧急事项优先显示:逾期任务、1小时内会议、CI失败、老板/客户邮件
- 合并相关项目:如果会议涉及某个PR,一并提及
- 默认简洁:每个项目一行。用户可要求展开任何部分
- 跳过空部分:不显示无新邮件——直接省略该部分
- 时间感知:晨间简报聚焦今日。晚间简报(我错过了什么)聚焦今日发生之事
设置定期简报
如果用户要求每天早上给我发简报或设置每日摘要:
- 1. 通过OpenClaw的cron系统帮助配置定时任务
- 建议时间:工作日当地时间上午7:00(询问用户偏好)
- 通过用户首选渠道交付(Telegram、Slack、WhatsApp、Discord)
- 将简报配置存储在工作区中以保持持久性
cron配置示例:
json
{
schedule: 0 7 1-5,
prompt: 生成我的每日简报并发送给我,
channel: telegram
}
自定义
用户可随时自定义简报:
- - 在我的简报中添加RSS订阅 → 询问订阅URL,存储在记忆中
- 在我的简报中跳过天气 → 记住此偏好
- 我希望在早上6点收到简报 → 更新cron时间
- 只关注GitHub和邮件 → 禁用其他部分
- 在我的简报中添加Stripe收入 → 扩展财务数据源
将所有偏好存储在OpenClaw的记忆系统中,以便跨会话持久化。
边界情况
- - 首次运行:如果是首次简报,解释正在做什么并询问偏好,而非生成无数据的稀疏简报
- 周末简报:语气更轻松,跳过工作邮件/GitHub,聚焦个人日历和天气
- 晚间触发:如果用户在下午5点后要求简报,切换为当日回顾——今日发生了什么,明日安排
- 完全无数据:如果完全没有配置任何工具,帮助用户至少设置日历和邮件后再生成简报
- 多个日历:如果用户有个人和工作日历,同时显示但清晰标注
交互示例
用户:给我简报
→ 使用所有可用来源生成完整简报
用户:我今天有什么安排?
→ 聚焦日历和任务,新闻从简
用户:在Telegram上设置每天早上7点的晨间简报
→ 配置cron任务,确认渠道,生成测试简报
用户:我今天错过了什么?
→ 晚间回顾:总结今日邮件、已完成任务、GitHub活动
用户:在我的每日简报中添加Hacker News
→ 存储偏好,确认,预览显示效果