Installation & Requirements
Don't want to install?
Try the playground at play.zwaggen.com — same app, no install, no proxy server. Your specs stay in your browser. Come back here when you want to test CORS-locked APIs or work fully offline.
Prerequisites
- Node.js ≥ 20. Check with
node --version. Install from nodejs.org or vianvm. - pnpm ≥ 10. Zwaggen is a pnpm monorepo. Install with
npm install -g pnpmor via pnpm.io. - A modern browser. Chromium-based (Chrome, Edge, Brave, Arc) or current Firefox. Safari is unsupported — it lacks some of the
showOpenFilePicker/showSaveFilePickerAPIs the spec-versioning flow relies on; a fallback upload/download path works, but the file-handle flow does not. - Git, for cloning the repo.
Clone and install
bash
git clone https://github.com/tubebigbig/Zwaggen.git
cd Zwaggen
pnpm installRun the app (development)
bash
pnpm devVite prints a local URL (by default http://localhost:5173). Open it in a supported browser. The app loads with an empty spec; Quickstart walks through creating one.
Build for production
bash
pnpm buildProduces a static bundle under apps/web/dist/. Serve it with any static host — no server-side logic is required.
Run the docs site locally
bash
pnpm docs:dev # dev server with HMR
pnpm docs:build # produce static site
pnpm docs:preview # preview the built siteOptional: CORS proxy
If you're hitting APIs that don't send permissive CORS headers, run the helper proxy:
bash
npx zwaggen-proxyDefault port is 8787. Point the app's proxy setting at it. See CORS Proxy for details.
Troubleshooting
pnpm: command not found— install pnpm globally (npm install -g pnpm) or enable corepack (corepack enable).Unsupported enginewarning on install — check your Node version.pnpmrequires Node ≥ 18, and Zwaggen requires ≥ 20.showOpenFilePicker is not a function— you're on a browser without the File System Access API. Firefox is fine for in-memory use; for the "save to disk" file-handle flow, use a Chromium browser.- Install hangs on
postinstall— one of the workspaces may be trying to fetch Playwright browsers. Runpnpm --filter web install --ignore-scriptsif you only need the app, not e2e tests.