Get started / macOS
Your catalogue.
Your computer.
Install once, try a synthetic order, then bring your shop’s own item list. There is no npm install or build step.
These instructions are for macOS. The app was tested on a MacBook Air M2 with 8 GB RAM. Windows and Linux are untested.
Before you begin
What you need
| Requirement | Local setup |
|---|---|
| Computer | macOS 13+, 8 GB RAM; close other apps when memory is tight. |
| Disk | About 6 GB free for Ollama, the 4.3 GB model download and swap headroom. |
| Runtime | Node.js 24 or newer. Zero npm dependencies. |
| Local model | Ollama 0.40.3 tested; default gemma4:e2b-it-qat (4.3 GB download). Faster alternative: qwen3.5:2b-q4_K_M. |
| Internet | Needed for installation and model download. Matching works with Wi-Fi off. |
Without Ollama, the app still runs in fuzzy matching only mode.
01 / Install
Open Terminal on your Mac
With Homebrew available, install Node and Ollama, start the model service, then download the model.
brew install node ollama
brew services start ollama
ollama pull gemma4:e2b-it-qatClone the repository, enter the folder and run its tests. If you copied the project folder instead, start with cd parchimatch.
git clone https://github.com/bipul724/parchimatch.git
cd parchimatch
npm test02 / Try an order
Start with the synthetic shop
npm run app -- --openOne command checks Node, Ollama and the model, starts the app and opens it. It never downloads anything: if the model is missing, it prints the exact ollama pull command and starts with fuzzy matching only. On a fresh setup it loads the synthetic catalogue. Stop it with Ctrl+C.
- Your browser opens
http://127.0.0.1:5178. - Choose Sample order 03, then Match order.
- Read the amber question. For
marie 30 wala 20 jodi, choose the intended unit. Confirm the right product and size, or skip an item the catalogue does not stock. - For an unknown shop nickname, correct the product and tick Remember before confirming.
lais peelameans Lay’s Classic Salted;lays bluemeans Magic Masala in this synthetic example. - Choose Export CSV. It downloads a CSV and saves a copy in
data/app/exports/for manual import into your billing software.
03 / Make it yours
Set up your shop’s catalogue
Export your billing item list as CSV or Excel, then convert it to UTF-8 CSV with one row per sellable variant. Keep only aliases your shop already uses; teach unfamiliar shorthand through Remember.
sku,name,brand,variant,mrp,sell_units,units_per_carton,aliases
PRLG-5,Parle-G Biscuit,Parle,₹5 pack,5,packet|carton,144,parle gThe row above is an illustrative synthetic catalogue entry. Its pack details are not verified product information.
| Column | What to put in it |
|---|---|
sku | Required, unique item identifier. |
name | Required; share the same product name across its variants. |
brand | Optional brand text, shown to the model. |
variant | Pack description; write sizes like 1 kg, 500 g or 1 L. |
mrp | Number; empty means unknown and skips that item’s price check. |
sell_units | Required; separate allowed units with |: piece, packet, carton, dozen, bag. |
units_per_carton | Positive whole number; empty means carton orders require a question. |
aliases | Optional existing shop names separated with |. |
Save it as data/real/catalog.csv first, then start with the command below. Or use Catalogue → Replace catalogue in the app: an uploaded catalogue loads again after a restart, as long as you start without --catalog. Invalid rows are reported by row number; the current catalogue stays in place until the new file is valid.
npm run app -- --catalog data/real/catalog.csvBack up data/real/catalog.csv and data/app/. Both shop data directories are gitignored.
04 / Check locally
Turn Wi-Fi off
- Start Ollama and the app. Run an order once to load the model.
- Turn Wi-Fi off and match a sample order again.
- The status should still say Model ready. Hard lines should show the local model badge.
Optionally check the listening interface:
lsof -nP -iTCP:5178 -sTCP:LISTENYou should see 127.0.0.1:5178. The server has no authentication and is a single-user desktop tool; keep it local.
If something gets stuck
Setup help
After a Homebrew Ollama upgrade, restart its service and check the version:
brew services restart ollama
curl http://127.0.0.1:11434/api/versionTroubleshooting · Full deployment guide and optional login start · Frequently asked questions