Installation
Install icp-cli on macOS, Linux, or Windows.
macOS / Linux / WSL
Homebrew (macOS):
brew install dfinity/tap/icp-cliTo update later: brew upgrade dfinity/tap/icp-cli
Curl installer:
# install icp-clicurl --proto '=https' --tlsv1.2 -LsSf https://github.com/dfinity/icp-cli/releases/download/v0.1.0-beta.3/icp-cli-installer.sh | sh
# install ic-wasm which is a dependency for many recipescurl --proto '=https' --tlsv1.2 -LsSf https://github.com/dfinity/ic-wasm/releases/download/0.9.10/ic-wasm-installer.sh | shThe installer adds icp-cli to your PATH automatically. Restart your shell or run the source command shown by the installer.
Windows
# install icp-clipowershell -ExecutionPolicy Bypass -c "irm https://github.com/dfinity/icp-cli/releases/download/v0.1.0-beta.3/icp-cli-installer.ps1 | iex"
# install ic-wasm which is a dependency for many recipespowershell -ExecutionPolicy Bypass -c "irm https://github.com/dfinity/ic-wasm/releases/download/v0.9.11/ic-wasm-installer.ps1 | iex"The installer adds icp-cli to your PATH automatically. Restart your shell (and if it’s inside another program, e.g. the VS Code embedded shell, restart that program too).
Docker requirement: If you want to run a local test network, you’ll need Docker Desktop. Docker is only required for local networks—you can build canisters and deploy to mainnet without it.
Verify Installation
icp --versionLanguage Toolchains
icp-cli uses your language’s compiler to build canisters. Install what you need:
Rust canisters:
rustup target add wasm32-unknown-unknownMotoko canisters:
npm install -g ic-mopsmops toolchain initTroubleshooting
“command not found: icp” (after curl install)
The binary isn’t in your PATH. Add this to your shell config (~/.bashrc, ~/.zshrc, etc.):
export PATH="$HOME/.cargo/bin:$PATH"Then restart your shell or run source ~/.bashrc (or ~/.zshrc).
“Cannot connect to Docker” (Windows)
On Windows, Docker Desktop must be running before starting a local network. Ensure:
- Docker Desktop is installed and running
- For manual
dockerdsetup with WSL2, see the containerized networks guide
Network launcher download fails
The network launcher downloads automatically on first use. If it fails:
- Check your internet connection
- Try again (transient failures are possible)
- Download manually from icp-cli-network-launcher releases and set
ICP_CLI_NETWORK_LAUNCHER_PATH
Next Steps
- Tutorial — Deploy your first canister
- Local Development — Day-to-day workflow