Commands

Seven verbs.

Draft and outfit are read-only, gui gives you a local review-and-publish dashboard, and post places the eBay listing once you've reviewed the draft. This static GitHub Pages site is documentation only; it never handles credentials or connects to your local GUI.

VerbWhat it doesPrincipal flags
draftPhotographs to attributes, comparables, price, and listings. Writes draft.json and a paste sheet. Read-only.--photos --notes --platforms --clean --out
outfitDetects every sellable piece in one photograph, crops each, and drafts them separately: one paste sheet per piece plus a detection overlay. Read-only.--photos --notes --out
guiStarts the loopback dashboard so you can review, edit, recover, and publish a stored draft from one screen. It prints a tokenless local URL; API/photo requests are token-protected. Uncheck eBay for Poshmark/Depop copy-paste mode.--port GUI_HOST + GUI_ALLOW_REMOTE=1 (opt-in)
indexEmbeds your reference photos (refs/) into brand-index.json for the visual brand match.--dir --out
postPlaces the eBay listing from a draft.--draft --images --location --fulfillment --payment --return
auth-urlPrints the eBay consent URL for one-time authorisation.None
auth-exchangeExchanges the returned code for a refresh token.<code>
See the full procedure Download the app Or start npm run gui locally.
Each verb, shown

What every command looks like when it runs

The same yellow dress and courtyard photograph as elsewhere on the site; illustrative outputs, faithful to what the tool prints.

draft
npm run draft -- --photos dress.jpg --clean --notes "worn once"
Terminal output of the draft run: attributes read, the exact piece named Valentino, retail found, draft saved
outfit
npm run outfit -- --photos courtyard.jpg
What it prints
Detecting pieces in courtyard.jpg ...
Detected 3 piece(s):
  1. scarf-print maxi dress, 280-650 USD · Etro (verify)
  2. leather sandals, 60-140 USD
  3. sunglasses, 40-90 USD
Wrote outfit.svg and 3 sheet(s) (outfit-1.md ...). Review before sharing.
The outfit.svg overlay: Etro scarf-print maxi dress, leather sandals, sunglasses detected in a courtyard
gui
npm run gui
npm run desktop
npm run desktop:dist
What it prints
GUI listening on http://127.0.0.1:3000
Open this local URL, upload photos, review the draft, then publish or copy listings.
Drafts and results survive refresh/restart; successful targets are skipped on retry.

The GUI accepts up to 12 raster photos (10 MiB each, 30 MiB total) in a 40 MiB request, keeps them in a private TTL directory, and requires public HTTPS image URLs for eBay. If eBay is not selected, no eBay active/sold comps or eBay credentials are needed; each card has a Copy listing button. Its collapsed Settings panel keeps credentials in process memory only. npm run desktop opens the same dashboard in a window; npm run desktop:dist builds a macOS DMG or a Windows installer on that OS. Poshmark/Depop browser flows stay off until ENABLE_BROWSER_AUTOMATION=1 plus a configured JSON flow; install Chromium with npx playwright install chromium. This local HTTP URL is not a public deployment: remote use needs a public HTTPS server and authentication.

index
npm run index -- --dir refs
What it prints
Embedding reference photos in refs/ (first run downloads the model)...
Indexed 3 photos across 3 labels -> brand-index.json. Set ENABLE_BRAND_MATCH=1 to use it.
post
npm run post -- --draft draft.json --images https://host/dress.clean.png --location my-loc --fulfillment 1201... --payment 1202... --return 1203...
What it prints
Publishing "Valentino Embroidered Linen Midi Dress Yellow Daisy Applique" at 1650 ...
Live. offerId=8724531012 listingId=1160245822
auth-url
npm run auth-url
What it prints
Open this URL, sign in, approve, then copy the ?code= value from the redirect:
https://auth.sandbox.ebay.com/oauth2/authorize?client_id=Isabel...&redirect_uri=Isabel_Wu-...&response_type=code&scope=...
auth-exchange
npm run auth-exchange -- v%5E1.23%40dAAE...
What it prints
Add this to your .env:
EBAY_USER_REFRESH_TOKEN=v^1.1#i^1#p^3#r^1... (kept private, never committed)