WANT! is an agentic fashion workflow that turns any outfit you spot online into a shoppable look you can try on yourself, without leaving the page that inspired you.
Built for the YouCam API Skin AI & Apparel VTO Hackathon using YouCam Clothes V3.
![]() |
![]() |
![]() |
| Grab a look Box an outfit on any page or upload an image. |
Try it on See the selected clothing on your own photo. |
Get the outfit Open real products directly at their stores. |
Use the one-minute Chrome installer; no backend or API-key setup is required.
- Open the WANT! installer.
- Download the macOS or Windows installer and approve the unpacked extension in Chrome.
- Add a clear full-body photo once. Press Alt+W to open or close WANT! on any webpage.
WANT! turns a look from a video, post, editorial, or webpage into a complete set of real products and a personalized YouCam try-on.
- Capture what caught your eye. Press Alt+W and draw around an outfit, or upload a screenshot.
- Find the complete outfit. OpenAI identifies the visible clothing, shoes, and accessories. A concurrent shopping agent then finds up to three real products for each distinct item.
- Choose the closest recreation. Select one option in every product row. That exact combination becomes the outfit used by the rest of the workflow.
- See it on you. YouCam Clothes V3 renders the supported selections on your photo in sequence. Anything not rendered stays clearly marked and shoppable.
- Get it or keep it. Open products directly at their retailers, with known prices preserved, or save the finished look privately with you as the model.
The user gives WANT! one goal, recreate this look on me, rather than a list of products to search. A FastAPI processing service carries that goal through OpenAI visual inventory and concurrent product discovery, local evidence validation, the user's exact selections, and YouCam Clothes V3 rendering. The extension keeps the user's photo and saved wardrobe privately in browser storage.
Measured performance: A repeatable multi-look benchmark produced 30 detected items, 38 retail products, only two honest fallbacks, 34.7 seconds mean latency, and 49.1 seconds maximum latency. A measured end-to-end YouCam render completed in 43.3 seconds. This sits alongside automated backend tests and repeated browser-to-try-on runs.
One shared extension source builds a Chrome side panel and a Firefox sidebar. For local development, both connect to the same local FastAPI service.
- Chrome 116 or newer, or Firefox 142 or newer
- Python 3.12 and
uv - Node.js and
pnpm - OpenAI and YouCam API keys
git clone https://github.com/snowsadh/want.git
cd wantcp .env.example .envAdd the two server-side keys to .env:
OPENAI_API_KEY=...
YOUCAM_API_KEY=...
The keys stay in the local API environment and are never bundled into the extension.
uv sync
pnpm install --frozen-lockfile
pnpm builduv run uvicorn apps.api.app.main:app --host 127.0.0.1 --port 8000- Open
chrome://extensions. - Enable Developer mode.
- Select Load unpacked and choose
apps/extension/dist/chrome.
- Open
about:debugging#/runtime/this-firefox. - Select Load Temporary Add-on.
- Choose
apps/extension/dist/firefox/manifest.json.
Open WANT! from the toolbar and add a clear full-body photo. Visit a page with
an outfit, press Alt+W, choose Pick a look, and draw around it. The
shortcut can be changed at chrome://extensions/shortcuts or in Firefox under
Manage Extension Shortcuts.
- WANT! acts only after a deliberate capture, upload, search, or try-on request.
- OpenAI and YouCam API keys stay in the FastAPI environment and out of source control; they are never bundled into the extension.
- The fitting-room photo and saved looks live in the extension's private IndexedDB storage. They are not stored in a shared cloud account or feed.
- A requested analysis or try-on sends the required images to the FastAPI service and its named providers. Server media is transient task data.
Technical details and repository map
| Layer | Technology | Responsibility |
|---|---|---|
| Browser experience | Manifest V3, TypeScript, React, Vite | Capture, profile, product selection, try-on results, and saved looks |
| Processing API | Python 3.12, FastAPI, Pydantic | Server-side provider keys, request validation, orchestration, and API contracts |
| Visual inventory and shopping | OpenAI Responses API, hosted image and text search, asyncio |
Detect every wearable and run one concurrent product shopper per item |
| Product evidence | httpx, Pillow |
Validate, decode, and preserve usable product images and links |
| Virtual try-on | YouCam Clothes V3 | Render the selected supported apparel on the user's photo |
| Private persistence | Browser IndexedDB | Store the profile, product evidence, final images, and saved looks on the user's device |
| Transient task media | FastAPI local filesystem | Hold validated images and YouCam stages only while processing a request |
uv run uvicorn apps.api.app.main:app --host 127.0.0.1 --port 8000 --reloadRe-run pnpm build and reload the unpacked extension after frontend changes.
uv run ruff check apps tests
uv run pytest -q
pnpm typecheck
pnpm buildapps/extension/src/background.tsopens the side panel or sidebar, activates capture mode, and carries a pending capture into the extension UI.apps/extension/src/content.tsowns the on-page drag-selection experience.apps/extension/src/sidepanel/capture.tscrops the selected pixels, preferring the original page image when possible.apps/extension/src/sidepanel/main.tsxcontains the React screens, product rows, selection state, try-on result, and saved-look flow.apps/extension/src/api.tsis the browser client for the FastAPI service;types.tsmirrors its response contracts.apps/extension/src/storage.tsowns the private IndexedDB profile and saved wardrobe, and copies task images into browser-local data before saving.apps/web/contains the judge installer page and downloadable browser packages; it does not contain the application backend.apps/api/app/main.pywires the routes and process-lifetime services.openai_discovery.pyowns the OpenAI Responses inventory and concurrent shopping calls;openai_prompts.pycontains their prompts.look_builder.pyvalidates inventory records, creates crops, downloads and decodes product images, retries empty rows, and assembles the product result.try_on.pyvalidates the selected ranks and sequences supported garment regions throughyoucam.py.media.pyvalidates and writes transient capture, product, person, and render inputs used by the processing pipeline.contracts.pydefines the backend data contracts;tests/protects API, normalization, selection, uploaded-image handoff, and YouCam behavior.Dockerfileandrailway.tomldeploy only the FastAPI processing service; browser profiles and saved looks remain on the user's device.
The detailed behavior lives in docs/product-spec.md.
The accepted runtime and provider evaluation live in
docs/agentic-plan.md.




