@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.

X AI KOLs Timeline Tools

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.

Looking for bargains on Xianyu? Now you can let AI keep an eye on them for you 24/7! 🔗 : https://t.co/t2kWLa9PX0 This tool is called ai-goofish-monitor, which is essentially an automated Xianyu item monitor. It monitors all listings on the platform in real time, and AI automatically evaluates cost-effectiveness, authenticity, and price reasonableness. When it finds an unusually low price, it pushes the alert directly to you. Still manually scrolling through thousands of listings? You're really missing out. https://t.co/riPAin91Z8
Original Article
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_PORT in .env, update the port mapping in docker-compose.yaml accordingly.
  • docker-compose.yaml mounts the SQLite main database to ./data:/app/data by default; the database file is data/app.sqlite3.
  • The following directories are persisted by default:
    • data/ SQLite main storage (tasks, results, price history)
    • state/ login state cookie files
    • prompts/ task prompts
    • logs/ run logs
    • images/ product images and task temporary images
    • config.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/, and price_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.sqlite3 is correct, you may decide whether to keep the legacy mounts (config.json, jsonl/, price_history/) depending on your deployment approach.

Minimum Configuration

VariableDescriptionRequired
OPENAI_API_KEYAI model API keyYes
OPENAI_BASE_URLOpenAI‑compatible endpoint URLYes
OPENAI_MODEL_NAMEModel name that supports image inputYes
WEB_USERNAME / WEB_PASSWORDWeb UI login credentials (default admin/admin123)No

Se e the “Configuration Guide” section below for other settings.

First‑Time Use

  1. Open the default Web UI at http://127.0.0.1:8000 and log in.
  2. 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.
  3. The login state file will be saved to the state/ directory, e.g., state/acc_1.json.
  4. 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 jsonl files.
  • 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 chromium before the first run.
  • Chrome / Edge browser (Chromium works in Linux; start.sh checks 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_history on the first run.
  • spider_v2.py reads 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, /ws to http://127.0.0.1:8000.
  • npm run build generates web-ui/dist/; start.sh then copies it to the repo root dist/.
  • FastAPI serves root dist/index.html and dist/assets/.
  • ./start.sh outputs the access URL http://localhost:8000 and API documentation http://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/generate
    • decision_mode=ai: returns 202 and a job; 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 remain true in Docker.
  • SERVER_PORT: backend listening port, default 8000.
  • 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_URL
  • GOTIFY_URL / GOTIFY_TOKEN
  • BARK_URL
  • WX_BOT_URL
  • TELEGRAM_BOT_TOKEN / TELEGRAM_CHAT_ID / TELEGRAM_API_BASE_URL
  • WEBHOOK_*

Proxy Rotation & Failure Protection

  • PROXY_ROTATION_ENABLED
  • PROXY_ROTATION_MODE
  • PROXY_POOL
  • PROXY_ROTATION_RETRY_LIMIT
  • PROXY_BLACKLIST_TTL
  • TASK_FAILURE_THRESHOLD
  • TASK_FAILURE_PAUSE_SECONDS
  • TASK_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.txt rules. 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

Star History Chart

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…

X AI KOLs Timeline

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: …

X AI KOLs Timeline

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.

@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…

X AI KOLs Timeline

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…

X AI KOLs Timeline

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.