finance-news
Market news briefings with AI summaries. Use when asked about stock news, market updates, portfolio performance, morning/evening briefings, financial headlines, or price alerts. Supports US/Europe/Japan markets, WhatsApp delivery, and English/German output.
What this skill does
# Finance News Skill
AI-powered market news briefings with configurable language output and automated delivery.
## First-Time Setup
Run the interactive setup wizard to configure your sources, delivery channels, and schedule:
```bash
finance-news setup
```
The wizard will guide you through:
- π° **RSS Feeds:** Enable/disable WSJ, Barron's, CNBC, Yahoo, etc.
- π **Markets:** Choose regions (US, Europe, Japan, Asia)
- π€ **Delivery:** Configure WhatsApp/Telegram group
- π **Language:** Set default language (English/German)
- β° **Schedule:** Configure morning/evening cron times
You can also configure specific sections:
```bash
finance-news setup --section feeds # Just RSS feeds
finance-news setup --section delivery # Just delivery channels
finance-news setup --section schedule # Just cron schedule
finance-news setup --reset # Reset to defaults
finance-news config # Show current config
```
## Quick Start
```bash
# Generate morning briefing
finance-news briefing --morning
# View market overview
finance-news market
# Get news for your portfolio
finance-news portfolio
# Get news for specific stock
finance-news news AAPL
```
## Features
### π Market Coverage
- **US Markets:** S&P 500, Dow Jones, NASDAQ
- **Europe:** DAX, STOXX 50, FTSE 100
- **Japan:** Nikkei 225
### π° News Sources
- **Premium:** WSJ, Barron's (RSS feeds)
- **Free:** CNBC, Yahoo Finance, Finnhub
- **Portfolio:** Ticker-specific news from Yahoo
### π€ AI Summaries
- Gemini-powered analysis
- Configurable language (English/German)
- Briefing styles: summary, analysis, headlines
### π
Automated Briefings
- **Morning:** 6:30 AM PT (US market open)
- **Evening:** 1:00 PM PT (US market close)
- **Delivery:** WhatsApp (configure group in cron scripts)
## Commands
### Briefing Generation
```bash
# Morning briefing (English is default)
finance-news briefing --morning
# Evening briefing with WhatsApp delivery
finance-news briefing --evening --send --group "Market Briefing"
# German language option
finance-news briefing --morning --lang de
# Analysis style (more detailed)
finance-news briefing --style analysis
```
### Market Data
```bash
# Market overview (indices + top headlines)
finance-news market
# JSON output for processing
finance-news market --json
```
### Portfolio Management
```bash
# List portfolio
finance-news portfolio-list
# Add stock
finance-news portfolio-add NVDA --name "NVIDIA Corporation" --category Tech
# Remove stock
finance-news portfolio-remove TSLA
# Import from CSV
finance-news portfolio-import ~/my_stocks.csv
# Interactive portfolio creation
finance-news portfolio-create
```
### Ticker News
```bash
# News for specific stock
finance-news news AAPL
finance-news news TSLA
```
## Configuration
### Portfolio CSV Format
Location: `~/clawd/skills/finance-news/config/portfolio.csv`
```csv
symbol,name,category,notes
AAPL,Apple Inc.,Tech,Core holding
NVDA,NVIDIA Corporation,Tech,AI play
MSFT,Microsoft Corporation,Tech,
```
### Sources Configuration
Location: `~/clawd/skills/finance-news/config/config.json` (legacy fallback: `config/sources.json`)
- RSS feeds for WSJ, Barron's, CNBC, Yahoo
- Market indices by region
- Language settings
## Cron Jobs
### Setup via OpenClaw
```bash
# Add morning briefing cron job
openclaw cron add --schedule "30 6 * * 1-5" \
--timezone "America/Los_Angeles" \
--command "bash ~/clawd/skills/finance-news/cron/morning.sh"
# Add evening briefing cron job
openclaw cron add --schedule "0 13 * * 1-5" \
--timezone "America/Los_Angeles" \
--command "bash ~/clawd/skills/finance-news/cron/evening.sh"
```
### Manual Cron (crontab)
```cron
# Morning briefing (6:30 AM PT, weekdays)
30 6 * * 1-5 bash ~/clawd/skills/finance-news/cron/morning.sh
# Evening briefing (1:00 PM PT, weekdays)
0 13 * * 1-5 bash ~/clawd/skills/finance-news/cron/evening.sh
```
## Sample Output
```markdown
π
**BΓΆrsen-Morgen-Briefing**
Dienstag, 21. Januar 2026 | 06:30 Uhr
π **MΓ€rkte**
β’ S&P 500: 5.234 (+0,3%)
β’ DAX: 16.890 (-0,1%)
β’ Nikkei: 35.678 (+0,5%)
π **Dein Portfolio**
β’ AAPL $256 (+1,2%) β iPhone-VerkΓ€ufe ΓΌbertreffen Erwartungen
β’ NVDA $512 (+3,4%) β KI-Chip-Nachfrage steigt
π₯ **Top Stories**
β’ [WSJ] Fed signalisiert mΓΆgliche Zinssenkung im MΓ€rz
β’ [CNBC] Tech-Sektor fΓΌhrt Rally an
π€ **Analyse**
Der S&P zeigt StΓ€rke. Dein Portfolio profitiert von NVDA's
Momentum. Fed-Kommentare kΓΆnnten VolatilitΓ€t auslΓΆsen.
```
## Integration
### With OpenBB (existing skill)
```bash
# Get detailed quote, then news
openbb-quote AAPL && finance-news news AAPL
```
### With OpenClaw Agent
The agent will automatically use this skill when asked about:
- "What's the market doing?"
- "News for my portfolio"
- "Generate morning briefing"
- "What's happening with AAPL?"
### With Lobster (Workflow Engine)
Run briefings via [Lobster](https://github.com/openclaw/lobster) for approval gates and resumability:
```bash
# Run with approval before WhatsApp send
lobster "workflows.run --file workflows/briefing.yaml"
# With custom args
lobster "workflows.run --file workflows/briefing.yaml --args-json '{\"time\":\"evening\",\"lang\":\"en\"}'"
```
See `workflows/README.md` for full documentation.
## Files
```
skills/finance-news/
βββ SKILL.md # This documentation
βββ Dockerfile # NixOS-compatible container
βββ config/
β βββ portfolio.csv # Your watchlist
β βββ config.json # RSS/API/language configuration
β βββ alerts.json # Price target alerts
β βββ manual_earnings.json # Earnings calendar overrides
βββ scripts/
β βββ finance-news # Main CLI
β βββ briefing.py # Briefing generator
β βββ fetch_news.py # News aggregator
β βββ portfolio.py # Portfolio CRUD
β βββ summarize.py # AI summarization
β βββ alerts.py # Price alert management
β βββ earnings.py # Earnings calendar
β βββ ranking.py # Headline ranking
β βββ stocks.py # Stock management
βββ workflows/
β βββ briefing.yaml # Lobster workflow with approval gate
β βββ README.md # Workflow documentation
βββ cron/
β βββ morning.sh # Morning cron (Docker-based)
β βββ evening.sh # Evening cron (Docker-based)
βββ cache/ # 15-minute news cache
```
## Dependencies
- Python 3.10+
- `feedparser` (`pip install feedparser`)
- Gemini CLI (`brew install gemini-cli`)
- OpenBB (existing `openbb-quote` wrapper)
- OpenClaw message tool (for WhatsApp delivery)
## Troubleshooting
### Gemini not working
```bash
# Authenticate Gemini
gemini # Follow login flow
```
### RSS feeds timing out
- Check network connectivity
- WSJ/Barron's may require subscription cookies for some content
- Free feeds (CNBC, Yahoo) should always work
### WhatsApp delivery failing
- Verify WhatsApp group exists and bot has access
- Check `openclaw doctor` for WhatsApp status
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.