One scheduled report covers six stock markets
Daily Stock Analysis turns a watchlist into a recurring report built from prices, technical indicators, fundamentals, news, announcements, and optional social data. Its primary README is Chinese, and an English guide is linked beside it. The documented markets are mainland China, Hong Kong, the United States, Japan, South Korea, and Taiwan, plus ETFs. Output can arrive through a web workspace, desktop app, API, email, or several chat services.
The project is unusually broad for a personal market tool. Our commit e45d5ce checkout contained 1,117 files, about 405,341 lines of source, and 10 CI workflow files. The Web UI handles manual jobs, history, backtests, holdings, configuration, screening, and chat. Fifteen built-in analysis strategies cover subjects such as moving averages, trends, events, and growth. Custom strategies and multi-agent orchestration remain experimental according to the README.
Free feeds make a trial cheap, not dependable
AkShare, Baostock, and YFinance provide a zero-configuration data path. That lets a new user test quotes without buying a market feed. The README is direct about the limit: free sources can be rate-limited, changed, or disrupted by network conditions. More stable or market-specific coverage can use TickFlow, Tushare, or Longbridge credentials, with different fallback rules by market.
News has the same tradeoff. Anspire, SerpAPI, Tavily, Bocha, Brave, MiniMax, and a self-hosted SearXNG instance are documented choices. Release v3.31.0 changed public SearXNG discovery to explicit opt-in and made reports disclose when news evidence is absent. That is better than allowing a fluent model summary to hide an empty search result. It still leaves the operator responsible for checking whether the selected sources cover each ticker and language.
What happened when we ran it
Our sandbox installed 35 Python packages in 41 seconds and occupied 37 MB. The build completed in 10 seconds. We used commit e45d5ce in an unprivileged Debian container with 3 CPUs, 8 GB of RAM, Python 3.12, and no secrets. Pip-audit reported 0 known vulnerabilities in the installed dependency set.
The test command failed after 8 seconds with exit code 4, before normal test collection. tests/conftest.py imported anyio.to_thread, and Python raised ModuleNotFoundError: No module named 'anyio'. That log establishes a missing module in our installed environment. It does not show whether the cause is a dependency declaration, an install mode, or another packaging choice, so we will not guess.
This failure is more serious for a scheduled finance tool than a single edge-case assertion. No tests ran far enough to check data adapters, report generation, notifications, or portfolio logic in our sandbox. The install and 10-second build are encouraging, but they do not compensate for a suite that cannot start. Pin the commit, reproduce the environment, and resolve the missing import before enabling automatic updates.
GitHub Actions is simple once the secrets exist
The recommended path is to fork the repository, enable Actions, and add a watchlist, one model credential, and one notification destination. The default schedule runs at 18:00 Beijing time on trading days. Optional secrets add news search, social context, or paid market data. That is easy to operate after setup, though it spreads sensitive values across a fork and several outside services.
Local use starts with Python 3.10 or newer, a requirements install, and an .env file. Commands cover dry runs, selected tickers, market reviews, a scheduler, and server-only modes. The Web UI listens on 127.0.0.1:8000. Docker and desktop packaging have separate guides. Ollama is available for local models, while the Actions path is aimed at hosted model APIs.
A dashboard score is a prompt output, not a trade
The sample decision dashboard assigns buy, watch, or sell labels and includes a numeric score, technical stance, risks, catalysts, and recent developments. Those fields are useful as a checklist. They should not be mistaken for verified forecasts. Market feeds may disagree, news may be missing, and a language model can draw a confident connection that the underlying evidence does not support.
The project includes backtesting and holdings views, but the README's disclaimer says it is for learning and research. There is no claim that the displayed score predicts returns or that an order was executed. A competent user should open the cited news, compare the quote with a broker, and decide independently. Anyone who wants portfolio execution, fiduciary controls, or audited advice should walk away.
August maintenance is active and fast-moving
GitHub recorded 64,045 stars, 58 combined issues and pull requests, and a last push on August 25, 2026. Release v3.31.0 arrived on August 23. Its notes cover timeouts for agent tools, stock identity, fallback routes, schedule recovery, data-source disclosure, and a desktop dependency security fix. The combined open count includes pull requests, so it is not a defect total.
That activity is a strength and a reason to pin versions. The product touches model APIs, market feeds, search services, notification systems, a Python backend, and desktop code. Any one upstream change can alter the report. Daily Stock Analysis is best treated as a monitored research assistant: useful for gathering a morning or evening brief, unsuitable as the final authority over money. The missing anyio import in our run has to be fixed first.

