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 Terminal before, you may have them already — the first step checks.
Install Git
Apple opens a small installer.
Type this into Terminal, then press Return.
xcode-select --installYou know this worked when: Git responds with a version number
Install Node LTS
Choose the macOS Installer (.pkg).
Open downloadYou know this worked when: Node responds with a version number
Install FreeHarmony
Open Terminal
Keep it open beside this page.
You know this worked when: Terminal is open
Check Git and Node
Use Terminal. Node 20.9 or newer is required.
Type this into Terminal, then press Return.
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 Terminal, then press Return.
npm install -g pnpmYou know this worked when: pnpm responds with a version number
Copy FreeHarmony to this Mac
Type this into Terminal, then press Return.
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 Terminal, then press Return.
cd freeharmonyYou know this worked when: Your terminal prompt is inside the freeharmony folder
Use the reviewed version
Type this into Terminal, then press Return.
git checkout 420374370549f7e90603f030820128bfc9f62fc0You know this worked when: Git reports the reviewed commit
Install dependencies
Type this into Terminal, then press Return.
pnpm install --frozen-lockfileYou know this worked when: The install finishes without an error
Run FreeHarmony
Keep Terminal open.
Type this into Terminal, then press Return.
pnpm 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.