The @orbweva/academy installer prints platform-specific CLI install commands at the end of every run. This doc is the expanded version with every gotcha.
The installer never executes these for you. Copy and run them yourself.
# Node version manager + GitHub CLI + Supabase CLI
brew install fnm gh supabase/tap/supabase
# Switch to LTS Node
fnm install --lts
fnm default lts-latest
# Package managers
npm install -g pnpm vercel
# Sign in to GitHub
gh auth loginThat's the whole thing. Total time: ~5 min on a reasonable connection.
Windows has three gotchas that will each cost you 30 minutes if you don't know them. Read these before running anything:
| Window | How to open | What it's for |
|---|---|---|
| Admin PowerShell | Start → type powershell → right-click Windows PowerShell → Run as administrator |
winget install commands only |
| Regular PowerShell | Start → type powershell → left-click |
scoop, npm install -g, gh auth login, claude, day-to-day work |
Why: winget needs admin. scoop refuses to install as admin (it'll print Running the installer as administrator is disabled by default).
Keep both open — you'll use admin for ~2 minutes, then close it.
After any winget install or scoop install, the current window has a stale PATH. If you run gh --version right after installing gh and see gh : The term 'gh' is not recognized, the install worked — PATH just hasn't refreshed.
Fix (one-liner):
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")(Or just close and reopen the window.)
You'll use this a few times. Keep it handy.
If you have Node v25 (or any odd-numbered / non-LTS version), pnpm and vercel will print:
npm WARN EBADENGINE Unsupported engine
They still install and work fine — pnpm/vercel haven't declared support for experimental Node versions. Ignore the warning. Step 2 below switches you to LTS Node anyway, which makes them disappear.
winget install Schniz.fnm
winget install GitHub.cliRefresh PATH in the admin window:
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
fnm --version
gh --versionBoth should print version numbers. You can close Admin PowerShell now — everything else runs in regular PowerShell.
fnm install --lts
fnm default lts-latest
node --version
npm --versionnode --version should show v22.x (the current LTS).
If you see a higher number like v25, that's a stray Node install from nodejs.org. It'll still work for the ORBWEVA curriculum, but every
npm installwill printEBADENGINEwarnings. Clean up: Windows Settings → "Apps & features" → search "Node" → uninstall, then reopen PowerShell.
Scoop must be installed in regular (non-admin) PowerShell.
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUserPress Y and Enter if prompted.
irm get.scoop.sh | iexWait ~20 seconds until you see Scoop was installed successfully!. Refresh PATH:
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
scoop --version# Supabase CLI (via scoop)
scoop install supabase
# pnpm — fast package manager, cross-platform via npm
npm install -g pnpm
# Vercel CLI — deploy and manage from terminal
npm install -g vercelVerify:
supabase --version
pnpm --version
vercel --versiongh auth loginYou'll be asked four questions. Answers in order:
- "Where do you use GitHub?" → GitHub.com (Enter)
- "Preferred protocol for Git operations?" → HTTPS (Enter)
Why HTTPS, not SSH: no key management, works through any firewall,
ghhandles credentials via Windows Credential Manager. - "Authenticate Git with your GitHub credentials?" → Y (Enter)
This wires
git push/git pullto reuse your gh token. Skip this and you'll be typing usernames and passwords forever. - "How would you like to authenticate GitHub CLI?" → Login with a web browser (Enter)
PowerShell then prints something like:
! First copy your one-time code: ABCD-1234
Press Enter to open https://github.com/login/device in your browser...
⚠ The 8-character code is in your PowerShell window, NOT the browser. First-timers always miss this. Copy it (or write it down), then press Enter. The browser opens a page with 8 boxes — paste the code, click Continue, sign in to GitHub if asked, click Authorize GitHub CLI. The browser says "Congratulations", and PowerShell shows
✓ Authentication complete.
Verify:
gh auth statusfnm --version
node --version
npm --version
pnpm --version
vercel --version
gh --version
supabase --versionAll seven should return version numbers.
# Node version manager
curl -fsSL https://fnm.vercel.app/install | bash
fnm install --lts
fnm default lts-latest
# GitHub CLI — varies by distro
sudo apt install gh # Debian/Ubuntu
# or: brew install gh (if you use Homebrew on Linux)
# Package managers
npm install -g pnpm vercel
# Supabase CLI — see https://supabase.com/docs/guides/local-development/cli/getting-started
# Sign in to GitHub
gh auth login# Stripe CLI — for testing webhooks locally (Week 8 of the Accelerator)
# macOS
brew install stripe/stripe-cli/stripe
# Windows
scoop install stripe
# Linux — see https://docs.stripe.com/stripe-cli#install
# ngrok — expose localhost for webhook testing (Week 6)
# macOS
brew install ngrok
# Windows
winget install Ngrok.Ngrok
# Playwright — browser testing (Week 6). Runs in any project folder
npm install -D @playwright/testFor the full list of CLIs, MCPs, and IDE extensions at each phase, see the ORBWEVA Accelerator Skills Reference.