mrkeyoor.com_
Mon 21 Sept 15:52 UTC
Self-Hostedevaluationupdated 21 Sept 2026

PanWatch review

PanWatch's primary documentation and interface are Chinese, and the repository does not provide an English README. It is a self-hosted stock monitor for A-shares, Hong Kong stocks, and US stocks, combining portfolios, alerts, simulated trading, market data, and multi-agent analysis in one web app.

Verdict

Our PanWatch run installed 172 packages and built successfully, but 2 of 784 tests failed on Chinese PDF text and full-report content. It is worth trying for a Chinese-speaking self-hoster who wants A-share monitoring and is prepared to verify every report before acting. Wait if searchable PDF exports, brokerage syncing, or English operations are requirements rather than conveniences.

We ran it

Lab card: what happened when we ran PanWatchScreenshot of PanWatch (github.com/TNT-Likely/PanWatch)
Install✓ · 31s172 packages · 595 MB
Build✓ · 1s
Tests✗ · 34s782 passed · 2 failed · 3 skipped of 784 (pytest)
Known vulns0(pip-audit)
Repo568 files~105,888 lines of source · 13.3 MB · 2 CI workflows · Dockerfile · tests dir

Answers from our run

Does PanWatch build from source?

Dependencies installed in 31 seconds (172 packages), and the build succeeded in 1 seconds. We cloned commit 89bdf3f into a clean Debian container with 3 CPUs and no project-specific setup.

Do PanWatch's tests pass?

Not all of them: 782 of 784 passed and 2 failed when we ran the project's own test command (pytest). Some failures need services or credentials a bare container does not have.

Does PanWatch have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use PanWatch?

English-only teams: the main README, contribution guide, setup explanations, and interface examples are in Chinese, with no English README in the repository.

What are the alternatives to PanWatch?

TradingAgents, OpenBB, Ghostfolio. Our PanWatch run installed 172 packages and built successfully, but 2 of 784 tests failed on Chinese PDF text and full-report content.

Setup3/531-second install, but first boot and outside services add work
Docs3/5Detailed Chinese setup; no English README
Community4/51,106 stars with issues and PRs updated this week
Maturity3/5Broad v0.14.0 feature set, with 2 PDF tests still failing

Who it’s for

Chinese-speaking investors who want portfolio monitoring and AI-assisted research on their own server.
Developers tracking A-shares alongside Hong Kong and US holdings in one interface.
Self-hosters willing to connect an OpenAI-compatible model or local Ollama service and maintain market-data access.
Tinkerers who want alerts, paper trading, scheduled reports, and an MCP endpoint around the same portfolio data.

Who it’s NOT for

English-only teams: the main README, contribution guide, setup explanations, and interface examples are in Chinese, with no English README in the repository.
Anyone who needs dependable searchable PDF exports today: 2 of 784 tests failed because Chinese text and full analysis content could not be found in generated PDFs.
Investors who expect automatic brokerage syncing: open issue 121 asks for live account amounts and positions, while the documented setup starts with manually adding holdings.
Users who want a small price notifier without browser or AI machinery: the default image supports Playwright, first boot may download Chromium, and analysis needs a configured model service.
People planning to act on model output without review: the product produces research and trading suggestions, while its data feeds and model responses remain outside sources that can be wrong or unavailable.

Setup reality

Our sandbox installed commit 89bdf3f in 31 seconds, adding 172 packages and using 595 MB. The build passed in 1 second. Tests exited 1 after 34 seconds: pytest reported 782 passed, 2 failed, and 3 skipped of 784. Pip-audit found 0 known vulnerabilities.

The Docker route exposes port 8000 and persists /app/data. Useful analysis needs an OpenAI-compatible provider or Ollama, while notifications may need Telegram, WeCom, DingTalk, Feishu, Bark, or webhook credentials. First use also creates the login, and the README advises setting the time zone.

The image includes Playwright system libraries, but Chromium downloads on first start unless browser support is skipped. Source development needs Python 3.10 or newer, Node.js 18 or newer, and pnpm. Live behavior also depends on outbound access to market and news sources.

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.

Alternatives

ProjectWhat it isPick it when
TradingAgents gh↗A research framework where specialist agents debate a market decision without PanWatch's full portfolio dashboard.pick this instead when the multi-agent research process matters more than alerts, account views, and a self-hosted PWA.
OpenBBA financial-data platform and developer toolkit with broader research APIs and data-provider choices.pick this instead when analysts need a programmable research platform rather than a personal monitoring dashboard.
GhostfolioA self-hosted wealth and portfolio tracker centered on holdings, allocation, and performance.pick this instead when portfolio accounting matters more than AI debates, technical signals, and Chinese-market alerts.

What people are saying

  1. [github-trending] TNT-Likely/PanWatch

Sources

  1. PanWatch README
  2. PanWatch repository facts
  3. PanWatch 0.14.0 release
  4. Live account synchronization request
  5. PanWatch MCP API at measured commit

More self-hosted reviews

wiki · dashy · animeko · server · iptv · Bubble-Card · the whole board →