GitHub's trending page has a new kind of hit: a self-hosted agent that watches China's biggest second-hand marketplace for you and messages you when something worth buying appears.
The project, Usagi-org/ai-goofish-monitor, is a Python/FastAPI service with a web admin UI, a Playwright-driven crawler and a multimodal model in the middle. It trended on Wednesday with roughly 242 stars in a day. The function is easy to state: create a task — by keyword rules, or by describing in natural language what you are hunting for — and the system polls Xianyu (Goofish, Alibaba's used-goods marketplace), pulls each new listing's photos, title and seller details, and asks a vision-capable model whether it matches.
Filters are commerce-grade: price range, how recently an item was posted, and province/city/district selection. Notifications go out over ntfy, WeCom, Bark, Telegram or a plain webhook. Results and price history land in SQLite; deployment is a docker compose file; the default web login is admin/admin123, which the README tells you to change.
The interesting layer is the one that keeps the crawler alive. Accounts are imported as exported browser login cookies, one account can be bound per task, and the system manages a proxy pool with rotation modes, retry limits and a blacklist TTL. When a task hits a failure threshold it pauses and rotates. The per-task logs are built for exactly three diagnoses, in the README's own words: expired login state, platform risk control, and AI call failures.
That list is the story. The project's authors treat a platform's anti-automation controls as a routine operating condition rather than an edge case, and they ship the machinery to route around them: borrowed sessions, rotating IPs, backoff. The repository's disclaimer says the tool is for study and technical research, that users should respect Xianyu's user agreement and robots.txt, and that the authors accept no liability.
Why this matters beyond one marketplace: the scarce resource on a used-goods site is attention at the moment of listing. Dealers have always used alerts and refreshers; what changed is that a model can now read a blurry photo of a camera body and judge whether the model, condition and included accessories plausibly match the price. That judgment used to require a person who knew the category. It now costs a fraction of a cent per listing, and the repo's own account/proxy plumbing exists because thousands of listings a day is exactly the traffic pattern platforms try to stop.
The second-order effects are predictable and already visible in the design. Desirable items get swarmed within minutes; ordinary buyers compete with scripts they cannot see; and a platform's abuse team inherits an arms race it did not ask for. Account and proxy rotation are not neutral features — they are the cost of doing business when your traffic is unwanted.
Worth naming what the project does not solve: payment, inspection, shipping, or the fraud that runs the other way. Sellers listing counterfeits and misdescribed goods are precisely why the model is asked to judge a listing's photos in the first place, and no classifier fixes a marketplace where the other side is also optimising.
The honest framing is that this is what agentic commerce looks like before platforms build an answer: individual operators running their own crawler-plus-judge stack, with the operational burden — sessions, IPs, failure budgets — pushed onto the user. The metric that matters is not the star count. It is how long an account survives, and whether marketplaces respond with better detection, rate limits, or a paid listing API that makes the whole exercise pointless.




