Nine agents turn one holding into a research debate
PanWatch can send a holding through 9 specialist roles, moving from technical, sentiment, news, and fundamental analysis into bull and bear debate, risk review, and a portfolio-manager decision. The README says a deep analysis takes 3 to 5 minutes and can be pushed to Telegram, WeCom, or DingTalk. That makes the project useful when a price alert alone is too thin and you want the reasoning saved beside the position.
The web app covers A-shares, Hong Kong stocks, and US stocks. It combines multiple account views, watchlists, technical indicators, compound alert rules, scheduled agents, paper trading, news, and a PWA interface. Current source also contains an authenticated MCP route and its tests, so another compatible client can query the same system. This is a personal research workstation with many moving parts, not a narrow market-data library.
The 5-minute setup promise assumes outside services work
The README presents a single Docker command and says configuration can be finished in 5 minutes. Port 8000 serves the app, and a named volume keeps the database and settings. First boot can take longer because Chromium is downloaded into the data volume unless PLAYWRIGHT_SKIP_BROWSER_INSTALL=1 disables browser features. The image itself includes Chinese fonts and the system libraries Playwright needs.
AI analysis still needs a model. PanWatch accepts OpenAI-compatible providers such as OpenAI, DeepSeek, and Zhipu, or a local Ollama service. Alerts depend on whichever notification channel you configure. Market quotes, charts, news, and fundamentals come from outside data sources, so running the web app on your server does not make the entire research chain local. A local model reduces one disclosure path, but feed availability and accuracy remain operating concerns.
What happened when we ran it
Our sandbox installed PanWatch at commit 89bdf3f in 31 seconds. The Python environment pulled 172 packages and occupied 595 MB on disk. The build completed successfully in 1 second. This was a fresh Debian container with 3 CPUs, 8 GB of RAM, no secrets, and no privileged access, so the result reflects repository setup rather than an already prepared developer machine.
The test command ran for 34 seconds and exited 1. Pytest reported 782 passed, 2 failed, and 3 skipped of 784. Both failures were in tests/test_pdf_export.py. One expected Chinese company text to remain in the PDF text layer, while the other expected complete analyst and debate content from raw_data. The extracted output did not contain those strings. The log establishes the missing text, but it does not identify the cause.
Pip-audit found 0 known vulnerabilities in the installed packages. The 13.3 MB checkout contained 568 files and roughly 105,888 lines of source. It also had 2 CI workflow files, a Dockerfile, and a tests directory. Those are good maintenance signals, although a clean dependency audit does not cancel a failed functional test in a format users may archive or share.
Two PDF failures matter beyond test-suite neatness
A PDF report is useful only if the investor can read, search, copy, and preserve the analysis. One failed test specifically checks that Chinese characters enter the text layer instead of becoming unreadable glyphs. The other checks whether the attachment contains the full analyst and debate text rather than a shorter summary. With 2 failures in that area, we would keep the web record as the source of truth until exports pass on the intended deployment.
That caution fits the product's larger job. PanWatch may combine several indicators and 9 agent roles, but extra opinions do not turn market data or generated prose into certainty. Use the output to assemble questions, compare cases, and record a decision trail. Do not let an alert or model rating place a trade by itself. Open issue 121 also shows that live brokerage amounts and positions are still a requested capability, so manual portfolio accuracy deserves routine checks.
Version 0.14.0 shipped with active issue and pull-request work
GitHub recorded a push on September 21, 2026, and release 0.14.0 was published the same day. The repository had 1,106 stars and 63 combined open issues and pull requests when fetched. We counted 48 issues and 15 pull requests in that open set, with issue activity on September 20 and pull-request activity on September 21. This is an active project, though the pace and v0.x version also suggest frequent change.
Documentation is detailed for Chinese readers. The README explains Docker, local development, first-run Chromium behavior, providers, channels, proxy settings, OpenTelemetry, and release images. The repository tree has no English README, and the contribution guide is also Chinese. An English-speaking operations team can translate commands, but troubleshooting model behavior, market conventions, and UI labels will still take more effort than the Docker command implies.
Our 595 MB install earns a trial, not unattended trust
Choose PanWatch when Chinese-market coverage, a private portfolio database, and configurable AI research belong in one self-hosted interface. TradingAgents is the cleaner choice for experimenting with the 9-agent debate alone. OpenBB suits a programmable research stack, while Ghostfolio is a calmer fit for portfolio records without model-generated trading opinions. Each alternative removes some of PanWatch's breadth and some of its operating burden.
Our 31-second install and 782 passing tests make PanWatch easy enough to evaluate in an isolated account. The 2 PDF failures set the boundary for a recommendation: compare reports with their source data, test notification delivery, and confirm market quotes before depending on the system. If that verification sounds excessive for a personal dashboard, the project is already larger than the problem you need to solve.

