Copies your Poshmark listings into eBay's listing form, photos and all. Capture your closet once, then cross-post an item in two clicks instead of retyping it.
A Manifest V3 Chrome extension for resellers who list the same item on more than one site. Existing crosslisters cost $20–70/month and are built for full-time sellers; ListHop is free, runs entirely in your browser, and has no account to sign up for.
👉 Chrome Web Store (pending review) · Website · Privacy policy
- Open your own Poshmark closet and click Capture listings — ListHop auto-scrolls and reads every item.
- Open the listing manager, pick an item, click Post to eBay. A new eBay tab opens with the form filled and your photos attached.
- You review it and press List. ListHop never submits a listing for you.
Everything runs at deliberately human speed — randomised pauses between actions, never a burst of clicks — because Poshmark and eBay both rate-limit aggressive automation. A slow cross-post beats a flagged account.
- Whole-closet capture — title, description, price, original price, size, brand, category, condition, colour and up to 8 photos per item
- Photos carry over — downloaded and attached to the eBay listing automatically, which is the worst part of doing this by hand
- Never auto-submits — the form is filled and left for you; enforced in code and asserted by tests
- Only your own closet — capture verifies the closet belongs to the signed-in account and refuses otherwise
- Pause anything mid-run — stops within one action, from the popup or the in-page widget
- Export to CSV — every field, in a file that opens cleanly in Excel and Google Sheets
- Search and filter your captured listings by title, brand, category or cross-post status
- No backend at all — no account, no server, no analytics; check the Network tab yourself
- Survives a browser restart — if Chrome suspends the extension mid-run, you get a "resume?" prompt rather than silent activity
Poshmark records about six useful attributes; eBay's clothing categories ask for more than a dozen, each from its own controlled list.
| Filled for you | Left for you |
|---|---|
| Title (truncated to eBay's 80 chars), price, description, photos, colour, size | Category, condition, and eBay's extra specifics like sleeve length or occasion |
That gap is a vocabulary mismatch between the two sites, not a bug — ListHop tells you exactly which fields it left and what to set. ARCHITECTURE.md explains why in detail.
npm install
npm run buildThen open chrome://extensions, turn on Developer mode, click Load unpacked, and select the dist/ folder.
| Script | What it does |
|---|---|
npm run build |
Type-checks, then builds a production bundle into dist/ |
npm run build:test |
Same, plus test-only affordances (sample listings, eBay form diagnostics). Never ship this. |
npm run zip |
Packages dist/ for the Chrome Web Store. Refuses to package a test build. |
npm run dev |
Vite watch build; reload the unpacked extension to pick up changes |
npm test |
Vitest unit tests (198 of them) |
npm run typecheck |
Type check only |
npm run icons |
Regenerates public/icons/*.png — the icons are drawn in code, no binary assets |
npm run screenshots |
Store screenshots, captured from the real extension via Playwright |
npm run promo |
Chrome Web Store promo tiles at their exact required sizes |
manifest.json MV3 manifest (source paths; the build rewrites them to .js)
src/
background/ Service worker: message router, photo downloads, job coordination
content-scripts/
poshmark/ Closet capture: page detection, scraping, injected widget
ebay/ Form filling: field location, human-speed writes, photo upload
popup/ Page status, quick actions, global pause
panel/ Listing manager: list, search, filter, CSV export, cross-post
options/ Settings page
shared/ constants, types, storage wrappers, field mapping, feature flags
utils/ humanDelay, DOM helpers, photo cache, pause gate
tests/ Vitest, incl. a fixture cut from a real Poshmark listing page
tools/ Icon generator, store packaging, screenshot and promo capture
docs/ The website and privacy policy, served by GitHub Pages
- ARCHITECTURE.md — the decisions worth knowing before changing anything
- TESTING.md — manual QA checklist, including how to test with an empty closet
- STORE_LISTING.md — listing copy and permission justifications
ListHop is free and always will be. If it saves you an afternoon of retyping, you can buy me a coffee ☕
MIT © Davis Quinn
ListHop is an independent tool. It is not affiliated with, endorsed by, or connected to Poshmark, Inc. or eBay Inc.