shopcli: claude code, but for shopping

what we built

"claude code, but for intelligent shopping."

a command-line tool that lets you shop online while looking like you're doing actual development work. type what you need and it handles the rest - all from your terminal.

inspiration

we were inspired by claude code and how companies like cursor are building incredible cli experiences. there's something powerful about tools that meet developers where they already are - in the terminal. we thought: if we can code from the command line, why not shop from it too?

why terminal shopping actually makes sense

we've all been there:

  • need to buy something but don't want to look like you're shopping at work
  • want to avoid the awkwardness of public checkout failures
  • prefer typing commands over clicking through endless product pages
  • forgot something important and need to handle it quickly and quietly
  • just think shopping from a terminal sounds kind of cool

how it works

> i want to dream big!

 ◆ Shop.app has been selected for this query!
    ↳ routed to https://shop.app
    ↳ setup agent metadata

 ◆ Query ready! searching shop.app with "motivational inspirational quote wall art for home office decor"
    ↳ configuring encoding
    ↳ routing to correct search endpoint

 ◆ Waiting for search results to load...

 ◆ Gathering items from shop.app search results
    ↳ parsing search results
    ↳ extracting product information

 ◆ Picking best items from 30 products
    ↳ ranking products
    ↳ selecting best matches from user prompt

 ◆ Please select an option from the following list:
    ↳ 1. "Best Is Yet To Come" Wall Art
    ↳ 2. "We Become What We Think" Wall Art
    ↳ 3. "Great Things Take Time" Wall Art
    ↳ 4. "Nothing Holds You Back" Wall Art
    ↳ 5. "Today Is Your Day" Wall Art

to anyone watching over your shoulder, you're clearly doing important technical work. in reality, you just prevented a relationship disaster in 30 seconds.

you type what you want to buy, and the app:

  1. uses ai to intelligently understand what you're looking for (handles natural language like "something nice for my mom who likes cats")
  2. searches shop.app with playwright automation
  3. shows you results in a professional-looking terminal interface
  4. lets you pick what to buy without any incriminating browser evidence

tech stack

frontend:

  • typescript + ink (react for terminals)
  • custom terminal ui components we had to build from scratch
  • terminal graphics protocol integration for image rendering

backend:

  • openrouter api for gpt integration
  • playwright for automating the shopping website
  • node.js with custom package solutions

automation:

  • playwright launches an intelligent headless browser and searches shop.app
  • extracts product info from the page
  • custom network waiting logic to handle page loads properly

serious technical challenges we faced

building a good terminal shopping experience was harder than expected:

terminal image rendering:

  • had to debug the terminal graphics protocol to figure out why images weren't rendering from our buffer stream
  • existing packages didn't support what we needed, so we rolled our own image display solutions
  • getting product photos to show properly in different terminal environments

browser automation reliability:

  • playwright would hang when waiting for pages to fully load because the agent was waiting for network requests to completely finish
  • had to build custom waiting logic for different types of page loads and network states
  • debugging why some product pages would never trigger our "ready" state

terminal ui complexity:

  • making a responsive, nice-looking interface in a terminal is genuinely difficult
  • had to create custom components because existing terminal ui libraries lacked features we needed
  • ensuring the interface works across different terminal sizes and configurations

package ecosystem gaps:

  • several terminal-related packages didn't have the functionality we needed
  • ended up writing custom solutions for image rendering, input handling, and layout management
  • integrating different terminal protocols and ensuring cross-platform compatibility

what we learned

  • building good terminal uis is an under appreciated art form
  • the terminal graphics ecosystem still has lots of gaps that need custom solutions
  • web scraping is held together by hopes, dreams, and very fragile css selectors
  • there's real demand for developer-friendly alternatives to traditional gui applications

what's next

if we keep working on this:

  • support more shopping sites (amazon, target, wherever normal humans shop)
  • better image rendering across more terminal types
  • improved product filtering and comparison features

basically we solved the age-old developer problem of "how do I shop without looking like I'm not working" while also pushing the boundaries of what's possible in terminal interfaces.

Built With

Share this project:

Updates