Skip to content
ONIWC
iwc 0.1.0

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 systemmacOS 11 or later (Apple silicon or Intel), Linux (x64 or arm64, any distribution), Windows 10 or 11 (x64 or arm64)
DatabaseNothing to install: SQLite is built in. PostgreSQL is optional
BrowserAny modern browser
Node.js18 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

Terminal
npm install -g @iwc-cli/iwc

This 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

Terminal
brew install hussian007/iwc/iwc

This 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.

powershell
scoop bucket add iwc https://github.com/Hussian007/scoop-iwc
scoop install iwc/iwc

A 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.

Terminal
curl -fsSL https://github.com/Hussian007/iwc/releases/latest/download/install.sh | sh
powershell
irm https://github.com/Hussian007/iwc/releases/latest/download/install.ps1 | iex

To 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:

SystemArchive
macOS, Apple siliconiwc_<version>_darwin_arm64.tar.gz
macOS, Inteliwc_<version>_darwin_amd64.tar.gz
Linux x64iwc_<version>_linux_amd64.tar.gz
Linux arm64iwc_<version>_linux_arm64.tar.gz
Windows x64iwc_<version>_windows_amd64.zip
Windows arm64iwc_<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):

Output
   ___ __        __  ____
  |_ _|\ \      / / / ___|
   | |  \ \ /\ / / | |
   | |   \ 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:

Terminal
iwc --version
iwc about
iwc doctor

iwc about shows the framework, the installed and latest releases with their publish dates, your environment and useful links (reference). iwc doctor checks the installation:

Output
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 browser

Every 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

Terminal
iwc create my-app
cd my-app
iwc dev --open

iwc 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 scriptRuns
npm run deviwc dev: development server with live reload
npm run checkiwc check: validate every file and reference
npm testiwc test: run the project's tests
npm run validateiwc validate: check, test and build before you ship
npm run buildiwc build: production bundle in dist/
npm startiwc start dist: serve the production bundle

Pass extra flags after --, for example npm run dev -- --open --port 4000.

Project structure

text
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 autocompletion

Details: project structure.

Development server

Terminal
iwc dev --open       # or: npm run dev

The 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

CommandUse it to
iwc checkValidate every file and reference (fast; use while editing)
iwc testRun the .test.iwc files
iwc validateCheck + tests + production build + security audit: the pre-ship check
iwc buildWrite the production bundle to dist/
iwc build --zipAlso write a zip for shared hosting (cPanel)
iwc build --android / --ios / --allBuild native apps

Production workflow

Terminal
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 nginx

Or 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 withUpdateUninstall
npmnpm install -g @iwc-cli/iwc@latestnpm uninstall -g @iwc-cli/iwc
Homebrewbrew upgrade iwcbrew uninstall iwc && brew untap hussian007/iwc
Scoopscoop update iwcscoop uninstall iwc; scoop bucket rm iwc
install.shrun the install command againcurl -fsSL https://github.com/Hussian007/iwc/releases/latest/download/install.sh | sh -s -- --uninstall
install.ps1run the install command again$env:IWC_UNINSTALL=1; irm https://github.com/Hussian007/iwc/releases/latest/download/install.ps1 | iex
Archivedownload the new archive and replace the folderdelete 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

SymptomCause and fix
iwc: command not found / 'iwc' is not recognizedOpen 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 binaryAn 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 disabledSet-ExecutionPolicy -Scope CurrentUser RemoteSigned, then run the install command again.
iwc doctor warns the binary is x64 on Apple siliconAn 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 unavailableGitHub 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 takeniwc dev picks the next free port and says so. With --port, it stops and suggests a free one.
iwc dev uses an unexpected databaseDATABASE_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