Aggregate and summarize news from multiple sources into a morning briefing
| Option | Default | Description |
|---|---|---|
| `topics` | "AI, startups, technology" | Topics to track |
| `sources` | hackernews, techcrunch | News sources |
| `max_articles` | 20 | Max articles to process |
| `summary_style` | "bullet" | Brief, detailed, or bullet |
| `delivery` | "notify" | notify, email, or file |
Cron: 0 7 * * *
☀️ Morning News Digest
Friday, Jan 31
🤖 AI & ML
• OpenAI announces GPT-5 preview for enterprise
• Google's Gemini 2 beats benchmarks
• Anthropic raises $2B at $60B valuation
🚀 Startups
• YC W26 batch announced - 240 companies
• Figma acquired by Adobe for $20B (finally closed)
⚡ Quick Hits
• Apple Vision Pro 2 rumors
• Tesla FSD v13 rolling out
• GitHub Copilot free tier launched
---
20 articles processed from 3 sources
Lobster workflow: daily news digest Aggregates news from HN front page + web search into a morning briefing Usage:
# Lobster workflow: daily-news-digest
# Aggregates news from HN front page + web search into a morning briefing
#
# Usage:
# lobster run --file workflow.yaml --args-json '{"topics":"AI, startups, technology"}'
#
# Requires: jq, curl
# LLM: Uses prompt step (llm:host by default — uses your agent's model)
name: daily-news-digest
description: Aggregate and summarize news from multiple sources into a morning briefing
args:
topics:
description: "Topics to track (comma-separated)"
default: "AI, startups, technology"
max_articles:
description: "Maximum articles to include"
default: "20"
steps:
- id: fetch-hn
command: |
curl -sf "https://hacker-news.firebaseio.com/v0/topstories.json" \
| jq '.[0:10]' > /tmp/lb_hn_ids.json
echo '[]' > /tmp/lb_hn_articles.json
for id in $(jq -r '.[]' /tmp/lb_hn_ids.json); do
curl -sf "https://hacker-news.firebaseio.com/v0/item/$id.json" \
| jq -c '{title:.title, url:(.url//"https://news.ycombinator.com/item?id=\(.id)"), source:"HN", score:.score}' \
>> /tmp/lb_hn_each.jsonl 2>/dev/null || true
done
if [ -f /tmp/lb_hn_each.jsonl ]; then
jq -sc '.' /tmp/lb_hn_each.jsonl
else
echo '[]'
fi
rm -f /tmp/lb_hn_ids.json /tmp/lb_hn_each.jsonl /tmp/lb_hn_articles.json
- id: search-topics
command: |
# Use Brave Search API if BRAVE_API_KEY is set, otherwise skip
query=$(echo "${topics}" | tr ',' ' ' | sed 's/ */ OR /g')
if [ -n "$BRAVE_API_KEY" ]; then
curl -sf "https://api.search.brave.com/res/v1/web/search?q=$(echo "$query" | jq -sRr @uri)&count=10&freshness=pd" \
-H "Accept: application/json" \
-H "X-Subscription-Token: $BRAVE_API_KEY" \
| jq -c '[.web.results[]? | {title:.title, url:.url, source:"Web", score:0}]' 2>/dev/null || echo '[]'
else
echo '[]'
fi
- id: combine-and-dedup
command: |
hn=$(cat <<'HNEOF'
$fetch-hn.stdout
HNEOF
)
search=$(cat <<'SEARCHEOF'
$search-topics.stdout
SEARCHEOF
)
echo "$hn" > /tmp/lb_nd_hn.json
echo "$search" > /tmp/lb_nd_search.json
max=${max_articles}
jq -sc --argjson max "$max" '
.[0] + .[1] |
unique_by(.title | ascii_downcase | .[0:50]) |
sort_by(-.score) |
.[0:$max]
' /tmp/lb_nd_hn.json /tmp/lb_nd_search.json
rm -f /tmp/lb_nd_hn.json /tmp/lb_nd_search.json
- id: summarize-digest
command: |
llm_task.invoke --prompt "SYSTEM: You are a morning news curator. Write concise, scannable digests that help busy people stay informed. Group by theme, highlight what matters, skip the fluff.\n\nUSER: Create a morning news digest from the articles below.\nTopics of interest: ${topics}.\n\nGroup articles by theme. For each group, write a 2-3 sentence summary\nof why it matters. Include the article title and URL for each item.\n\nFormat as a readable briefing with emoji section headers.\nOpen with today's date and a greeting. Keep it concise but informative.\n\nArticles:\n$(cat /dev/stdin)"
stdin: $combine-and-dedup.stdout
env:
CLAWD_URL: "http://127.0.0.1:3000"
Aggregate and summarize news from multiple sources into a morning briefing.
Inspired by @bindureddy: "I have a dozen agents that run daily... one summarizes my news."
Instead of checking multiple sites every morning, let your agent do it and give you the highlights.
| Option | Default | Description |
|---|---|---|
| `topics` | "AI, startups, technology" | Topics to track |
| `sources` | hackernews, techcrunch | News sources |
| `max_articles` | 20 | Max articles to process |
| `summary_style` | "bullet" | Brief, detailed, or bullet |
| `delivery` | "notify" | notify, email, or file |
☀️ Morning News Digest
Friday, Jan 31
🤖 AI & ML
• OpenAI announces GPT-5 preview for enterprise
• Google's Gemini 2 beats benchmarks
• Anthropic raises $2B at $60B valuation
🚀 Startups
• YC W26 batch announced - 240 companies
• Figma acquired by Adobe for $20B (finally closed)
⚡ Quick Hits
• Apple Vision Pro 2 rumors
• Tesla FSD v13 rolling out
• GitHub Copilot free tier launched
---
20 articles processed from 3 sources
**Cluka** 🦞