What This Project Does

ai-goofish-monitor is a multi task real time monitor and smart analysis system for Xianyu (Idle Fish), built on Playwright and AI, with a full featured web admin panel that helps you pinpoint the items you want among the huge pool of listings on the platform.

It lets you set up several independent monitoring tasks by keyword, price, filters, and an AI prompt. It scrapes Xianyu listings in real time or on a Cron schedule, runs deep analysis with a multimodal AI and gives recommendations, then pushes an instant alert through one of several channels when something matches. Task management, account management, AI criteria editing, run logs, and result browsing all happen inside the web UI. If you want to look at another scraping tool, see What Is Scrapling and How to Use It.

What Problem It Solves

Xianyu carries a massive number of listings that refresh extremely fast. Watching for specific bargains by hand is slow and you miss things often. ai-goofish-monitor automates the watching. You create a task in plain language, the AI writes the analysis criteria for you, and when a new listing appears the tool grabs the details and seller info, downloads the images, and asks the AI whether the item is worth buying. A match triggers an immediate push.

On top of that, it ships multi account and proxy pool rotation, failure retry, and risk control recovery to lower the chance of getting rate limited. It also supports three level region filters (province, city, district), free shipping, and new listing time windows, which cover the finer filtering needs.

Language and Architecture

  • Backend is Python (FastAPI). Main storage is SQLite, default file data/app.sqlite3, and the crawler module is spider_v2.py. On first start it builds the database automatically and tries to import history from the old config.json, jsonl, and price_history.
  • Frontend is Node.js plus npm (Vite, web-ui). The build output dist/ is served by FastAPI, and in development /api, /auth, and /ws are proxied to the backend on port 8000.
  • Scraping uses Playwright plus Chromium. The Xianyu login state is exported as JSON through a Chrome extension and stored in the state/ directory. The Docker image already bundles Chromium, so the host does not need a separate browser install.
  • Notifications cover ntfy.sh, WeCom (Enterprise WeChat), Bark, Telegram, and Webhook. Account and proxy rotation and failure protection are controlled by env vars like PROXY_ROTATION_* and TASK_FAILURE_*.
  • AI access needs OPENAI_API_KEY, OPENAI_BASE_URL, and OPENAI_MODEL_NAME, and any OpenAI compatible multimodal model works.

License

MIT

It hits a high frequency need in the Chinese speaking community, which is hunting for bargains on Xianyu, and bundles Playwright, multimodal AI, a complete admin UI, and one command Docker deployment into a ready to use package that fits the 2026 AI automation wave. It has about 17.8k stars in total and gained roughly 240 stars that day.

Where to Find It

https://github.com/Usagi-org/ai-goofish-monitor

Getting Started

To run it locally, start the backend with Docker or a local Python environment, then build the web-ui frontend and open the admin panel to configure monitoring tasks. The Xianyu login state must be exported through a Chrome extension into the state/ directory, and the AI side needs OPENAI_API_KEY, OPENAI_BASE_URL, and OPENAI_MODEL_NAME set. On the first run, test with a narrow keyword to confirm scraping and notifications both work before you add more tasks. Do not throw a pile of accounts and proxies at it on day one.

Summary

ai-goofish-monitor upgrades Xianyu bargain hunting from manual watching to AI driven automated monitoring. For anyone who wants to find good items on Xianyu efficiently, it removes the pain of writing your own crawler, wiring up a model, and building a dashboard, and that makes it an open source project worth a try.

FAQ

How is the Xianyu login state handled, is it a hassle? The login state is exported as a JSON file through a Chrome extension and dropped into the state/ directory. The Docker image already includes Chromium, so the host needs no separate browser, and you configure it once and reuse it.

Does the AI analysis have to use OpenAI's own models? No. It only needs the three variables OPENAI_API_KEY, OPENAI_BASE_URL, and OPENAI_MODEL_NAME, and any OpenAI compatible multimodal model works, so you can pick the one you prefer.

Can alerts reach my phone? Yes. It supports ntfy.sh, WeCom, Bark, Telegram, and Webhook, so pick a channel you already use, wire it up, and you get an instant push when a listing matches.