You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: icp identity import can now be used with a --delegation flag to import a delegated identity. This is most useful for containers or other internal-only delegations; for anything involving a network, icp identity delegation request remains the recommended way to work with delegations.
Install icp-cli 1.0.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/dfinity/icp-cli/releases/download/v1.0.1/icp-cli-installer.sh | sh
feat: The default gateway domain is now icp.net, not icp0.io.
feat: Password-protected identities now only need your password once per session. The session length defaults to 5 minutes and can be changed with icp settings session-length <DURATION> (e.g. 30m, 1h) or turned off with icp settings session-length disabled. You can also explicitly create or refresh a session with icp identity reauth <NAME> [--duration <DURATION>].
feat!: Remove --set-controller and replace with a new flag --remove-all-controllers. For the old behavior, combine this flag with --add-controller
Install icp-cli 1.0.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/dfinity/icp-cli/releases/download/v1.0.0/icp-cli-installer.sh | sh
feat: icp canister call now accepts --candid <PATH> to load the canister's Candid interface from a local .did file instead of fetching it from the network. The supplied interface drives method selection, argument building, and response decoding.
Install icp-cli 0.3.2
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/dfinity/icp-cli/releases/download/v0.3.2/icp-cli-installer.sh | sh
fix: Account seeding in new networks is now done via transfer instead of mint. This should eliminate minting ratelimit errors for users with a lot of local identities.
Install icp-cli 0.3.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/dfinity/icp-cli/releases/download/v0.3.1/icp-cli-installer.sh | sh
feat: icp identity link web now lets you sign in with web-based identities, especially Internet Identity. You can use your NNS-UI or Oisy principals locally with --app nns.ic0.app or --app oisy.com. When the session expires, sign in again with icp identity reauth.
BREAKING: removed the assets sync step type (type: assets). Asset uploading is no longer built into icp-cli — use a script or plugin sync step instead (for example, a recipe that provides a sync plugin). A manifest that still uses type: assets now fails to load with a message explaining the change.
feat: Recipe templates can now use {{_.canister.name}} to reference the canister's name from icp.yaml without repeating it in the configuration: block. The _ namespace is reserved and cannot be overridden by user-provided configuration.
Install icp-cli 0.3.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/dfinity/icp-cli/releases/download/v0.3.0/icp-cli-installer.sh | sh
feat: script sync steps now receive ICP_CLI_ENVIRONMENT, ICP_CLI_NETWORK, ICP_CLI_CID (the current canister's principal), and ICP_CLI_CID_<NAME> (every canister's principal) as environment variables.
fix: icp canister call with both --json and -o hex no longer prints both kinds of output at once.
fix: icp no longer picks up a stale inherited $PWD when launched as a subprocess via chdir(2) + execve (e.g. from a test harness). The logical $PWD path is now validated against getcwd() by inode before use, preserving symlink-aware project root discovery while ignoring stale values.
Experimental
feat(sync-plugin): Plugins can now surface messages that persist after the step completes. Anything the plugin writes to stderr (e.g. eprintln! in Rust) is streamed live in the rolling step view AND printed under the canister name once the step ends; stdout remains transient. The exec() return signature has changed from result<option<string>, string> to result<_, string> — plugins that returned a summary string should eprintln! it instead.
Install icp-cli 0.2.7
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/dfinity/icp-cli/releases/download/v0.2.7/icp-cli-installer.sh | sh
feat: icp token/cycles balance now accept --of-principal
fix: The local wasm cache has moved from .icp/cache/canisters/ to .icp/cache/wasms/. Existing cached files will be re-downloaded automatically on the next run.
feat: Canister manifests now support a plugin sync step type. Plugins are WebAssembly components that run in a sandboxed environment and can drive arbitrary post-deployment logic against the canister being synced. See crates/icp-sync-plugin/DESIGN.md for details.
feat: icp sync now accepts --proxy to route sync plugin calls to the target canister through a proxy canister.
fix: icp canister call now serializes arguments built via the interactive Candid assist prompt against the method's declared signature, matching the behavior of arguments passed on the command line. Previously, narrower values (e.g. a variant case from a multi-case variant) were encoded with a type table inferred only from the value, which the target canister rejected with errors like "Variant index N larger than length 1".
Install icp-cli 0.2.6
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/dfinity/icp-cli/releases/download/v0.2.6/icp-cli-installer.sh | sh
feat: Add --proxy to icp canister subcommands and icp deploy to route management canister calls through a proxy canister
feat: Add --args, --args-file, and --args-format flags to icp deploy to pass install arguments at the command line, overriding init_args in the manifest
Install icp-cli 0.2.3
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/dfinity/icp-cli/releases/download/v0.2.3/icp-cli-installer.sh | sh