@XAMTO_AI: Now you can finally let AI keep an eye on bargains on Xianyu around the clock! : https://github.com/Usagi-org/ai-goofish-monitor… This tool is called ai-goofish-monitor, essentially an automated Xianyu item monitor.
Summary
ai-goofish-monitor is an open-source Xianyu item monitoring tool based on Playwright and AI, supporting multi-task concurrency, AI item analysis, multi-channel notifications, and more.
View Cached Full Text
Cached at: 06/11/26, 07:44 PM
Sniping bargains on Xianyu can now be left to AI watching for you 24/7! 🔗 : https://t.co/t2kWLa9PX0 This tool is called ai-goofish-monitor — essentially an automated Xianyu deal-hunting bot. It monitors all listings in real time, uses AI to judge value, authenticity, and pricing reasonableness, and instantly pushes notifications for unusually low prices. Still manually scrolling through thousands of posts? You’re already losing. https://t.co/riPAin91Z8
Usagi-org/ai-goofish-monitor
Source: https://github.com/Usagi-org/ai-goofish-monitor
Xianyu Smart Monitoring System
[中文] | English
A real-time multi‑task Xianyu monitor powered by Playwright and AI, with a full Web management interface.
Core Features
- Web‑based Visual Management: task management, account management, AI prompt editing, run logs, result browsing.
- AI‑Driven: create tasks in natural language, deep product analysis with multimodal models.
- Multi‑Task Concurrency: independent configuration of keywords, prices, filters, and AI prompts.
- Advanced Filtering: free shipping, new listing time range, province/city/district three‑level region filter.
- Instant Notifications: support for ntfy.sh, WeCom, Bark, Telegram, Webhook, and more.
- Scheduled Execution: Cron configuration for periodic tasks.
- Account & Proxy Rotation: multi‑account management, task‑account binding, proxy pool rotation with failure retry.
- Docker Deployment: one‑click containerized setup.
Screenshots
Monitoring Overview Task Management Result Viewing Notification Push
🐳 Docker Deployment (Recommended)
git clone https://github.com/Usagi-org/ai-goofish-monitor && cd ai-goofish-monitor
cp .env.example .env
vim .env # Fill in relevant configuration
docker compose up -d
docker compose logs -f app
docker compose down
If the image cannot be accessed or the download speed is slow, you can try using an accelerator:
docker pull ghcr.nju.edu.cn/usagi-org/ai-goofish:latest
docker tag ghcr.nju.edu.cn/usagi-org/ai-goofish:latest ghcr.io/usagi-org/ai-goofish:latest
docker compose up -d
- Default Web UI address:
http://127.0.0.1:8000 - The Docker image already includes Chromium, no additional browser installation on the host is required.
- Official image address:
ghcr.io/usagi-org/ai-goofish:latest - Update the image:
docker compose pull && docker compose up -d - If you modify
SERVER_PORTin.env, update the port mapping indocker-compose.yamlaccordingly. docker-compose.yamlmounts the SQLite main database to./data:/app/databy default; the database file isdata/app.sqlite3.- The following directories are persisted by default:
data/SQLite main storage (tasks, results, price history)state/login state cookie filesprompts/task promptslogs/run logsimages/product images and task temporary imagesconfig.json,jsonl/,price_history/– legacy data sources that are imported on first upgrade to SQLite.
Data Storage & Migration
- The current primary storage is SQLite, default path
data/app.sqlite3. - The database path can be customized via the environment variable
APP_DATABASE_FILE; in Docker it defaults to/app/data/app.sqlite3. - On startup, the application automatically creates the database and tables, and attempts to import historical data from legacy
config.json,jsonl/, andprice_history/once. state/,prompts/,logs/,images/remain file‑system directories and are not stored in SQLite.- Product images are temporarily saved to
images/task_images_<task_id>/and are cleaned up by default after the task finishes. - After the initial upgrade and once you confirm the data in
data/app.sqlite3is correct, you may decide whether to keep the legacy mounts (config.json,jsonl/,price_history/) depending on your deployment approach.
Minimum Configuration
| Variable | Description | Required |
|---|---|---|
OPENAI_API_KEY | AI model API key | Yes |
OPENAI_BASE_URL | OpenAI‑compatible endpoint URL | Yes |
OPENAI_MODEL_NAME | Model name that supports image input | Yes |
WEB_USERNAME / WEB_PASSWORD | Web UI login credentials (default admin/admin123) | No |
Se e the “Configuration Guide” section below for other settings.
First‑Time Use
- Open the default Web UI at
http://127.0.0.1:8000and log in. - Go to “Xianyu Account Management”, use the Chrome extension (https://chromewebstore.google.com/detail/xianyu-login-state-extrac/eidlpfjiodpigmfcahkmlenhppfklcoa) to export and paste a Xianyu login state JSON.
- The login state file will be saved to the
state/directory, e.g.,state/acc_1.json. - Return to “Task Management”, create a task, bind an account, and run it.
Creating Your First Task
- AI Judgment: Fill in “Detailed Requirements” and submit; a separate progress popup appears, and the analysis standard is generated asynchronously.
- Keyword Judgment: Fill in keyword rules; the task is created immediately without going through the AI generation process.
- Region Filter: Changed to a three‑level selector (province/city/district), with data built‑in from page snapshots.
User Guide
Click to expand Web UI feature instructions
Task Management
- Supports AI‑based creation, keyword rules, price range, new listing time range, region filter, account binding, and scheduling rules.
- AI task creation is a background job process; after submission, a separate progress popup opens.
- Region filtering significantly reduces the result set; leave empty by default.
Account Management
- Supports importing, updating, and deleting Xianyu login states.
- Each task can be assigned a specific account or left unbound for automatic selection by the system.
Result Viewing & Run Logs
- The results page and export functionality now query from SQLite instead of directly scanning
jsonlfiles. - The logs page shows the run process per task, making it easy to troubleshoot login expiration, anti‑spam blocks, and AI call issues.
System Settings
- View system status, edit prompts, and adjust proxy/rotation related settings.
Developer Guide
Requirements
- Python 3.10+
- Node.js + npm (verified locally with Node v20.18.3 can complete frontend build)
- Playwright CLI and Chromium. It is recommended to run
python3 -m pip install playwright && python3 -m playwright install chromiumbefore the first run. - Chrome / Edge browser (Chromium works in Linux;
start.shchecks for browser availability first)
git clone https://github.com/Usagi-org/ai-goofish-monitor
cd ai-goofish-monitor
cp .env.example .env
One‑Click Start
chmod +x start.sh
./start.sh
start.sh first checks Playwright CLI and browser prerequisites; once met, it automatically installs project dependencies, builds the frontend, copies the build artifacts, and starts the backend.
Manual Start
# Backend
python -m src.app
# Or
uvicorn src.app:app --host 0.0.0.0 --port 8000 --reload
# Frontend
cd web-ui
npm install
npm run dev
- FastAPI on startup automatically initializes SQLite and attempts to import legacy
config.json/jsonl/price_historyon the first run. spider_v2.pyreads tasks from SQLite by default; only when--config <path>is explicitly passed does it fall back to the JSON compatibility mode.- Default database path:
data/app.sqlite3. - The Vite dev server proxies
/api,/auth,/wstohttp://127.0.0.1:8000. npm run buildgeneratesweb-ui/dist/;start.shthen copies it to the repo rootdist/.- FastAPI serves root
dist/index.htmlanddist/assets/. ./start.shoutputs the access URLhttp://localhost:8000and API documentationhttp://localhost:8000/docs.
Tests & Validation
PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 pytest
cd web-ui && npm run build
Task Creation API
Click to expand API behavior details
POST /api/tasks/generatedecision_mode=ai: returns202and ajob; the job status must be polled.decision_mode=keyword: returns the created task immediately.
GET /api/tasks/generate-jobs/{job_id}: queries the AI task generation progress.POST /auth/status: validates Web UI login credentials.
Configuration Guide
Click to expand common configuration items
AI & Runtime
OPENAI_API_KEY/OPENAI_BASE_URL/OPENAI_MODEL_NAME: mandatory for AI model integration.PROXY_URL: specify a separate HTTP/SOCKS5 proxy for AI requests.RUN_HEADLESS: whether to run the spider in headless mode; should remaintruein Docker.SERVER_PORT: backend listening port, default8000.LOGIN_IS_EDGE: can switch to Edge kernel in local environments; Docker image does not include Edge, so Chromium is used inside containers.PCURL_TO_MOBILE: whether to convert PC product links to mobile links.
Notifications
NTFY_TOPIC_URLGOTIFY_URL/GOTIFY_TOKENBARK_URLWX_BOT_URLTELEGRAM_BOT_TOKEN/TELEGRAM_CHAT_ID/TELEGRAM_API_BASE_URLWEBHOOK_*
Proxy Rotation & Failure Protection
PROXY_ROTATION_ENABLEDPROXY_ROTATION_MODEPROXY_POOLPROXY_ROTATION_RETRY_LIMITPROXY_BLACKLIST_TTLTASK_FAILURE_THRESHOLDTASK_FAILURE_PAUSE_SECONDSTASK_FAILURE_GUARD_PATH
For a complete example, see .env.example.
Web Interface Authentication
Click to expand authentication details
- The Web UI uses a login page to collect credentials and validates them via
POST /auth/status. - After successful login, the frontend stores the login state locally in the browser for route guarding and WebSocket initialization.
- Default credentials:
admin / admin123. Be sure to change them in production.
🚀 Workflow
The diagram below shows the core processing logic of a single monitoring task from start to finish. The main service runs in src.app and launches one or more task processes based on user actions or scheduled triggers.
graph TD
A[Start monitoring task] --> B[Select account/proxy configuration];
B --> C[Task: search products];
C --> D{New product found?};
D -- Yes --> E[Fetch product details & seller info];
E --> F[Download product images];
F --> G[Call AI for analysis];
G --> H{AI recommends?};
H -- Yes --> I[Send notification];
H -- No --> J[Save record to SQLite];
I --> J;
D -- No --> K[Next page / wait];
K --> C;
J --> C;
C --> L{Anti‑spam / exception triggered?};
L -- Yes --> M[Rotate account/proxy and retry];
M --> C;
Frequently Asked Questions
Click to expand FAQs
Why isn’t AI task creation completed immediately?
In AI mode, the analysis standard is generated before the task is created. This process is now a background job; after submission, a separate progress popup is shown to avoid freezing the form for a long time.
Why is the region filter recommended to be left empty by default?
The region filter significantly reduces search results. It is suitable when you only want to look at a specific area. If you are first exploring the overall market, it’s better to leave it blank.
The local page says “frontend build artifacts not found”?
This means the root dist/ directory is missing. Run ./start.sh, or first execute npm run build in web-ui/ and then copy the build output to the repo root.
./start.sh says Playwright or browser is missing?
This is a prerequisite check in the script. Please install Playwright CLI and Chromium first, and ensure Chrome/Edge is available on the system (Chromium works on Linux), then run ./start.sh again.
Acknowledgements
Click to expand acknowledgements
During the development of this project, the following excellent projects were referenced, and we express our gratitude:
- superboyyy/xianyu_spider (https://github.com/superboyyy/xianyu_spider)
- Special thanks to @jooooody (https://linux.do/u/jooooody/summary) and the LinuxDo (https://linux.do/) community.
- Thanks also to ClaudeCode, Gemini, Codex and other model tools for making development easier and letting us experience the joy of Vibe Coding.
Notice
Click to expand notice details
- Please comply with Xianyu’s terms of service and
robots.txtrules. Do not make excessively frequent requests to avoid burdening the server or having your account restricted. - This project is intended for learning and technical research only. Do not use it for illegal purposes.
- This project is released under the MIT License, provided “as is” without any warranty of any kind.
- The project authors and contributors are not liable for any direct, indirect, incidental, or special damages or losses arising from the use of this software.
- For more details, please see the Disclaimer file.
Star History
Similar Articles
@Lonely__MH: Some advice for young people wanting to start a side hustle on Xianyu: Suddenly realized that using Hermes and Codex for my Xianyu side hustle was a complete waste of time. This is the ultimate companion for a Xianyu side hustle—the most amazing product I've experienced so far!! Just throw in a screenshot of your Xianyu product, and it directly brings together product, development, and testing three people, no nonsense, straight to work…
This tweet recommends an automated tool for Xianyu side hustles and three open-source projects, which can automatically monitor, handle customer service, and manage products, improving efficiency.
@XAMTO_AI: Another daring open-source observability tool that's going all out this time. The pain of being locked into SaaS vendor monitoring data is something only those who've experienced it truly understand: https://github.com/monoscope-tech/monoscope… This tool is called Monoscope, with three hardcore features: …
Monoscope is an open-source observability platform that stores logs, traces, and metrics in your own S3 buckets, supports natural language queries via LLMs, and uses AI agents to detect anomalies and send email reports.
@seclink: I spotted a hot new side-hustle on Xianyu: AI relay stations—demand far outstrips supply… Built with vibe-coding, an OpenAI-compatible relay is low-tech, cheap to run, and customers are queuing up… Wild-west phase = plenty of room for sharp indie devs to cash in.
A booming micro-business on Xianyu: devs use vibe-coding to spin up OpenAI-compatible relay APIs. Low barrier, tiny cost, huge demand—prime time for nimble indie developers to profit.
@AdamShao: Officially open-sourcing my vulnerability discovery tool: http://flounders.xyz This is an AI Agent-based fully automated vulnerability discovery workflow. You just tell the AI which project's vulnerabilities you want to find, and it will automatically download code and documentation, deeply audit the code, discover suspicious vulnerabilities, automatically verify them locally and online…
Flounder is an open-source AI agent-based tool that automates vulnerability discovery in codebases. Users describe the target and the tool autonomously downloads code, conducts deep code audits, tests vulnerabilities locally and online, and generates reports.
@justloveabit: With This Open-Source Tool, I Got a Team of AIs to Work for Me. Here's the deal: I've been tinkering with various AI agents lately. Multiple Claude Code windows open, Codex running, occasionally using Cursor. The result? Total chaos—I had no idea what each agent was doing or how much it was costing. Restar…
This article introduces Paperclip, an open-source tool designed to centrally manage and orchestrate multiple AI agents. By simulating a corporate organizational structure, task assignment, and budget control, it addresses key pain points in multi-agent collaboration, such as lost context, unpredictable costs, and chaotic scheduling.