Oracle3
Open-source trading engine and MCP server for prediction markets. Fee-aware no-arbitrage trading across related contracts, live on Kalshi, Polymarket and Solana or on paper.
PanWatch — AI stock monitoring for A-shares, HK & US markets, powered by TradingAgents. Portfolio insights, real-time alerts & automated reports.|盯盘侠:覆盖 A股/港股/美股的 AI 盯盘、持仓分析、实时提醒与自动报告。
Translation pending
FinancePython · TypeScriptGitHub @TNT-LikelySelf-installOwner unconfirmed
Paste into Claude or ChatGPT for installation instructions suited to your environment.
Have you tried it? One tap is enough. No sign-in needed.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗🧠 Start from a portfolio holding → let a nine-agent TradingAgents research team analyze it → follow the bull/bear debate and risk review → receive a PM decision memo and the complete reasoning trail in your messaging app within 3–5 minutes.
| Logo | Introduction |
|---|---|
| 88API Token Aggregation Platform🧠 Access language and coding models including GPT, Claude, Gemini, Grok, DeepSeek, Kimi, and GLM;🎨 Image models: GPT-Image, Gemini, Grok, and more;🎬 Video models: Seedance, Veo, MiniMax H3, Kling, Grok, and more;🎙️ Speech capabilities: Whisper, TTS, and more. From copywriting and image generation and editing to video generation and voiceovers.🎁 New users receive trial credits upon registration to test model capabilities. Live customer support is available on the site!👉 Operated by a registered Hong Kong company · Stable availability · Fully operational, full-capability service · No reduced model intelligence · Invoices availableRegister now → |
The screenshots below use the English interface; Simplified Chinese is available throughout the same product surfaces.
| Portfolio · Multi-account overview | Opportunities · AI-scored ideas |
|---|---|
| Paper trading · Equity curve and performance | Deep stock analysis |
| Technical confluence · MACD/RSI/KDJ at a glance | Price alerts · Combined conditions |
📱 PanWatch is an installable PWA and can be added to your mobile home screen like a native app.
💡 If PanWatch is useful to you, please consider giving the project a ⭐ Star. It is the best way to support the project and help more people discover it.
| Capability | What you can do |
|---|---|
| Portfolio | Manage multiple brokerage accounts, track holdings and P&L, and set trading styles. |
| AI research | Follow technical, sentiment, news, and fundamentals analysis through debate, risk review, and a portfolio-manager decision. |
| Scheduled agents | Run pre-market, intraday, and closing workflows on eligible exchange trading days using your configured schedules. |
| Price alerts | Combine conditions with AND/OR logic and configure cooldowns, daily limits, expiration, and notification channels. |
| Opportunities | Review ranked candidates with entry levels, targets, and risk context. |
| Paper trading | Simulate signal-based entries and exits, then track equity and performance. |
| Notifications | Deliver reports and alerts through Telegram, WeCom, DingTalk, Feishu, Bark, or webhooks. |
| Mobile | Install the PWA on your home screen and use the same workspace on your phone. |
Stock and listed ETF search, watchlists, holdings, price alerts, quotes and candlesticks share the same workflow across mainland China, Hong Kong and US markets. Search by code or name (for example, 510300, 159915, 02800 or SPY). The asset type is saved with each instrument; select ETF for funds whose provider name does not identify them as ETFs.
ETF deep analysis uses fund-specific context and does not substitute company financial statements. Fund holdings, NAV, fees and tracking error are not yet supplied as structured data. Paper trading continues to use its existing market rules and cost model; ETF-specific T+0 exceptions and fee schedules are not modeled.
docker run -d \
--name panwatch \
--restart unless-stopped \
-e TZ=Asia/Shanghai \
-p 8000:8000 \
-v panwatch_data:/app/data \
sunxiao0721/panwatch:latest
Open http://localhost:8000 and create your login credentials.
Set TZ explicitly for background schedules and notification quiet hours, for example
-e TZ=UTC or -e TZ=America/New_York. The image defaults to Asia/Shanghai and does
not detect the host timezone. Interface timestamps and alert expiry inputs use the
browser timezone. Timezone policy
services:
panwatch:
image: sunxiao0721/panwatch:latest
container_name: panwatch
environment:
TZ: "Asia/Shanghai"
ports:
- "8000:8000"
volumes:
- panwatch_data:/app/data
restart: unless-stopped
volumes:
panwatch_data:
docker compose up -d
Change environment.TZ to your IANA timezone and run docker compose up -d to recreate
the container. Review existing cron and quiet-hour wall times before changing it;
the same 09:00 schedule will run at a different instant. Keep the data volume.
The image includes Playwright's system dependencies. Chromium's headless shell for screenshots is downloaded on first startup into the mounted volume (default /app/data/playwright), which requires network access and can take a few minutes.
If you do not need browser features such as screenshots, set PLAYWRIGHT_SKIP_BROWSER_INSTALL=1 to skip this installation.
| Agent | Purpose |
|---|---|
| Pre-market outlook | Combine overnight moves, news, and technical structure into a plan. |
| Intraday monitor | Watch unusual moves and technical signals during open sessions. |
| Daily report | Review the session and prepare the next trading day's plan. |
Schedules are configurable. Automatic runs filter exchange holidays before collection and analysis; intraday workflows also require an open trading session.
Select the brain icon beside a holding to start TradingAgents deep analysis. Four analyst roles feed a bull/bear debate, risk review, and portfolio-manager decision, with the reasoning trail available in the app and through configured notification channels. Runtime and cost depend on the selected models and configuration.
Deep-analysis flowchart · Backend architecture
HH:mm time in the rule dialog, or leave it empty so the rule never expires.| Variable | Description | Default |
|---|---|---|
AUTH_USERNAME | Preconfigured login username | Set on first visit |
AUTH_PASSWORD | Preconfigured login password | Set on first visit |
JWT_SECRET | Secret used to sign JWTs | Generated automatically |
DATA_DIR | Data storage directory | ./data |
TZ | Deployment timezone for Agent schedules and notification quiet hours; interface display/input use the browser timezone | Asia/Shanghai |
PLAYWRIGHT_SKIP_BROWSER_INSTALL | Skip the initial Chromium installation when browser features are not required | Not set |
LOG_LEVEL | Console log level. INFO prints business events and errors; use DEBUG for scheduler heartbeats, collection steps, and other diagnostics. The UI log panel always retains the complete log. | INFO |
HTTP_PROXY / HTTPS_PROXY / http_proxy | Outbound HTTP proxy. Configure it through an external environment variable, http_proxy=http://host:port in .env, or Settings → Global HTTP Proxy. Priority: external environment variables > UI > .env. NO_PROXY includes localhost,127.0.0.1 by default. | Not set |
OTEL_EXPORTER_OTLP_ENDPOINT | OpenTelemetry OTLP endpoint, such as http://jaeger:4318. Export remains completely disabled when this is empty. The optional dependencies in requirements-otel.txt are also required. | Not set (disabled) |
Requirements: Python 3.11+ / Node.js 24.14.0 / pnpm 9.15.9
# One-command development setup (recommended)
make dev-api # Backend with automatic venv/dependencies on :8000
make dev-web # Frontend with automatic pnpm install on :5183
# Or start each service manually
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
python server.py # Backend on :8000
cd frontend && pnpm install && pnpm dev # Frontend on :5183
The frontend development server runs at http://localhost:5183 and proxies /api to 127.0.0.1:8000.
Frontend UI conventions and checks
Backend: FastAPI / SQLAlchemy / APScheduler / OpenAI SDK
Frontend: React 18 / TypeScript / Tailwind CSS / shadcn/ui
PanWatch includes a built-in observability stack with structured logs, end-to-end trace_id correlation, the agent_runs table, and node-level TradingAgents progress and cost reporting. It works without any external service.
You can optionally add standard OpenTelemetry export and send traces to Jaeger, Tempo, Langfuse, or another compatible APM. PanWatch maps three types of spans:
trace_id from agent_runs.gen_ai child span following the OpenTelemetry GenAI semantic conventions, including gen_ai.system, gen_ai.request.model, input/output token usage, and gen_ai.operation.name.Export is a complete no-op when the optional dependencies are not installed and no endpoint is configured.
Enable it in three steps:
# 1. Install the optional dependencies
pip install -r requirements-otel.txt
# 2. Configure your collector or APM endpoint
export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
export OTEL_SERVICE_NAME=panwatch # Optional; defaults to panwatch
# 3. Start PanWatch normally. The startup log will confirm that OTel export is enabled.
python server.py
Run a local Jaeger instance to verify the integration:
docker run -d --name jaeger -p 16686:16686 -p 4318:4318 \
jaegertracing/all-in-one:latest
# Trigger an agent, open http://localhost:16686, and select service=panwatch.
Langfuse and Tempo work the same way: point OTEL_EXPORTER_OTLP_ENDPOINT to their OTLP endpoint.
The repository includes a GitHub Actions release workflow:
0.2.3 automatically builds and publishes:
sunxiao0721/panwatch:0.2.3sunxiao0721/panwatch:latestworkflow_dispatch and an explicit version.Configure these repository secrets before publishing:
DOCKERHUB_USERNAMEDOCKERHUB_TOKENFor sponsorship or partnership inquiries, contact [email protected].
PanWatch is free and open source. If it saves you time or improves your workflow, you can support continued development:
| Alipay | WeChat Pay |
|---|---|
Binance Pay — scan with the Binance app:
On-chain USDT (TRC20) — scan with any TRON wallet:
Address: TKBV69B2AoU67p3vDhnJUbMJtZ1DxuUF5C
Issues and pull requests are welcome. See the contribution guide for setup, validation, internationalization, custom agents, and market-data sources.
Community chat (Telegram): t.me/panwatch