A command-line tool for building and deploying applications on the Internet Computer.
Prerequisites: Node.js (LTS)
Install:
# icp-cli and ic-wasm (required) npm install -g @icp-sdk/icp-cli @icp-sdk/ic-wasm # Motoko toolchain (for Motoko projects) npm install -g ic-mops
Alternative methods: See the Installation Guide for Homebrew, shell script, Rust setup, or platform-specific instructions.
Then follow the Quickstart to deploy your first canister in under 5 minutes.
If you're coming from dfx (the previous Internet Computer SDK), see the Migration Guide for command mappings, workflow differences, and how to migrate existing projects.
π Full Documentation Site β Complete guides, tutorials, and reference
Or browse the markdown docs directly:
- Quickstart β Deploy a canister in under 5 minutes
- Tutorial β Learn icp-cli step by step
- Guides β How to accomplish common tasks
- Concepts β Understand how icp-cli works
- Reference β Complete CLI and configuration reference
The examples/ directory contains example projects to help you get started:
icp-motoko/β Motoko canistericp-rust/β Rust canistericp-static-assets/β Static websiteicp-environments/β Multi-environment setup
- Documentation β Guides, concepts, and reference
- GitHub Issues β Bug reports and feature requests
- Developer Forum β Questions and discussions
- Discord β Real-time community chat in #dx-feedback
Contributions are welcome! See CONTRIBUTING.md for detailed guidelines.
- Rust 1.88.0+ (rustup.rs)
| Platform | Install |
|---|---|
| macOS | xcode-select --install |
| Ubuntu/Debian | sudo apt install build-essential pkg-config libssl-dev |
| Fedora/RHEL | sudo dnf install gcc pkg-config openssl-devel |
| Arch Linux | sudo pacman -S base-devel openssl |
| Windows | VS build tools (see Rustup's guide) |
Tests additionally depend on wasm-tools, mitmproxy, and SoftHSM2.
git clone https://github.com/dfinity/icp-cli.git cd icp-cli cargo build cargo test
# Run the CLI during development cargo run -- <command> # Build release binary cargo build --release # Binary is at target/release/icp # Format and lint cargo fmt && cargo clippy # Generate CLI docs (after changing commands) ./scripts/generate-cli-docs.sh # Update config schemas (after changing manifest types) ./scripts/generate-config-schemas.sh
# Preview documentation site locally cd docs-site && npm install && npm run dev # Opens at http://localhost:4321 # Prepare docs for build (runs automatically during build) ./scripts/prepare-docs.sh
Documentation structure follows the DiΓ‘taxis framework:
docs/quickstart.md- Deploy in under 5 minutesdocs/tutorial.md- Learn step by stepdocs/guides/- Task-oriented how-to guidesdocs/concepts/- Understanding-oriented explanationsdocs/reference/- Information-oriented specificationsdocs/migration/- Migration guides
See docs/README.md for documentation writing guidelines.