Skip to content

dfinity/icp-cli

icp-cli

A command-line tool for building and deploying applications on the Internet Computer.

Quick Start

Install: See the Installation Guide for your platform (macOS, Linux, Windows)

Then follow the Quickstart to deploy your first canister in under 5 minutes.

For dfx Users

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.

Documentation

📚 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

Examples

The examples/ directory contains example projects to help you get started:

  • icp-motoko/ — Motoko canister
  • icp-rust/ — Rust canister
  • icp-static-assets/ — Static website
  • icp-environments/ — Multi-environment setup

View all examples →

Getting Help

Contributing

Contributions are welcome! See CONTRIBUTING.md for detailed guidelines.

Prerequisites

  • 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)

Build and Test

git clone https://github.com/dfinity/icp-cli.git
cd icp-cli
cargo build
cargo test

Development

# 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

Working with Documentation

# 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:

See docs/README.md for documentation writing guidelines.

License

Apache-2.0

About

The command-line interface for the ICP SDK.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 11

Languages