Morning Brief
When to use
- The user asks for a morning brief, daily digest, or summary of the day
- A scheduled task fires (cron-triggered briefing)
Steps
Recall context — call
recallandsearch_memoryto pull:- Location (for weather)
- Topics of interest (news filtering)
- Active projects or priorities
- Personal preferences (tone, length)
Gather inputs in parallel — these can run independently:
- Weather:
web_searchfor "weather [location] today" or usebrowser_extracton a weather site - News:
web_searchfor top news in saved topics - Calendar/tasks: if a calendar tool is available, query it; otherwise mention "no calendar configured"
- Weather:
Compose the brief with this structure:
- Greeting (1 line, time-appropriate: "Good morning, [name]")
- Today's outlook (1-2 sentences: weather, big-picture)
- News highlights (3-5 bullet points with markdown links)
- On your radar (saved priorities, deadlines coming up)
- Suggested focus (1 sentence: what to prioritise today)
Render with UI:
- Use
show_metric_cardsfor at-a-glance items (temperature, top story count, deadlines) - Use
show_timelineif the user has scheduled events - Otherwise, plain markdown
- Use
Save the brief — call
fs_writeto save tobriefs/YYYY-MM-DD.mdfor later reference.
Style
- Brief and skimmable. Total length 200-400 words max.
- Time-zone aware. Use the user's local time.
- Skip generic greetings ("Hope you have a great day!") — be substantive.
- If something failed (e.g. weather API down), note it briefly and continue.
What not to do
- Don't generate news headlines without searching first (no fabrication)
- Don't include unread emails count without checking — this isn't email triage
- Don't be overly cheerful or motivational
- Don't repeat the same brief format daily — vary the focus based on what's actually changing