_____ _ _ ____ _ _
| ___(_) |_ / ___| |__ ___ ___| | __
| |_ | | __| | | '_ \ / _ \/ __| |/ /
| _| | | |_| |___| | | | __/ (__| <
|_| |_|\__|\____|_| |_|\___|\___|_|\_\
a second opinion in the fitting-room line
Point your phone at a garment, or paste a shop link. FitCheck reads it, checks it against what you already own, this week's weather and your calendar, and tells you straight: BUY, SKIP or TRY-WITH. Then it shows the garment on you.
- Scan or link a garment. Camera, photo, or any product page. An open-weight vision model tags it.
- Get a verdict. Plain rules weigh your closet, a 7-day forecast and your plans, so the answer is the same every time. A stylist chat explains it.
- See it on you. Live on the camera, tracked to your body on the device, or as an AI try-on render.
- Keep a closet. Add pieces one by one, by shop link, or scan a whole rack in one photo.
snap | shop link | photo
\ | /
v v v
[ tag the garment ] open-weight vision model
|
v
[ decide ] rules: closet + weather + calendar
|
v
BUY / SKIP / TRY-WITH + see it on you + ask the stylist
Your body photo stays on your phone. It only leaves for a try-on render, is never stored, and the app tells you where every step ran.
You need uv, Node.js 20.19 or newer, and make.
make sync # engine dependencies
make web-install # web app dependencies
make dev # engine on :8000, web app on https://localhost:5173It runs offline out of the box, with a demo closet and a demo week. Your phone can join on the same Wi-Fi through the network URL Vite prints.
For real models, copy engine/.env.example to engine/.env, set FITCHECK_TAGGER and FITCHECK_STYLIST to openai_compat, and add a key for any OpenAI-compatible host such as Featherless, or point them at your own Ollama or vLLM server. For AI try-on renders, set FITCHECK_TRYON=hf_space and add a free Hugging Face token as HF_TOKEN.
| Path | What's there |
|---|---|
engine/ |
Python engine and API: verdict rules, adapters, CLI |
web/ |
Mobile-first web app (Vite, React, TypeScript) |
worker/ |
Try-on worker the remote adapter calls; only an echo backend ships |
skills/fit-check/ |
Agent skill that drives FitCheck from a shell |
docs/ |
Guides and decision records |
New here? Read AGENTS.md for how the code fits together and CONTEXT.md for the vocabulary.
FitCheck was built for a Hacktoberfest mini hackathon run by Technica, Bitcamp and Hack4Impact UMD, where it won the open source track. Thanks to the organizers, and to everyone in the contributors list.
Issues and pull requests are welcome, Hacktoberfest or not. Start with CONTRIBUTING.md.
Apache 2.0. Models, data and photos FitCheck uses keep their own licenses; see THIRD_PARTY_LICENSES.md.