daily_stock_analysis: A Free-Tier LLM Stock Analyzer That Pushes Reports to Your Chat App
LLM 驱动的多市场股票智能分析系统:多源行情、实时新闻、决策看板与自动推送,支持零成本定时运行。 LLM-powered multi-market stock analysis system with multi-source market data, real-time news, decision dashboard, automated notifications, and cost-free scheduled runs.
At a glance
- What is it?
- This Python project schedules LLM-driven stock analysis across six markets and sends a decision dashboard to WeCom, Feishu, Telegram, Discord, Slack, or email. It runs for free on GitHub Actions, but the quality of the output depends heavily on which data and news sources you configure.
- Who is it for?
- Adopt daily_stock_analysis if you want a zero-cost, scheduled LLM stock report delivered to a chat app and you are comfortable relying on free data sources that may throttle or break. Do not adopt it if you need guaranteed market data stability, low-latency alerts, or a tool that makes trading decisions for you.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 2 days ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What It Solves and Who It Is For
daily_stock_analysis addresses a specific pain: turning scattered market data, news, and technical indicators into a single, readable decision report every trading day. It targets individual investors who hold a watchlist of stocks across A-shares, Hong Kong, US, Japan, South Korea, and Taiwan, and who want a morning briefing without opening multiple terminals. The README positions it as an AI decision dashboard with a score, trend, buy and sell points, risk alerts, and catalysts. It is not a trading bot. It is a scheduled analyst that compresses a lot of information into a digestible push notification. The intended user is someone comfortable with GitHub Actions and environment variables, not a casual retail investor who wants a plug-and-play app.
The Core Mechanism: LLM Plus Multi-Source Data
The system works by pulling market data from several free and token-based sources, then feeding that data to an LLM to generate a structured report. The README lists AkShare, Baostock, YFinance, Tushare, Pytdx, and Longbridge for quotes and K-lines. News and sentiment come from search APIs like SerpAPI, Tavily, Brave, Bocha, and SearXNG, plus an optional Stock Sentiment API for US stocks. The LLM can be any OpenAI-compatible endpoint, including Gemini, Claude, DeepSeek, Qwen, or a local Ollama model. The analysis produces a 'decision dashboard' with a score, a buy/hold/sell signal, risk points, and catalysts. The repository includes a market review mode that summarizes major indices, as shown in the README's example output. The key design choice is that the LLM is the aggregator: it takes raw numbers and news snippets and turns them into prose and bullet points. That means the output quality is bounded by the quality of the data sources and the prompt, not by a deterministic calculation engine.
Getting It Running: Three Paths, One Secret
The fastest path is GitHub Actions. You fork the repo, add secrets, and enable the workflow. The required secret is STOCK_LIST, a comma-separated list of tickers like 600519,hk00700,AAPL,7203.T,005930.KS,2330.TW. You also need at least one LLM API key, with ANSPIRE_API_KEYS and AIHUBMIX_KEY listed as recommended, and at least one notification channel, such as WECHAT_WEBHOOK_URL or TELEGRAM_BOT_TOKEN. The workflow runs every weekday at 18:00 Beijing time by default and skips non-trading days. For local use, the README gives the commands: git clone, pip install -r requirements.txt, copy .env.example to .env, then python main.py. There are flags like --dry-run, --stocks, --market-review, --schedule, and --serve-only. Docker deployment is also mentioned. The example secrets table is detailed, which helps, but the README does not show the full .env schema, so you will need to read docs/full-guide.md for the complete configuration surface.
The Free-Tier Promise and Its Hidden Costs
The headline feature is 'zero-cost scheduled runs' via GitHub Actions. That is true for compute, but the README is honest about the trade-off: free data sources like AkShare, Baostock, and YFinance are subject to rate limits, interface changes, and network instability. The documentation says stability is not guaranteed. For long-term or batch analysis, it recommends token-based sources like TickFlow, Tushare, or Longbridge. Similarly, the news search sources are mostly paid APIs. SerpAPI and Tavily have free tiers, but they are limited. The README suggests SearXNG as a self-hosted fallback with no quota, which is a real option for private deployment. So the 'zero cost' claim applies to the scheduling infrastructure, not to the data and LLM calls. If you use a paid LLM API and a paid news API, the per-run cost is small but not zero. If you use only free sources, you accept the risk of missing data or failed runs.
Real Limitations and Failure Modes
The most obvious limitation is that the system depends on external services that can fail. A rate-limited data source means the report may be incomplete or the workflow may error. The README mentions '断点续传' (resume from breakpoint) for scheduled tasks, but it does not explain how it works, so you cannot fully assess its reliability. Another limitation is that the LLM's analysis is probabilistic. The README shows a sample report with a score of 65 for one stock and a 'watch' signal, but that score is generated by a model, not by a backtested formula. There is no evidence in the README that the signals are statistically validated. The system also requires a non-trivial setup: you need at least one LLM key, one notification webhook, and a stock list. If you only have a GEMINI_API_KEY, you can run, but the README recommends a news source for better sentiment quality. Without a news source, the report will miss catalysts and sentiment, which are core parts of the dashboard. Finally, the README does not mention any backtesting feature beyond a '回测' (backtest) in the web workbench, but no details are given, so you should not assume it is robust.
A Real Alternative: Direct Data Scripts vs. This Aggregator
The obvious alternative is to write your own Python script using AkShare or yfinance directly, and then send the output to a chat webhook. That approach gives you full control over the data fields and the analysis logic. You could compute moving averages, RSI, and volume trends deterministically without an LLM. The difference is that daily_stock_analysis adds an LLM layer that interprets the data and writes natural-language risk points and catalysts. A direct script would not generate the 'decision dashboard' format or the multi-market coverage out of the box. It would also require you to handle news search separately, which the project bundles. Another alternative is a commercial service like a paid stock alert app, but those usually lack the multi-market breadth and the LLM summary. The trade-off is between a deterministic, controllable script and a ready-made, opinionated tool that saves you time but introduces model variability.
Maintenance and Upgrade Cost
The project is actively maintained, with three releases in August 2026 alone (v3.29.0, v3.30.0, v3.31.0). The README references a docs/full-guide.md and a market-support.md, which suggests the project tracks data source changes. The maintenance cost for you is low if you use GitHub Actions, because you just pull new commits from the upstream repo. But if you fork and modify the workflow, you will need to merge upstream changes, which can conflict. The license is MIT, so you can use and modify it freely, but the README includes affiliate links and sponsor references, which means the project has commercial partnerships. That does not affect your use, but it is worth noting that the recommended providers (Anspire, AIHubMix, TickFlow) are tied to referral codes. The documentation states that free sources are not guaranteed, so you should expect to revisit your data source configuration when upstream APIs change. The upgrade cost is mostly about re-testing after each release, because the README does not list a changelog.
Editorial conclusion
Adopt daily_stock_analysis if you want a zero-cost, scheduled LLM stock report delivered to a chat app and you are comfortable relying on free data sources that may throttle or break. Do not adopt it if you need guaranteed market data stability, low-latency alerts, or a tool that makes trading decisions for you. Before relying on it, verify which data source and news search provider you will configure for each market, test the workflow manually with a dry run, and confirm that the free tiers of AkShare, Baostock, and YFinance cover your tickers. The project is MIT-licensed and actively maintained, but its output is only as trustworthy as the upstream data and the LLM's interpretation.
Community notes