A command-line tool for building and deploying applications on the Internet Computer.
Install: See the Installation Guide for your platform (macOS, Linux, Windows)
# Create and deploy a project
icp new my-project && cd my-project
icp network start -d
icp deploy
# Show the status of your canisters
icp canister status
# List your canisters to see their names
icp canister list
# Call a function on your canister
icp canister call <canister-name> greet '("World")'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:
- Tutorial β Deploy your first canister
- 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
Language-specific toolchains (install for the languages you'll use):
- Rust canisters β Rust and
rustup target add wasm32-unknown-unknown - Motoko canisters β mops and
mops toolchain init
Required for templates and recipes:
- ic-wasm β Required when using official templates or recipes. See Installation Guide for details.
Other dependencies:
- Docker β always required on Windows (with WSL2), and some projects may require it on other platforms.
- 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 dependencies:
| 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) |
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.shDocumentation structure follows the DiΓ‘taxis framework:
docs/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.