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]
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",
]
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]...
<CANISTERS> — Canister names (if empty, build all canisters in environment)
-e, --environment <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]...
<NAMES> — Canister names
-m, --mode <MODE> — Specifies the mode of canister installation
Possible values: auto, install, reinstall, upgrade
--subnet <SUBNET> — The subnet to use for the canisters being deployed
--controller <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 <IDENTITY> — The user identity to run this command as
-e, --environment <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"]