- feat: icp-cli will now inform you if a new version is released. This can be disabled with
icp settings update-check - fix: Duplicate identities no longer cause an error when starting a network
- feat: Added support for creating canisters on cloud engine subnets. Note that local networks cannot yet create these subnets.
- feat: Upgrading canisters now stops them before the upgrade and starts them again afterwards
- feat:
icp canister logssupports filtering by timestamp (--since,--until) and log index (--since-index,--until-index) - feat: Support
log_memory_limitcanister setting inicp canister settings updateandicp canister settings sync - feat: Leaving off the method name parameter in
icp canister callprompts you with an interactive list of methods - fix: Correct templating of special HTML characters in recipes
- feat: Added a notification about new versions of the network
- feat: Added 'friendly name' domains for canisters - instead of
<frontend principal>.localhostyou can accessfrontend.local.localhost. - feat: Added
bindkey to network gateway config to pick your network interface (previous documentation mentioned ahostkey, but it did not do anything) - feat: check for Candid incompatibility when upgrading a canister
- feat: Add
bitcoind-addranddogecoind-addroptions for managed networks to connect to Bitcoin and Dogecoin nodes - feat: Init/call arg files now support raw binary without conversion to hex
- feat!: Remove argument type inference in init/call args in commands and manifest. Args are always assumed Candid, new parameters allow specifying other formats like hex, and alternate parameters are used to specify loading from a file.
- feat: Network gateway now supports a
domainskey - feat:
icp identity exportnow takes an--encryptflag to avoid rendering the key in plaintext - feat: Optionally split connected networks'
urlintoapi-urlandhttp-gateway-url - feat: Allow specifying a version of the network launcher to use
- feat: Support subaccounts and ICRC-1 IDs in
icp token,icp cycles, andicp identity account-id - feat!: Recipes are now specified
@registry/recipe@version, the version component is required. Thelatestversion is no longer assumed and the version tags will be removed soon. - feat: Recipes and prebuilt canisters are now cached locally
- feat:
icp settings autocontainerize true, always use a docker container for all networks - feat:
icp canister migrate-id- initiate canister ID migration across subnets - feat: Install proxy canister when starting managed networks with all identities as controllers (or anonymous + default if more than 10 identities)
icp network statusdisplays the proxy canister principal
- feat:
icp network statusdisplay more information about networks - feat:
icp canister logsto display the current canister logs- use
--followto continuously poll for new logs.--interval <n>to poll everynseconds
- use
- feat: Support
k,m,b,tsuffixes in.yamlfiles when specifying cycles amounts - feat: Support
kb,kib,mb,mib,gb,gibsuffixes in.yamlfiles and CLI arguments when specifying memory amounts - feat: Add an optional root-key argument to canister commands
- feat:
icp canister callnow supports--output <mode>with the following modes:auto(default): Try decoding the response as Candid, then UTF-8, then fall back to hex.candid: Parse as Candid and pretty-print; error if parsing fails.text: Parse as UTF-8 text; error if invalid.hex: Print raw response as hex.
- chore!: new passwords for identity encryption need to be at least 8 characters long
- feat: Anonymous usage telemetry — collects command name, arguments, duration, and outcome
- Enabled by default; opt out with
icp settings telemetry false,DO_NOT_TRACK=1, orICP_TELEMETRY_DISABLED=1 - Automatically disabled in CI environments (
CIenv var set) icp settings telemetryto view or change the current setting
- Enabled by default; opt out with
- feat:
icp canister snapshot- create, delete, restore, list, download, and upload canister snapshots - feat:
icp canister callnow supports--proxyflag to route calls through a proxy canister- Use
--proxy <CANISTER_ID>to forward the call through a proxy canister'sproxymethod - Use
--cycles <AMOUNT>to specify cycles to forward with the proxied call (defaults to 0)
- Use
- feat:
icp identity exportto print the PEM file for the identity
- fix: Fix error when loading network descriptors from v0.1.0-beta.3
- feat:
icp identity deleteandicp identity rename
- fix: More reliably detect occupied ports' project locations across containers and backgrounded networks
- feat: Bind Docker networks to 127.0.0.1
- feat: Add IC options to network manifest (
ii,nns,subnets,artificial-delay-ms) - feat: Release for Windows
- feat: Add safety controls for
--set-controllerand--remove-controller- Warn and prompt for confirmation when removing yourself from controllers
- Add
-f/--forceflag to skip confirmation prompts
- feat: Show
nameincanister statuscommand - feat:
icp canister metadata <canister> <metadata section>now fetches metadata sections from specified canisters - fix: Validate explicit canister paths and throw an error if
canister.yamlis not found - feat!: Rename the implicit "mainnet" network to "ic"
- The corresponding environment "ic" is defined implicitly which can be overwritten by user configuration.
- The
--mainnetand--icflags are removed. Use-n/--network ic,-e/--environment icinstead.
- feat: Allow overriding the implicit
localnetwork and environment. - chore: get rid of
TCYCLESmentions and replace them withcycles - feat: Add
icp cycles transferas replacement foricp token cycles transfer - chore!: remove support for
cyclesinicp token. Useicp cyclesinstead - chore!: Change display format of token and cycles amounts
- feat: Token and cycles amounts now support new formats. Valid examples:
1_000,1k,1.5m,1_234.5b,4T - feat: Allow installing WASMs that are larger than 2MB
- feat: Add
icp identity account-idcommand to display the ICP ledger account identifier- Supports
--of-principalflag to convert a specific principal instead of the current identity
- Supports
- feat:
icp token transfernow accepts AccountIdentifier hex strings for ICP ledger transfers- Legacy ICP ledger transfers using AccountIdentifier are automatically used when a 64-character hex string is provided
- AccountIdentifier format is only supported for the ICP ledger; other tokens require Principal format
- feat:
icp canister callcan now take arguments in hex - feat: allow specifying paths to files that contain canister arguments:
- in
icp canister call <canister> <function> <argument>the argument can now point to a file that contains hex or Candid - in
icp canister install <canister> <argument>the argument can now point to a file that contains hex or Candid - in
icp.yaml, a canister'sinstall_argsfield can now point to a file that contains hex or Candid
- in
- feat: Remove requirement that the user install
icp-cli-network-launcher, auto-install it on first use - feat: Support keyring storage and password-protected encryption for identity keys (and make keyring the default)
- fix: Use EOP when upgrading motoko canisters
- feat: Network startup verbose output now requires
--debugflag - feat: Add
icp network statuscommand to display network information- Displays port, root key, and candid UI principal (if available)
- Supports
--jsonflag for JSON output
- feat:
icp deploynow displays URLs to interact with the deployed canister(s) - feat: Allow overriding the
localnetwork in the config file- This makes it more convenient to configure the default environment
- feat: Validate call argument against candid interface
- The interface is fetched from canister metadata onchain
- feat: Accept an environment as argument for network commands
- feat: call argument building interactively using candid assist
- feat: specifying canister
init_argsinicp.yaml - fix: overriding canister settings from the
canisterssection oficp.yamlwith settings from theenvironmentssection now works as intended
- feat: Add support for launching dockerized local networks (#233)
- fix: When deleting a canister, also delete the id from the id store.
- chore!: rename
icp network runto `icp network start - feat: install Candid UI canister after starting a local network
- feat!: Switch to using icp-cli-network-launcher instead of pocket-ic directly. Download it here.
- feat!: Introduce
newcommand to create projects from templates (#219)
This is a the first beta release of icp-cli.
Supports:
- Creating an identity.
- Launching a local network with pocket-ic.
- Executing operations against a network.
- Building and deploying canisters to a network.