PanWatch: self-hosted AI agents that watch your stocks
The MIT-licensed project chains four analyst agents into a bull-bear debate, then routes the verdict to Telegram, Feishu, Bark or a webhook.
In short
PanWatch is an open-source, self-hosted market monitor that pairs live A-share, Hong Kong and US price alerts with a multi-step chain of analyst agents built on the TradingAgents approach.
At a glance
- MIT license; at the time of retrieval the repository listed 913 stars, 203 forks and 219 commits on the main branch.
- Agent chain: four analyst roles, a bull-versus-bear debate, a risk review, then a portfolio-manager decision.
- Project's own figures: 3 to 5 minutes per run and about $0.05 per analysis on the default DeepSeek model.
- Alerts are delivered through Telegram, WeCom, DingTalk, Feishu, Bark and custom webhooks.
- Stack: FastAPI, SQLAlchemy and APScheduler on the back end, React 18 with TypeScript on the front end, Docker on port 8000.
PanWatch is an open-source market monitor you run on your own machine: it tracks mainland Chinese, Hong Kong and US tickers, then pushes the result of a multi-step agent analysis to a messaging channel of your choice.
The repository carries an MIT license and listed 913 stars, 203 forks and 219 commits on the main branch when we retrieved it.
The debate loop
What separates PanWatch from a plain alert bot is the TradingAgents layer. Four analyst roles work the same ticker from different angles: technicals, sentiment, news and fundamentals. Their views are then argued out bull against bear, passed through a risk review, and settled by a portfolio-manager role.
The project puts a full reasoning chain at 3 to 5 minutes and roughly $0.05 per analysis on the default DeepSeek model. Those numbers come from the repository itself and have not been independently measured.
Deterministic signals do the first pass
The expensive model calls sit behind a conventional indicator layer: moving-average alignment, MACD crossovers, Bollinger Bands, RSI and KDJ readings, volume-price behavior, candlestick patterns and multi-level support and resistance.
Alert conditions combine price, percentage move, turnover and volume ratio with AND or OR logic, plus time windows and cooldowns so a choppy session does not fire the same notice repeatedly. Delivery targets include Telegram, WeCom, DingTalk, Feishu, Bark and custom webhooks.
What it takes to run
A Docker container starts the app on port 8000, with a persistent volume for data and Asia/Shanghai as the default timezone. Building from source calls for Python 3.10 or newer and Node.js 18 or newer. The stack is FastAPI, SQLAlchemy, APScheduler and the OpenAI SDK behind React 18, TypeScript, Tailwind CSS and shadcn/ui, with optional OpenTelemetry export.
You supply your own model endpoint and key, which is also where the running cost lands. Holdings from several brokerage accounts can be tracked together, and a trading-style setting spans short-term, swing and long-term horizons.
The unverified part
Only the project's own description is available so far; no second, independent account of PanWatch exists to check it against. That leaves the quality of the analysis, the reliability of the market data feeds and the cost curve for a large watchlist untested.
One boundary is stated plainly, though: PanWatch produces analysis and notifications, not orders. Whatever the agents conclude, the trade is still yours to place.
FAQ
How much does one PanWatch analysis cost?
The project quotes about $0.05 for a full reasoning chain on the default DeepSeek model. That cost is billed by your model provider; the software itself is free under the MIT license. The figure is self-reported and not independently verified.
Which markets does PanWatch cover?
According to the repository, mainland Chinese A-shares, Hong Kong stocks and US stocks, with real-time monitoring and portfolio tracking across multiple brokerage accounts.
Does PanWatch place trades automatically?
No. The described scope is monitoring, analysis and notification through channels such as Telegram or Feishu. Order execution is not part of the documented feature set.