Installation
IWC is a single native program, iwc, that contains the CLI, the compiler and the runtime. The quickest way to install it, on macOS, Linux and Windows alike, is npm. Every method below installs the same official release, and you don't need Go or the IWC source code.
System requirements
| Requirement | |
|---|---|
| Operating system | macOS 11 or later (Apple silicon or Intel), Linux (x64 or arm64, any distribution), Windows 10 or 11 (x64 or arm64) |
| Database | Nothing to install: SQLite is built in. PostgreSQL is optional |
| Browser | Any modern browser |
| Node.js | 18 or later if you install with npm. Not needed with the other install methods |
| Android apps (optional) | The Android SDK with platform 36, a JDK 17–24, and an emulator or a phone. iwc doctor --platform android checks them |
| iOS apps (optional) | macOS with Xcode 16 or later. iwc doctor --platform ios checks them |
Install the IWC CLI
npm install -g @iwc-cli/iwcThis works the same in a macOS or Linux terminal and in Windows PowerShell or Command Prompt. npm downloads only the native binary for your system (@iwc-cli/cli-<os>-<arch>); nothing runs at install time. Check it with iwc --version.
If npm reports EACCES on macOS or Linux, your global npm folder needs administrator rights. Use a Node version manager such as nvm, or one of the other methods below.
Other ways to install
Use one of these if you don't have Node.js or prefer your system's package manager.
macOS and Linux: Homebrew
brew install hussian007/iwc/iwcThis adds the hussian007/iwc tap and installs the release for your CPU. On Linux, use Homebrew on Linux, or the install script below.
Windows: Scoop
Run these in PowerShell. If you don't have Scoop yet, install it first with irm get.scoop.sh | iex.
scoop bucket add iwc https://github.com/Hussian007/scoop-iwc
scoop install iwc/iwcA winget package has been prepared but isn't available yet. Use Scoop or the install script until it is.
Any system: install script
The script downloads the release archive for your system from GitHub, checks it against the release's SHA-256 checksums.txt, installs iwc into ~/.iwc/bin (%LOCALAPPDATA%\iwc\bin on Windows) and adds that folder to your PATH.
curl -fsSL https://github.com/Hussian007/iwc/releases/latest/download/install.sh | shirm https://github.com/Hussian007/iwc/releases/latest/download/install.ps1 | iexTo install a specific release, set IWC_VERSION first, for example curl -fsSL …/install.sh | IWC_VERSION=0.2.0 sh.
Direct download
Each release has one archive per system, plus checksums.txt:
| System | Archive |
|---|---|
| macOS, Apple silicon | iwc_<version>_darwin_arm64.tar.gz |
| macOS, Intel | iwc_<version>_darwin_amd64.tar.gz |
| Linux x64 | iwc_<version>_linux_amd64.tar.gz |
| Linux arm64 | iwc_<version>_linux_arm64.tar.gz |
| Windows x64 | iwc_<version>_windows_amd64.zip |
| Windows arm64 | iwc_<version>_windows_arm64.zip |
Download it from the latest release, extract it and add its bin/ folder to your PATH. Keep lib/ next to bin/: it holds the Linux runtime that iwc deploy and iwc build --zip upload. On macOS, an archive downloaded with a web browser is quarantined, so run xattr -d com.apple.quarantine bin/iwc once.
After installing
When the installation succeeds, IWC prints a short welcome (Homebrew shows it under Caveats):
___ __ __ ____
|_ _|\ \ / / / ___|
| | \ \ /\ / / | |
| | \ V V / | |___
|___| \_/\_/ \____|
IWC Framework 0.2.0 installed successfully.
IonicWebCreator Private Limited | Founder: Jakir Hussian
https://oniwc.com
Get started
iwc create my-app
cd my-app
iwc dev
Run iwc about for framework, release and environment details.Open a new terminal, then check the installation:
iwc --version
iwc about
iwc doctoriwc about shows the framework, the installed and latest releases with their publish dates, your environment and useful links (reference). iwc doctor checks the installation:
IWC installation
✓ version iwc 0.2.0 (darwin/arm64, source b3c0de8de939)
✓ binary /opt/homebrew/Cellar/iwc/0.2.0/bin/iwc
✓ installed with Homebrew (hussian007/iwc/iwc)
✓ upgrade brew upgrade iwc
✓ machine Apple Silicon (arm64)
✓ PATH `iwc` resolves to this binary
✓ SQLite built in (no system library needed)
✓ port 3000 is free for `iwc dev`
✓ browser `iwc dev --open` can open your browserEvery line is ✓ (fine), ! (a warning that says what to do) or ✗ (a problem). Run iwc doctor inside a project to check the project as well.
Create a project
iwc create my-app
cd my-app
iwc dev --openiwc create asks which targets to include: Web, an Admin area, Android and iOS. Pass --yes to accept the default (web only), or --template store for a complete e-commerce example. See project types and the CLI reference.
A new project needs nothing else installed. It also gets a package.json whose scripts call iwc, so teams that use npm can run the familiar commands:
| npm script | Runs |
|---|---|
npm run dev | iwc dev: development server with live reload |
npm run check | iwc check: validate every file and reference |
npm test | iwc test: run the project's tests |
npm run validate | iwc validate: check, test and build before you ship |
npm run build | iwc build: production bundle in dist/ |
npm start | iwc start dist: serve the production bundle |
Pass extra flags after --, for example npm run dev -- --open --port 4000.
Project structure
my-app/
├── app.iwc theme tokens, fonts, head, platforms (required)
├── package.iwc name and version
├── package.json npm scripts that call iwc (optional)
├── ui/
│ ├── home.ui.iwc the "/" screen
│ ├── about.ui.iwc
│ └── not-found.ui.iwc the 404 screen
├── layouts/main.layout.iwc the frame around every screen
├── components/footer.component.iwc
├── state/counter.state.iwc a client-side store
├── tests/smoke.test.iwc tests run by `iwc test`
├── styles/main.css your CSS
├── assets/logo.svg served at /assets/logo.svg
└── .vscode/ settings + JSON Schemas for autocompletionDetails: project structure.
Development server
iwc dev --open # or: npm run devThe server compiles the project, serves it at http://localhost:3000 (or the next free port), and recompiles on every save. CSS changes swap in place; other changes re-render the current screen at the same scroll position. Errors appear in the terminal and as an overlay on the page. Development data lives in SQLite at .iwc/dev.db. See iwc dev.
Build commands
| Command | Use it to |
|---|---|
iwc check | Validate every file and reference (fast; use while editing) |
iwc test | Run the .test.iwc files |
iwc validate | Check + tests + production build + security audit: the pre-ship check |
iwc build | Write the production bundle to dist/ |
iwc build --zip | Also write a zip for shared hosting (cPanel) |
iwc build --android / --ios / --all | Build native apps |
Production workflow
iwc validate # stop here if anything fails
iwc build # dist/
DATABASE_URL=postgres://user:pass@db/app iwc migrate --dry-run # review the SQL
iwc start dist --port 8080 # behind a TLS proxy such as Caddy or nginxOr deploy with iwc deploy prod: the first run asks whether the app goes to cPanel hosting or to your own server, and sets it up. The deployment guide covers each path.
Deploys upload a Linux build of IWC to the server. Every installation method includes it (in the release's lib/ folder), so there is nothing extra to install.
Update and uninstall
| Installed with | Update | Uninstall |
|---|---|---|
| npm | npm install -g @iwc-cli/iwc@latest | npm uninstall -g @iwc-cli/iwc |
| Homebrew | brew upgrade iwc | brew uninstall iwc && brew untap hussian007/iwc |
| Scoop | scoop update iwc | scoop uninstall iwc; scoop bucket rm iwc |
| install.sh | run the install command again | curl -fsSL https://github.com/Hussian007/iwc/releases/latest/download/install.sh | sh -s -- --uninstall |
| install.ps1 | run the install command again | $env:IWC_UNINSTALL=1; irm https://github.com/Hussian007/iwc/releases/latest/download/install.ps1 | iex |
| Archive | download the new archive and replace the folder | delete the folder and remove it from PATH |
iwc doctor and iwc about print the update command for your installation. Uninstalling leaves your projects and ~/.iwc settings (plugins, deploy targets) in place.
Troubleshooting
| Symptom | Cause and fix |
|---|---|
iwc: command not found / 'iwc' is not recognized | Open a new terminal so it picks up the new PATH. Homebrew puts iwc in $(brew --prefix)/bin, Scoop in ~\scoop\shims, the install script in ~/.iwc/bin (%LOCALAPPDATA%\iwc\bin on Windows). |
! PATH iwc resolves to …, not this binary | An older copy comes first on your PATH. Remove it, or fix PATH so the one you installed wins. |
| macOS: "cannot be opened because the developer cannot be verified" | A browser-downloaded archive is quarantined: xattr -d com.apple.quarantine bin/iwc, or install with Homebrew or the install script. |
| PowerShell: running scripts is disabled | Set-ExecutionPolicy -Scope CurrentUser RemoteSigned, then run the install command again. |
iwc doctor warns the binary is x64 on Apple silicon | An Intel Homebrew (/usr/local) installed it. Use the Apple silicon Homebrew in /opt/homebrew, or the install script. |
iwc about says live release information is unavailable | GitHub couldn't be reached (offline, firewall or rate limit). It shows the cached or built-in information instead; run it again later. |
| Port 3000 is taken | iwc dev picks the next free port and says so. With --port, it stops and suggests a free one. |
iwc dev uses an unexpected database | DATABASE_URL is set in your shell. iwc doctor warns about it; unset it or declare database.url in app.iwc. |
More in Troubleshooting.
Source: apps/marketing/content/docs/installation.md