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
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Release Notes
feat(sync-plugin): plugin sync steps now reject any dirs/files entry that is, or traverses, a symlink. Together with the existing relative-path and .. checks, this keeps a declared path from resolving to a target outside the canister directory. The restriction may be relaxed in a future release if a safe use case emerges.
Experimental
fix(bundle): path validation use parent-dir analysis without canonicalize.
Install icp-cli 1.0.2
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/dfinity/icp-cli/releases/download/v1.0.2/icp-cli-installer.sh | sh
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Release Notes
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
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Release Notes
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
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Release Notes
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
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Release Notes
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
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Release Notes
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
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Release Notes
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
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Release Notes
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