What you end up with
FreeHarmony running in your browser, on your own computer. It is free, and it stays free — there is no account, no trial and no subscription at the end of this.
- Time
- About 10 minutes
- Steps
- 12
- Cost
- Free
Before you start
These are one-time installs. If you have used PowerShell before, you may have them already — the first step checks.
Install Git
Run the installer, then reopen PowerShell.
Open installerYou know this worked when: Git responds with a version number
Install Node LTS
Run the LTS installer, then reopen PowerShell.
Open downloadYou know this worked when: Node responds with a version number
Install FreeHarmony
Open PowerShell
Keep it open beside this page.
You know this worked when: PowerShell is open
Check Git and Node
Use PowerShell. Node 20.9 or newer is required.
Type this into PowerShell, then press Enter.
git --version node --versionYou know this worked when: Git and Node respond with version numbers
Install pnpm
FreeHarmony is a pnpm workspace.
Type this into PowerShell, then press Enter.
npm.cmd install -g pnpmYou know this worked when: pnpm responds with a version number
Copy FreeHarmony to this PC
Type this into PowerShell, then press Enter.
cd ~ if [ ! -d freeharmony/.git ]; then git clone https://github.com/Blueturboguy07/freeharmony.git fiYou know this worked when: The freeharmony folder exists
Open the FreeHarmony folder
Type this into PowerShell, then press Enter.
cd freeharmonyYou know this worked when: Your terminal prompt is inside the freeharmony folder
Use the reviewed version
Type this into PowerShell, then press Enter.
git checkout 420374370549f7e90603f030820128bfc9f62fc0You know this worked when: Git reports the reviewed commit
Install dependencies
Type this into PowerShell, then press Enter.
pnpm.cmd install --frozen-lockfileYou know this worked when: The install finishes without an error
Run FreeHarmony
Keep PowerShell open.
Type this into PowerShell, then press Enter.
pnpm.cmd devYou know this worked when: localhost:3000 responds
Open FreeHarmony
If Next.js printed a different port, open that one instead.
Open localhost:3000You know this worked when: FreeHarmony loads in the browser
Try one scan
Allow the camera or upload a photo — a second later you get your Harmony score and metrics.
You know this worked when: A Harmony result is displayed
If something goes wrong
Nothing here can damage your computer, and every step can be run again safely. If a command fails, the usual cause is the step before it not having finished.
Still stuck? Tell us what happened and we will fix the guide. Include the step number and we can usually reproduce it.