Skip to content

Repository files navigation

ListHop 🏷️ 🦘

CI

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

How it works

  1. Open your own Poshmark closet and click Capture listings — ListHop auto-scrolls and reads every item.
  2. Open the listing manager, pick an item, click Post to eBay. A new eBay tab opens with the form filled and your photos attached.
  3. 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.

Features

  • 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

What carries over, honestly

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.

Install from source

npm install
npm run build

Then open chrome://extensions, turn on Developer mode, click Load unpacked, and select the dist/ folder.

Development

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

Support

ListHop is free and always will be. If it saves you an afternoon of retyping, you can buy me a coffee

Licence

MIT © Davis Quinn

ListHop is an independent tool. It is not affiliated with, endorsed by, or connected to Poshmark, Inc. or eBay Inc.

About

ListHop copies a seller's own Poshmark listings into eBay's listing form so they do not have to retype them. Everything it does serves that one purpose: reading the listings in the user's own closet, and filling eBay's new-listing form with that data. It stores nothing off the user's machine and never submits a listing on their behalf.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages