A command-line interface for developing and deploying applications on the Internet Computer Protocol (ICP).
See the command line reference.
For now, you have to build icp-cli locally in order to use it.
- Rust: Install Rust using rustup. The project uses Rust 2024 edition.
- mops: Required if you want to build Motoko canisters. See mops.one.
# Build all crates in the workspace
cargo build
# Add target directory to your path
export PATH=$(pwd)/target/debug:$PATH
# Check that you can run
icp helpYou might also need the Motoko compiler if you plan on building canisters with Motoko. The best way is to install mops, the motoko package manager, see: https://cli.mops.one/
Reminder, when mops is installed the first time, you must initialize the toolchain with:
mops toolchain initThe examples/ directory contains various project templates and configurations that demonstrate how to use the CLI with different project types:
icp-motoko/- Motoko canister exampleicp-rust/- Rust canister exampleicp-static-assets/- Static website deploymenticp-multi-canister/- Multi-canister project setup- And many more...
- Rust: Install Rust using rustup. The project uses Rust 2024 edition.
This is a Rust workspace with multiple crates. To build the project:
# Build all crates in the workspace
cargo build
# Build in release mode for better performance
cargo build --release
# Build only the CLI binary
cargo build --bin icpThe compiled binary will be available at target/debug/icp (or target/release/icp for release builds).
cargo testThe network launcher binary is automatically downloaded on first test run. Some tests launch local networks and require available ports.
The project includes automatic CLI documentation generation using clap_markdown. To generate comprehensive documentation for all commands:
# Run the documentation generation script
./scripts/generate-cli-docs.shThis will:
- Build the CLI in release mode
- Generate complete markdown documentation at
docs/cli-reference.md
You can also generate documentation manually:
# Build the CLI first
cargo build --release
# Generate markdown documentation
./target/release/icp --markdown-help > docs/cli-reference.mdContributions are welcome! Please see the contribution guide for more information.
This project is licensed under the Apache-2.0 license.