id = "icp-cli" name = "ICP CLI" homepage = "https://cli.internetcomputer.org/" description = "Command-line interface for developing and deploying Internet Computer applications." executables = ["icp"] [dotfiles] # The official identity guide documents these platform-specific identity # metadata files and the ICP_HOME override. Keep the literal platform paths: # [appData] would incorrectly turn the macOS Application Support path into an # XDG path. # https://cli.internetcomputer.org/1.3/guides/managing-identities/#storage-locations paths = [ "~/Library/Application Support/org.dfinity.icp-cli/identity/identity_list.json", "~/Library/Application Support/org.dfinity.icp-cli/identity/identity_defaults.json", "~/.local/share/icp-cli/identity/identity_list.json", "~/.local/share/icp-cli/identity/identity_defaults.json", "%APPDATA%/icp-cli/data/identity/identity_list.json", "%APPDATA%/icp-cli/data/identity/identity_defaults.json", ] # Password/plaintext storage writes private PEM keys under keys/. Keyring # storage keeps them outside the filesystem, so only the documented file-based # locations are represented here. secret = [ "~/Library/Application Support/org.dfinity.icp-cli/identity/keys/", "~/.local/share/icp-cli/identity/keys/", "%APPDATA%/icp-cli/data/identity/keys/", ] [commands] format = 1 label = "ICP CLI" description = "Build and deploy canisters of an Internet Computer project. Covers 'icp build' and 'icp deploy'; canister calls, networks, identities and project creation are not covered." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.subcommand]] path = ["build"] label = "Build canisters" description = "Build the canisters of the project; all of them when none are named." [[commands.subcommand.source]] id = "ref" kind = "help" url = "https://cli.internetcomputer.org/1.3/reference/cli/" revision = "icp-cli 1.3 reference" evidence = """ Usage: icp build [OPTIONS] [CANISTERS]... — Canister names (if empty, build all canisters in environment) -e, --environment — Override the environment to connect to. By default, the local environment is used """ [[commands.subcommand.field]] id = "canisters" label = "Canisters" description = "Canister names; leave empty to build all." type = "string" position = 0 multiple = true sources = ["ref"] [[commands.subcommand.field]] id = "environment" label = "Environment" type = "string" option = ["--environment", "-e"] suggestions = [{ value = "local", label = "local" }] sources = ["ref"] [[commands.subcommand.task]] id = "build_all" label = "Build everything" fields = ["environment"] required = [] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["canisters", "environment"] [[commands.subcommand]] path = ["deploy"] label = "Deploy to an environment" description = "Create, build and install canisters. Inline arguments (--args) and proxy options are not offered." [[commands.subcommand.source]] id = "ref" kind = "help" url = "https://cli.internetcomputer.org/1.3/reference/cli/" revision = "icp-cli 1.3 reference" evidence = """ Usage: icp deploy [OPTIONS] [NAMES]... — Canister names -m, --mode — Specifies the mode of canister installation Possible values: auto, install, reinstall, upgrade --subnet — The subnet to use for the canisters being deployed --controller — One or more controllers for the canisters being deployed. Repeat --controller to specify multiple --no-create — If any canisters do not exist, error instead of creating them -y, --yes — Skip confirmation prompts, including the Candid interface compatibility check --identity — The user identity to run this command as -e, --environment — Override the environment to connect to. By default, the local environment is used """ [[commands.subcommand.field]] id = "names" label = "Canisters" description = "Canister names; leave empty to deploy all." type = "string" position = 0 multiple = true sources = ["ref"] [[commands.subcommand.field]] id = "environment" label = "Environment" type = "string" option = ["--environment", "-e"] suggestions = [{ value = "local", label = "local" }] sources = ["ref"] [[commands.subcommand.field]] id = "mode" label = "Install mode" type = "enum" option = ["--mode", "-m"] choices = [{ value = "auto", label = "Auto" }, { value = "install", label = "Install" }, { value = "reinstall", label = "Reinstall (wipes state)" }, { value = "upgrade", label = "Upgrade" }] sources = ["ref"] [[commands.subcommand.field]] id = "identity" label = "Identity" type = "string" option = ["--identity"] sources = ["ref"] [[commands.subcommand.field]] id = "subnet" label = "Subnet" type = "string" option = ["--subnet"] sources = ["ref"] [[commands.subcommand.field]] id = "controller" label = "Controllers" type = "string" option = ["--controller"] multiple = true sources = ["ref"] [[commands.subcommand.field]] id = "no_create" label = "Do not create missing canisters" type = "boolean" option = ["--no-create"] sources = ["ref"] [[commands.subcommand.field]] id = "yes" label = "Skip confirmation prompts" type = "boolean" option = ["--yes", "-y"] sources = ["ref"] [[commands.subcommand.task]] id = "deploy_local" label = "Deploy to an environment" fields = ["names", "environment", "mode", "identity"] required = [] [[commands.subcommand.task]] id = "upgrade" label = "Upgrade existing canisters" fields = ["names", "environment", "identity", "mode"] required = [] set = { mode = ["upgrade"] } [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["names", "environment", "mode", "identity"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["subnet", "controller", "no_create", "yes"]