How tnt-likely/panwatch works
PanWatch is a self-hosted, multi-market stock-monitoring and AI research application. Users manage watchlists and portfolio accounts, inspect market data and strategy-ranked opportunities, then run deep multi-agent analysis or use scheduled agents; results can feed alerts and multi-channel notifications. The frontend talks to a FastAPI application assembled from domain routers, with shared market-data, AI, persistence, scheduling, and notification services. The README documents the major product capabilities; some backend wiring is unsampled, so the graph shows only supported orchestration and documented flows.
Main entry points: engine.py Market-data engine · application.py FastAPI app · strategy_engine.py Signal strategies · price_alert_engine.py Price alert engine
Components 23
Web experience
- PanWatch UI
frontend/src/App.tsx - API client
frontend/packages/api/src/client.ts - Assistant interface
frontend/src/pages/Assistant.tsx
Research and strategy
- Assistant service
src/modules/assistant/service.py - Assistant task runner
src/modules/assistant/task_runner.py - TradingAgents analysis
src/modules/automation/tradingagents/agent.py - Signal strategies
src/modules/strategy/strategy_engine.py - Strategy backtest
src/modules/strategy/backtest/engine.py
Monitoring and trading
- Scheduled agents
src/modules/automation - Market endpoints
src/modules/market/api - Market monitoring
src/modules/market - Portfolio management
src/modules/portfolio - Paper trading
src/modules/paper_trading/paper_trading_engine.py - Price alert engine
src/modules/market/price_alert_engine.py
Shared platform
- FastAPI app
src/bootstrap/application.py - Market-data engine
packages/marketdata/src/marketdata/engine.py - Notifications
src/platform/notifications/notifier.py - AI provider client
src/platform/ai/ai_client.py - Application database
src/platform/persistence/database.py
Other components
- Investor
- Market-data vendors
- OpenAI-compatible model
- Messaging channels
Connections 30
- Investor → PanWatch UI: uses
- PanWatch UI → API client: requests data
- API client → FastAPI app: calls API
- FastAPI app → Market endpoints: mounts routes
- FastAPI app → Assistant service: mounts routes
- FastAPI app → Portfolio management: mounts routes
- FastAPI app → Price alert engine: mounts routes
- Assistant interface → Assistant service: starts analysis
- Assistant service → Assistant task runner: runs task
- Assistant task runner → AI provider client: requests model
- AI provider client → OpenAI-compatible model: sends prompts
- Assistant task runner → Application database: stores task state
- Investor → Portfolio management: manages accounts
- Portfolio management → Application database: reads and writes
- TradingAgents analysis → AI provider client: uses model
- Scheduled agents → TradingAgents analysis: runs analysis
- Scheduled agents → Notifications: delivers reports
- Market endpoints → Market-data engine: requests quotes
- Market-data engine → Market-data vendors: fetches data
- Market monitoring → Market-data engine: reads market data
- Market monitoring → Price alert engine: evaluates rules
- Price alert engine → Market-data engine: loads quotes and klines
- Price alert engine → Notifications: sends alerts
- Notifications → Messaging channels: delivers messages
- Signal strategies → Application database: stores signals
- Signal strategies → Market-data engine: uses market inputs
- Strategy backtest → Signal strategies: evaluates signals
- Paper trading → Application database: reads and writes trades
- Paper trading → Market-data engine: loads quotes
- Paper trading → Signal strategies: uses strategy signals