Skip to content
Text Sellee
SELLEE LOCAL • OPEN SOURCE

Run Sellee on your own machine.

The same open-source agent behind Sellee, running on your machine and your own marketplace accounts. It is free and open source, forever: no paid tier, with nothing metered.

macOS • Windows • Linux • about 10 minutes

Before you start
Chrome or Chromium: the browser Sellee drives, and where you sign into your marketplaces yourself.
Node.js and NPM: Sellee uses Playwright to drive your browser.
Claude Code, signed in: the claude CLI, which is a separate install from the desktop app. Your paid Claude subscription, or an Anthropic API key on the Docker path.
Install
git clone https://github.com/carousell/sellee
cd sellee && ./setup

Clone it anywhere except ~/Documents, ~/Desktop or ~/Downloads. macOS blocks background apps from reading those, so ./setup refuses them. ~/dev/sellee works.

One paste. Setup says what it will install and touch, and writes nothing until you agree.

What setup asks

One script, and consent before anything is written.

  1. Consent first

    Setup lists what it will do, then writes nothing until you agree.

  2. Checks

    Chrome, Node, the claude CLI signed in, and that the folder you cloned into is one a background worker can read.

  3. The always-on worker

    Started at login, so buyers get answered while you are away. Say no and it runs only when you start it.

    answer: y
  4. Region

    Sets the currency it prices in and which marketplaces you are offered.

    answer: e.g. US
  5. carousell.ai, if you sell in the US

    Setup makes your carousell.ai account and, until you have done this once, gives you a link: confirm your email, then the ZIP code you ship from, so buyers can pay as soon as you list. The link lasts 15 minutes. Setup carries on either way, and Sellee offers it again later.

  6. Marketplaces, where there are any

    Whichever connectors reach where you sell are offered here. A US seller is offered Facebook Marketplace and Craigslist; an SG seller, Carousell and Facebook Marketplace. You sign in yourself, in the agent's own Chrome window; Sellee never sees your passwords. carousell.ai is never in the list: it is the rail, always on, with nothing to sign in to before you list.

    answer: pick any, or skip
  7. A chat channel, optionally

    Telegram or Discord, one at a time. You make the bot yourself, with @BotFather or the Discord developer portal, then paste its token and scan the QR the terminal draws. About two minutes. Skipping is fine: sellee connect telegram or sellee connect discord does it later.

    answer: Telegram, Discord, or skip

It also asks before it touches your shell startup file, and on macOS whether its Chrome window should keep coming to the front.

~/dev/sellee — ./setup
SELLEE: Sellee is a marketplace agent: it lists items, answers buyers, and
        negotiates within limits you set. Nothing has been written yet.
? Proceed with the installation? [Y/n] Y
  ✓ Chrome • Node • Claude Code, signed in • install location
? Start the worker automatically when you log in? [Y/n] Y
  ✓ worker is up
? You sell in US · USD · America/Los_Angeles, correct? [Y/n] Y
  ✓ carousell.ai ready — always enabled for listing
  Add your ZIP now so buyers can pay you as soon as you list: https://www.carousell.ai/signin?…
  It takes a minute: confirm your email, then the ZIP code you ship from.
  the link works for 15 minutes; Sellee offers a fresh one later if it lapses
SELLEE: Other marketplaces
? Which marketplaces should Sellee work for you?
  1) Facebook Marketplace   2) Craigslist
  Choose (comma-separated, 'a' for all, empty to skip): 1
  ✓ signed in to Facebook Marketplace — in Sellee's own Chrome window
? Connect now? (optional — one channel at a time)
  1) Telegram   2) Discord
  Enter 1-2, or empty to skip: 1
  ✓ bound to @your_sellee_bot

✓ You're all set. Send your bot a photo of something to sell, or run sellee chat.
  • watch it work:  sellee logs --web     • check health:  sellee healthcheck

Then it's in chat

Connected a channel? Send the bot a photo and Sellee takes it from there.

You can also chat with Sellee in the terminal using sellee chat.

on your machine — finished
✓ You're all set.
the worker is running in the background

Setup exits there. Everything after it happens in the channel you connected, on your phone, while the worker keeps running at home.

Send me a photo of something you want to sell and I’ll take it from there.
Retro over-ear headphones
Retro over-ear headphones. Checking what similar ones sold for, back in a few minutes.
Four sold in the last month at $40 to $55. I’d list at $48, good condition with worn earpads, on carousell.ai. And what’s the lowest you’d take? Kept private, so I can handle offers without asking you each time.
✅ List it✏️ Change something
40. go ahead

Day to day

The agent is a background worker plus a handful of commands.

sellee chat        # a Claude Code session with your agent
sellee logs --web  # watch what it is doing
sellee healthcheck
sellee update
sellee uninstall --preserve-data

Settings are conversational: ask Sellee what is available. The persona setting shapes how it speaks to buyers; autonomy and pacing are settings too.

What stays private

What Sellee is not told, and where what it knows is kept.

Your floor price stays yours

You set a public list price and a private floor, which is the least you would accept.

The floor is kept confidential. When Sellee replies to buyers, it doesn't have the floor in its context, nor any tools to retrieve it. All negotiation passes through the negotiation engine.

what only the negotiation engine reads
{
  "floor": 40,
  "list_price": 48,
  "auto_counter_step": 10,
  "auto_counter_rounds": 2
}
what the engine returns
{
  "decision": "counter",
  "counter_price": 44,
  "hold_firm": false,
  "needs_seller_confirm": false,
  "message_intent": "counter:44"
}

The model is told what to say, never the number it cannot cross. If a decision ever tried to emit a price below the floor, it is refused rather than allowed to leak.

Where your data lives

Listings, floors, transcripts and settings are stored on your machine, in your own user directories (XDG paths). There is no Sellee server, and no account to make.

Two things do leave, because they have to: the listings you publish go to the marketplaces you publish them on, and buyer messages reach Anthropic through your own signed-in Claude Code, by the same path as anything else you do with it.

Good to know

The depth, once you are running.

How much it decides on its own

Sellee closes deals autonomously and escalates what it will not decide alone. A bid above your list price is never auto-accepted. Instead it is held for you, however good it looks.

How hands-on it is, is itself a setting. Every knob is in the open repo.

Where it posts

carousell.ai is always on. Facebook Marketplace and Craigslist connect today in the US, and Carousell in SG.

carousell.aialways on • no login — Sellee's own rail
Facebook Marketplaceyou sign in — every region
Craigslistyou sign in — US
Carousellyou sign in — SG today

What it can't do

Three things worth knowing.

Automation on your own account carries ban riskIt acts as you, on marketplaces whose terms mostly do not contemplate automation. A pacing engine mitigates this with per-account hourly caps, quiet hours, and humanising jitter. However the risk is only mitigated, not zero, and the risk is yours.
The machine must be onlaunchd on macOS and a systemd user unit on Linux keep the worker alive, but a closed laptop pauses everything: buyers are answered while your machine is awake and connected.
One instance per machineThe daemon takes an instance lock at start; a second copy notices the first and exits instead of fighting it for the same inbox.
No machine to leave on, or no appetite for an install?Text Sellee instead! The hosted tier is this same agent on our machines. Text Sellee →
Ready to get started?
git clone https://github.com/carousell/sellee
cd sellee && ./setup

sellee update keeps the install up-to-date •sellee uninstall --preserve-data removes Sellee but keeps your data

github.com/carousell/sellee • Apache 2.0