A command-line tool for building and deploying applications on the Internet Computer.
Install: See the Installation Guide for your platform (macOS, Linux, Windows)
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 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/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.