| name | morning-brief |
| description | Pre-open market brief with macro context, watchlist price moves, recent company news, earnings-adjacent filing checks, and overnight prediction-market odds moves. Use when the user wants Hermes to deliver a standing morning market brief instead of asking on demand. |
| input_data_source | LLMQuant Data (via @llmquant/data-mcp) |
| model_baseline | DeepSeek |
| category | cron-playbook |
Morning Brief
Runs before the market opens and sends one concise brief. It answers:
- What changed in the macro backdrop?
- Which watched or held names moved?
- What company news landed since the last brief?
- Which names have earnings-adjacent filings to inspect?
- Did Polymarket odds move on any flagged watchlist name, and does the news
back the move?
This skill is orchestration only. For analysis method, install
LLMQuant/skills.
Model baseline
Use DeepSeek as the default Hermes model for this scheduled job. DeepSeek V4
Flash is enough for routine scan-and-summarize runs. Use a stronger DeepSeek
model only when the user asks for a deeper follow-up.
MCP tools used
| Tool | Purpose | Credit / call |
|---|
personal_holdings | Add the user's saved holdings to the watchlist | 0 |
macro_indicator_snapshot | Latest readings for selected macro indicators | 0 |
equity_intraday_prices | Recent 1h price context per watchlist ticker | 1 |
news_browse | Recent company news for the watchlist | 2 |
sec_filing_browse | Recent 8-K/10-Q filing metadata for the watchlist | 0 |
sec_filing_read | Optional read of one or two flagged filings | 1 |
polymarket_event_browse | Polymarket events tied to flagged watchlist names | 1 |
polymarket_price_history | Overnight odds moves for those markets | 0 |
Use news_browse with up to 5 tickers per call. For larger watchlists, group
the names and stop when the message has enough signal for a morning brief.
Prediction-market check
Anchor this on the watchlist, not on broad discovery. For each ticker the
brief flags for news or price action, check Polymarket for related markets:
polymarket_event_browse with the asset filter (or a keyword q), then
polymarket_price_history for anything that moved overnight. One line per
hit: the market, the odds move, and whether the day's news backs it.
The broader "which markets look interesting this morning" scan is its own
playbook — polymarket-watch. Do not
duplicate it here. Never frame a market as worth buying; discipline rule 3
in templates/SOUL.md applies to odds as much as to stocks.
Cron
hermes cron create "0 8 * * 1-5" "Run the morning-brief playbook with my watchlist, recent company news, macro context, and earnings-adjacent filing checks. Keep it source-linked and concise." \
--skill morning-brief \
--name "morning-brief" \
--deliver telegram
On some Hermes versions (as of v0.18.x), cron expressions run in host-local time.
Still confirm the next-run time with hermes cron list after creating the
job. The scheduler does not know exchange holidays; a weekday market holiday
may produce a low-activity brief.
Delivery
Telegram is the default delivery channel.
--deliver telegram sends to the Telegram home channel after /sethome.
--deliver telegram:<chat_id> targets a specific chat.
- For Slack, Discord, or other gateways, check the user's Hermes gateway
syntax before scheduling.
Cost of watching
Keep runs lean: check remaining credits before heavy calls, prefer a small
watchlist, and skip optional filing reads when credits are low. A smaller
watchlist or a few days a week instead of every weekday keeps daily use down.
Output contract
Every delivered brief should include:
- as-of timestamp and local timezone;
- tickers checked;
- tool names used for factual claims;
- LLMQuant credits used and remaining credits if available;
- "No material news found" when
news_browse returns no items;
- related Polymarket odds moves for flagged watchlist names, when any exist;
- a short no-advice disclaimer from
templates/SOUL.md.
Do not present the filing scan as a true forward earnings calendar. It only
finds recent filings and reporting-window signals.
Customize
watchlist.tickers: edit in workspace AGENTS.md.
watchlist.macro_indicators: keep this short; five indicators is enough.
- Prediction markets: this brief only checks markets tied to flagged
watchlist names; the standalone morning scan lives in
polymarket-watch.
- Cadence: change weekdays to 2-3 selected days on Free.
- Depth: turn on
sec_filing_read only when the news or metadata justifies it.
- Delivery: change
--deliver to the channel the user checks first.