
Alphaear News
Pull aggregated hot finance headlines, multi-source trend reports, and Polymarket summaries for trading or macro research inside an agent workflow.
Overview
AlphaEar News is an agent skill most often used in Idea (also Grow analytics, Operate monitoring) that fetches hot finance news, unified multi-source trends, and Polymarket prediction summaries for solo builders.
Install
npx skills add https://github.com/rkiding/awesome-finance-skills --skill alphaear-newsWhat is this skill?
- Hot news via NewsNowTools.fetch_hot_news(source_id, count) with documented source IDs (e.g., cls, weibo)
- Unified trend report across multiple finance/social sources via get_unified_trends(sources)
- PolymarketTools.get_market_summary(limit) for formatted active prediction-market snapshots
- Local sqlite persistence through DatabaseManager (data/signal_flux.db) with loguru logging
- 2 capability areas: hot news/trends and Polymarket prediction markets
Adoption & trust: 1.1k installs on skills.sh; 2.4k GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
You need a single agent-callable path to hot finance headlines and prediction-market context instead of juggling many news sites by hand.
Who is it for?
Indie traders, finance agents, and builders prototyping macro or sentiment workflows with Python tooling.
Skip if: Regulated advisory pipelines requiring vendor compliance sign-off, or teams that forbid outbound finance scraping in agent sandboxes.
When should I use this skill?
User needs real-time financial news, trend reports from multiple finance sources, or Polymarket finance market prediction data.
What do I get? / Deliverables
Structured news lists, unified trend reports, and Polymarket summaries—optionally stored locally—for the next analysis or alert step.
- Hot news payloads
- Unified trends report
- Polymarket market summary text
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Market and headline research most often starts in Idea when validating themes before committing capital or product bets. Research subphase fits unified trend ingestion and prediction-market context—not shipping code or production monitoring.
Where it fits
Compare Weibo and CLS headlines before sizing a trading thesis or finance SaaS feature.
Ground a narrow MVP scope in what prediction markets and hot lists are actually discussing this week.
Draft distribution posts anchored in a unified trends pull rather than a single RSS feed.
Log repeated get_market_summary runs into sqlite for drift alerts on narrative risk.
How it compares
Python news/prediction integration skill—not a brokerage API or portfolio backtester.
Common Questions / FAQ
Who is alphaear-news for?
Solo builders and finance-curious agents users who want scripted hot-news and Polymarket summaries inside Claude Code, Cursor, or Codex.
When should I use alphaear-news?
In Idea/research for theme discovery, in Grow for content or lifecycle context around market moves, or in Operate when monitoring ongoing signal feeds.
Is alphaear-news safe to install?
It performs network fetches and local DB writes; review the Security Audits panel on this page and restrict credentials and outbound access in your environment.
SKILL.md
READMESKILL.md - Alphaear News
# AlphaEar News Skill ## Overview Fetch real-time hot news, generate unified trend reports, and retrieve Polymarket prediction data. ## Capabilities ### 1. Fetch Hot News & Trends Use `scripts/news_tools.py` via `NewsNowTools`. - **Fetch News**: `fetch_hot_news(source_id, count)` - See [sources.md](references/sources.md) for valid `source_id`s (e.g., `cls`, `weibo`). - **Unified Report**: `get_unified_trends(sources)` - Aggregates top news from multiple sources. ### 2. Fetch Prediction Markets Use `scripts/news_tools.py` via `PolymarketTools`. - **Market Summary**: `get_market_summary(limit)` - Returns a formatted report of active prediction markets. ## Dependencies - `requests`, `loguru` - `scripts/database_manager.py` (Local DB) import sqlite3 import json from datetime import datetime from pathlib import Path from typing import List, Dict, Optional from loguru import logger class DatabaseManager: """ AlphaEar News Database Manager Reduced version for alphaear-news skill """ def __init__(self, db_path: str = "data/signal_flux.db"): self.db_path = Path(db_path) self.db_path.parent.mkdir(parents=True, exist_ok=True) self.conn = sqlite3.connect(str(self.db_path), check_same_thread=False) self.conn.row_factory = sqlite3.Row self._init_db() logger.debug(f"💾 Database initialized at {self.db_path}") def _init_db(self): """Initialize news-related tables only""" cursor = self.conn.cursor() # Daily News Table cursor.execute(""" CREATE TABLE IF NOT EXISTS daily_news ( id TEXT PRIMARY KEY, source TEXT, rank INTEGER, title TEXT, url TEXT, content TEXT, publish_time TEXT, crawl_time TEXT, sentiment_score REAL, analysis TEXT, meta_data TEXT ) """) # Indexes cursor.execute("CREATE INDEX IF NOT EXISTS idx_news_crawl_time ON daily_news(crawl_time)") cursor.execute("CREATE INDEX IF NOT EXISTS idx_news_source ON daily_news(source)") self.conn.commit() # --- News Operations --- def save_daily_news(self, news_list: List[Dict]) -> int: """Save hot news items""" cursor = self.conn.cursor() count = 0 crawl_time = datetime.now().isoformat() for news in news_list: try: news_id = news.get('id') or f"{news.get('source')}_{news.get('rank')}_{crawl_time[:10]}" cursor.execute(""" INSERT OR REPLACE INTO daily_news (id, source, rank, title, url, content, publish_time, crawl_time, sentiment_score, meta_data) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) """, ( news_id, news.get('source'), news.get('rank'), news.get('title'), news.get('url'), news.get('content', ''), news.get('publish_time'), crawl_time, news.get('sentiment_score'), json.dumps(news.get('meta_data', {})) )) count += 1 except Exception as e: logger.error(f"Error saving news item {news.get('title')}: {e}") self.conn.commit() return count def get_daily_news(self, source: Optional[str] = None, limit: int = 100, days: int = 1) -> List[Dict]: