cli

[EXPERIMENT]: This Salesforce CLI the focuses on a cleaner user experience for ALL Salesforce functionality. It is in heavy development will be changing rapidly. More information will be added to this repository in the near-future.
Usage
$ npm install -g @salesforce/cli
$ sf COMMAND
running command...
$ sf (-v|--version|version)
@salesforce/cli/0.0.28 linux-x64 node-v14.17.3
$ sf --help [COMMAND]
USAGE
$ sf COMMAND
...
Commands
sf config get
Run "sf config list" to see all the configuration variables you've set. Global configuration variable are always displayed; local ones are displayed if you run the command in a project directory.
USAGE
$ sf config get [--json] [--verbose]
FLAGS
--verbose Display whether the configuration variables are set locally or globally.
GLOBAL FLAGS
--json format output as json
DESCRIPTION
Get the value of a configuration variable.
Run "sf config list" to see all the configuration variables you've set. Global configuration variable are always
displayed; local ones are displayed if you run the command in a project directory.
EXAMPLES
Get the value of the "target-org" configuration variable.
$ sf config get target-org
Get multiple configuration variables and display whether they're set locally or globally:
$ sf config get target-org api-version --verbose
sf config list
Global configuration variables apply to any directory and are always displayed. If you run this command from a project directory, local configuration variables are also displayed.
USAGE
$ sf config list [--json]
GLOBAL FLAGS
--json format output as json
DESCRIPTION
List the configuration variables that you've previously set.
Global configuration variables apply to any directory and are always displayed. If you run this command from a project
directory, local configuration variables are also displayed.
EXAMPLES
List both global configuration variables and those local to your project:
$ sf config list
sf config set
Use configuration variables to set CLI defaults, such as your default environment or the API version you want the CLI to use. For example, if you set the "target-org" configuration variable, you don't need to specify it as a "sf deploy metadata" flag if you're deploying to your default org.
USAGE
$ sf config set [--json] [-g]
FLAGS
-g, --global Set the configuration variables globally, so they can be used from any directory.
GLOBAL FLAGS
--json format output as json
DESCRIPTION
Set one or more configuration variables, such as your default environment.
Use configuration variables to set CLI defaults, such as your default environment or the API version you want the CLI
to use. For example, if you set the "target-org" configuration variable, you don't need to specify it as a "sf deploy
metadata" flag if you're deploying to your default org.
Local configuration variables apply only to your current project. Global variables, specified with the --global flag,
apply in any directory.
The resolution order if you've set a flag value in multiple ways is as follows:
1. Flag value specified at the command line.
2. Local (project-level) configuration variable.
3. Global configuration variable.
Run "sf <command> --help" to get a list of configuration variables used by that command. Run "sf config list" to see
the configuration variables you've already set and their level (local or global).
If you set a configuration variable and then run a command that uses it, the command output displays this information
at runtime.
EXAMPLES
Set the local target-org configuration variable to an org username:
$ sf config set target-org=me@my.org
Set the local target-org configuration variable to an alias:
$ sf config set target-org=my-scratch-org
Set the global target-org configuration variable:
$ sf config set --global target-org=my-scratch-org
sf config unset
Local configuration variables apply only to your current project. Global configuration variables apply in any directory.
USAGE
$ sf config unset [--json] [-g]
FLAGS
-g, --global Unset the configuration variables globally, so they can no longer be used from any directory.
GLOBAL FLAGS
--json format output as json
DESCRIPTION
Unset local or global configuration variables.
Local configuration variables apply only to your current project. Global configuration variables apply in any
directory.
EXAMPLES
Unset the local "target-org" configuration variable:
$ sf config unset target-org
Unset multiple configuration variables globally:
$ sf config unset target-org api-version --global
sf deploy
This command must be run from within a project.
USAGE
$ sf deploy [--interactive]
FLAGS
--interactive Force the CLI to prompt for all deployment inputs.
DESCRIPTION
Deploy a project interactively to any Salesforce environment.
This command must be run from within a project.
The command first analyzes your project, your active or logged-into environments, and local defaults to determine what
to deploy and where to deploy it. The command then prompts you for information about this particular deployment and
provides intelligent choices based on its analysis.
For example, if your local project contains a source directory with metadata files in source format, the command asks
if you want to deploy that Salesforce app to an org. The command lists your connected orgs and asks which one you want
to deploy to. If the command finds Apex tests, it asks if you want to run them and at which level.
Similarly, if the command finds a local functions directory, the command prompts if you want to deploy it and to which
compute environment. The command prompts and connects you to a compute environment of your choice if you’re not
currently connected to any.
The command stores your responses in a local file and uses them as defaults when you rerun the command. Specify
--interactive to force the command to reprompt.
Use this command for quick and simple deploys. For more complicated deployments, use the environment-specific
commands, such as "sf project deploy org", that provide additional flags.
EXAMPLES
Deploy a project and use stored values from a previous command run:
$ sf deploy
Reprompt for all deployment inputs:
$ sf deploy --interactive
See code: @salesforce/plugin-deploy-retrieve
sf deploy metadata
You must run this command from within a project.
USAGE
$ sf deploy metadata [--json] [-m <value>] [-x <value>] [-d <value>] [--target-org <value>] [-l
NoTestRun|RunSpecifiedTests|RunLocalTests|RunAllTestsInOrg] [--wait <value>]
FLAGS
-d, --deploy-dir=<value>... Path to the local source files to deploy.
-l, --test-level=<option> [default: NoTestRun] Deployment Apex testing level.
<options: NoTestRun|RunSpecifiedTests|RunLocalTests|RunAllTestsInOrg>
-m, --metadata=<value>... Metadata component names to deploy.
-x, --manifest=<value> Full file path for manifest (package.xml) of components to deploy.
--target-org=<value> Login username or alias for the target org.
--wait=<value> [default: 33] Number of minutes to wait for command to complete and display results.
GLOBAL FLAGS
--json format output as json
DESCRIPTION
Deploy metadata in source format to an org from your local project.
You must run this command from within a project.
The source you deploy overwrites the corresponding metadata in your org. This command doesn’t attempt to merge your
source with the versions in your org.
To run the command asynchronously, set --wait to 0, which immediately returns the job ID. This way, you can continue
to use the CLI. By default the command waits to finish no matter how long the deployment takes.
To deploy multiple metadata components, either set multiple --metadata <name> flags or a single --metadata flag with
multiple names separated by spaces. Enclose names that contain spaces in one set of double quotes. The same syntax
applies to --manifest and --deploy-dir.
EXAMPLES
Deploy the source files in a directory:
$ sf deploy metadata --deploy-dir path/to/source
Deploy a specific Apex class and the objects whose source is in a directory (both examples are equivalent):
$ sf deploy metadata --deploy-dir path/to/apex/classes/MyClass.cls path/to/source/objects
$ sf deploy metadata --deploy-dir path/to/apex/classes/MyClass.cls --deploy-dir path/to/source/objects
Deploy all Apex classes:
$ sf deploy metadata --metadata ApexClass
Deploy a specific Apex class:
$ sf deploy metadata --metadata ApexClass:MyApexClass
Deploy all custom objects and Apex classes (both examples are equivalent):
$ sf deploy metadata --metadata CustomObject ApexClass
$ sf deploy metadata --metadata CustomObject --metadata ApexClass
Deploy all Apex classes and a profile that has a space in its name:
$ sf deploy metadata --metadata ApexClass --metadata "Profile:My Profile"
Deploy all components listed in a manifest:
$ sf deploy metadata --manifest path/to/package.xml
Run the tests that aren’t in any managed packages as part of a deployment:
$ sf deploy metadata --metadata ApexClass --test-level RunLocalTests
FLAG DESCRIPTIONS
-d, --deploy-dir=<value>... Path to the local source files to deploy.
The supplied path can be to a single file (in which case the operation is applied to only one file) or to a folder
(in which case the operation is applied to all metadata types in the directory and its subdirectories).
If you specify this flag, don’t specify --metadata or --manifest.
-l, --test-level=NoTestRun|RunSpecifiedTests|RunLocalTests|RunAllTestsInOrg Deployment Apex testing level.
Valid values are:
- NoTestRun — No tests are run. This test level applies only to deployments to development environments, such as
sandbox, Developer Edition, or trial orgs. This test level is the default for development environments.
- RunSpecifiedTests — Runs only the tests that you specify with the --run-tests flag. Code coverage requirements
differ from the default coverage requirements when using this test level. Executed tests must comprise a minimum of
75% code coverage for each class and trigger in the deployment package. This coverage is computed for each class and
trigger individually and is different than the overall coverage percentage.
- RunLocalTests — All tests in your org are run, except the ones that originate from installed managed packages.
This test level is the default for production deployments that include Apex classes or triggers.
- RunAllTestsInOrg — All tests in your org are run, including tests of managed packages.
If you don’t specify a test level, the default behavior depends on the contents of your deployment package. For more
information, see “Running Tests in a Deployment” in the Metadata API Developer Guide.
-x, --manifest=<value> Full file path for manifest (package.xml) of components to deploy.
All child components are included. If you specify this flag, don’t specify --metadata or --deploy-dir.
--target-org=<value> Login username or alias for the target org.
Overrides your default org.
--wait=<value> Number of minutes to wait for command to complete and display results.
If the command continues to run after the wait period, the CLI returns control of the terminal window to you.
sf env display
Specify an environment with either the username you used when you ran the "sf login" command or the environment's alias. Run "sf env list" to view all your environments and their aliases.
USAGE
$ sf env display [--json] [-e <value>]
FLAGS
-e, --target-env=<value> Environment alias or login user.
GLOBAL FLAGS
--json format output as json
DESCRIPTION
Display details about an environment.
Specify an environment with either the username you used when you ran the "sf login" command or the environment's
alias. Run "sf env list" to view all your environments and their aliases.
Output depends on the type of environment. For example, scratch org details include the access token, alias, username
of the associated Dev Hub, the creation and expiration date, the generated scratch org username, and more. Compute
environment details include the associated orgs, the list of functions, the project name, and more.
EXAMPLES
Display details about a scratch org with alias my-scratch-org:
$ sf env display --target-env=my-scratch-org
Specify a username instead of an alias:
$ sf env display --target-env=test-123456-abcdefg@example.com
Specify JSON format and redirect output into a file:
$ sf env display --target-env=my-scratch-org --json > tmp/MyOrdDesc.json
sf env list
The command displays only active environments. For orgs, active means unexpired scratch orgs and orgs you’re currently logged into.
USAGE
$ sf env list [--json] [-x] [--columns <value>] [--csv] [--filter <value>] [--no-header] [--no-truncate]
[--output csv|json|yaml] [--sort <value>]
FLAGS
-x, --extended Show extra columns.
--columns=<value>... List of columns to display.
--csv Output in csv format [alias: --output=csv]
--filter=<value> Filter property by partial string matching.
--no-header Hide table header from output.
--no-truncate Don't truncate output to fit screen.
--output=<option> Format in which to display the output.
<options: csv|json|yaml>
--sort=<value> Column to sort by (prepend '-' for descending).
GLOBAL FLAGS
--json format output as json
DESCRIPTION
List the environments you’ve created or logged into.
The command displays only active environments. For orgs, active means unexpired scratch orgs and orgs you’re currently
logged into.
Output is displayed in multiple tables, one for each environment type. For example, the Salesforce Orgs table lists
the non-scratch orgs you’re logged into, such as sandboxes, Dev Hubs, production orgs, and so on. Scratch orgs get
their own table.
For non-scratch orgs, the Username column refers to the user you logged into the org with. For scratch orgs it refers
to the username that was generated for you when you created the scratch org. The table also displays the default
environment for each type, the instance URL, and how you authorized (logged into) the org, either using a web browser
or JWT.
Use the table-manipulation flags, such as --filter and --sort, to change how the data is displayed.
Run "sf env display" to view details about a specific environment.
EXAMPLES
List all active environments:
$ sf env list
Filter the output to list only orgs you authorized using a web browser; "OAuth Method" is the name of a column:
$ sf env list --filter "OAuth Method=web"
Display only the Alias column and sort the aliases in descending order:
$ sf env list --sort "-Alias" --columns "Alias"
Don't truncate the displayed output:
$ sf env list --no-truncate
Display only the table data, not the headers, in comma-separated value (csv) format:
$ sf env list --csv --no-header
sf env open
You can open the following types of environments in a web browser: scratch orgs, sandboxes, Dev Hubs, and production orgs.
USAGE
$ sf env open [--json] [-p <value>] [-r] [-e <value>] [--browser <value>]
FLAGS
-e, --target-env=<value> Environment login user or alias to open.
-p, --path=<value> Path to append to the end of the login URL.
-r, --url-only Display the URL, but don’t launch it in a browser.
--browser=<value> Browser in which to open the environment.
GLOBAL FLAGS
--json format output as json
DESCRIPTION
Open an environment in your web browser.
You can open the following types of environments in a web browser: scratch orgs, sandboxes, Dev Hubs, and production
orgs.
If you run the command without flags, it attempts to open your default environment in your default web browser. Run
"sf env list" to view your default environment.
Each of your environments is associated with an instance URL, such as https://login.salesforce.com. To open a specific
web page, specify the portion of the URL after "<URL>/" with the --path flag, such as /apex/YourPage to open a
Visualforce page.
EXAMPLES
Open your default environment:
$ sf env open
Open the Visualforce page /apex/StartHere in a scratch org with alias test-org:
$ sf env open --target-env test-org --path /apex/StartHere
View the URL but don't launch it in a browser:
$ sf env open --target-env test-org --path /apex/StartHere --url-only
Open the environment in the Google Chrome browser:
$ sf env open --target-env test-org --path /apex/StartHere --browser chrome
FLAG DESCRIPTIONS
-e, --target-env=<value> Environment login user or alias to open.
Specify the login user or alias that’s associated with the environment. For scratch orgs, the login user is
generated by the command that created the scratch org. You can also set an alias for the scratch org when you create
it.
For Dev Hubs, sandboxes, and production orgs, specify the alias you set when you logged into the org with "sf
login".
--browser=<value> Browser in which to open the environment.
You can specify that the environment open in one of the following browsers: Firefox, Safari, Google Chrome, or
Windows Edge. If you don’t specify --browser, the environment opens in your default browser.
sf help [COMMAND]
display help for sf
USAGE
$ sf help [COMMAND] [--all]
ARGUMENTS
COMMAND command to show help for
FLAGS
--all see all commands in CLI
DESCRIPTION
display help for sf
See code: @oclif/plugin-help
sf login
Logging into an environment authorizes the CLI to run other commands that connect to that environment, such as deploying or retrieving a project to and from an org.
USAGE
$ sf login
DESCRIPTION
Log interactively into an environment, such as a Salesforce org.
Logging into an environment authorizes the CLI to run other commands that connect to that environment, such as
deploying or retrieving a project to and from an org.
The command first prompts you to choose an environment from a list of available ones. It then opens a browser to the
appropriate login URL, such as https://login.salesforce.com for an org. Then, depending on the environment you choose,
the command prompts for other actions, such as giving the environment an alias or setting it as your default.
This command is fully interactive and has no flags other than displaying the command-line help. Each environment has
its own specific login command, such as "sf login org", which usually provide more flags than this interactive one.
For more information about the interactive prompts from this command, see the help for the environment-specific
command, such as "sf login org --help".
EXAMPLES
- Log in interactively:
sf login
See code: @salesforce/plugin-login
sf login org
Opens a Salesforce instance URL in a web browser so you can enter your credentials and log in to your org. After you log in, you can close the browser window.
USAGE
$ sf login org [--json] [-a <value>] [-b <value>] [-i <value>] [-l <value>] [-d] [-v]
FLAGS
-a, --alias=<value> Alias for the org.
-b, --browser=<value> Browser in which to open the org.
-d, --set-default Set the org as the default that all org-related commands run against.
-i, --clientid=<value> OAuth client id (also called consumer key) of your custom connected app.
-l, --instance-url=<value> [default: https://login.salesforce.com] URL of the instance that the org lives on.
(defaults to https://login.salesforce.com)
-v, --set-default-dev-hub Set the org as the default Dev Hub for scratch org creation.
GLOBAL FLAGS
--json format output as json
DESCRIPTION
Log in to a Salesforce org using the web server flow.
Opens a Salesforce instance URL in a web browser so you can enter your credentials and log in to your org. After you
log in, you can close the browser window.
Logging into an org authorizes the CLI to run other commands that connect to that org, such as deploying or retrieving
a project. You can log into many types of orgs, such as sandboxes, Dev Hubs, Env Hubs, production orgs, and scratch
orgs.
We recommend that you set an alias when you log into an org. Aliases make it easy to later reference this org when
running commands that require it. If you don’t set an alias, you use the username that you specified when you logged
in to the org. If you run multiple commands that reference the same org, consider setting the org as your default. Use
--set-default for your default scratch org or sandbox, or --set-default-dev-hub for your default Dev Hub.
By default, this command uses the global out-of-the-box connected app in your org. If you need more security or
control, such as setting the refresh token timeout or specifying IP ranges, create your own connected app using a
digital certificate. Make note of the consumer key (also called cliend id) that’s generated for you. Then specify the
consumer key with the --clientid flag.
EXAMPLES
Run the command with no flags to open the default Salesforce login page (https://login.salesforce.com):
$ sf login org
Log in to your Dev Hub, set it as your default Dev Hub, and set an alias that you reference later when you create a
scratch org:
$ sf login org --set-default-dev-hub --alias dev-hub
Log in to a sandbox and set it as your default org:
$ sf login org --instance-url https://test.salesforce.com --set-default
Use --browser to specify a specific browser, such as Google Chrome:
$ sf login org --instance-url https://test.salesforce.com --set-default --browser chrome
Use your own connected app by specifying its consumer key (also called client ID):
$ sf login org --instance-url https://test.salesforce.com --set-default --browser chrome --clientid \
04580y4051234051
FLAG DESCRIPTIONS
-l, --instance-url=<value> URL of the instance that the org lives on. (defaults to https://login.salesforce.com)
If you specify --instance-url, the value overrides the sfdcLoginUrl value in your sfdx-project.json file.
To specify a My Domain URL, use the format https://yourcompanyname.my.salesforce.com.
To specify a sandbox, set --instance-url to https://test.salesforce.com.
sf login org jwt
Use this command in automated environments where you can’t interactively log in with a browser, such as in CI/CD scripts.
USAGE
$ sf login org jwt [--json] [-a <value>] [-l <value>] [-f <value> -u <value> -i <value>] [-d] [-v]
FLAGS
-a, --alias=<value> Alias for the org.
-d, --set-default Set the org as the default that all org-related commands run against.
-f, --jwt-key-file=<value> Path to a file containing the private key.
-i, --clientid=<value> OAuth client id (also called consumer key) of your custom connected app.
-l, --instance-url=<value> [default: https://login.salesforce.com] URL of the instance that the org lives on.
(defaults to https://login.salesforce.com)
-u, --username=<value> Username of the user logging in.
-v, --set-default-dev-hub Set the org as the default Dev Hub for scratch org creation.
GLOBAL FLAGS
--json format output as json
DESCRIPTION
Log in to a Salesforce org using a JSON web token (JWT).
Use this command in automated environments where you can’t interactively log in with a browser, such as in CI/CD
scripts.
Logging into an org authorizes the CLI to run other commands that connect to that org, such as deploying or retrieving
a project. You can log into many types of orgs, such as sandboxes, Dev Hubs, Env Hubs, production orgs, and scratch
orgs.
Complete these steps before you run this command:
1. Create a digital certificate (also called digital signature) and the private key to sign the certificate. You can
use your own key and certificate issued by a certification authority. Or use OpenSSL to create a key and a self-signed
digital certificate.
2. Store the private key in a file on your computer. When you run this command, you set the --jwt-key-file flag to
this file.
3. Create a custom connected app in your org using the digital certificate. Make note of the consumer key (also called
cliend id) that’s generated for you. Be sure the username of the user logging in is approved to use the connected app.
When you run this command, you set the --clientid flag to the consumer key.
We recommend that you set an alias when you log into an org. Aliases make it easy to later reference this org when
running commands that require it. If you don’t set an alias, you use the username that you specified when you logged
in to the org. If you run multiple commands that reference the same org, consider setting the org as your default.
Use --set-default for your default scratch org or sandbox, or --set-default-dev-hub for your default Dev Hub.
EXAMPLES
Log into an org with username jdoe@example.org and on the default instance URL (https://login.salesforce.org). The
private key is stored in the file /Users/jdoe/JWT/server.key and the command uses the connected app with consumer
key (client id) 04580y4051234051.
$ sf login org jwt --username jdoe@example.org --jwt-key-file /Users/jdoe/JWT/server.key --clientid \
04580y4051234051
Set the org as the default and give it an alias:
$ sf login org jwt --username jdoe@example.org --jwt-key-file /Users/jdoe/JWT/server.key --clientid \
04580y4051234051 --alias ci-org --set-default
Set the org as the default Dev Hub and give it an alias:
$ sf login org jwt --username jdoe@example.org --jwt-key-file /Users/jdoe/JWT/server.key --clientid \
04580y4051234051 --alias ci-dev-hub --set-default-dev-hub
Log in to a sandbox using URL https://test.salesforce.com:
$ sf login org jwt --username jdoe@example.org --jwt-key-file /Users/jdoe/JWT/server.key --clientid \
04580y4051234051 --alias ci-org --set-default --instance-url https://test.salesforce.com
FLAG DESCRIPTIONS
-l, --instance-url=<value> URL of the instance that the org lives on. (defaults to https://login.salesforce.com)
If you specify an --instance-url value, this value overrides the sfdcLoginUrl value in your sfdx-project.json file.
To specify a My Domain URL, use the format https://yourcompanyname.my.salesforce.com.
To specify a sandbox, set --instance-url to https://test.salesforce.com.
sf logout
By default, the command prompts you to confirm that you want to log out of all environments. You can't log out of selected environments, only all of them. Use --noprompt to not be prompted.
USAGE
$ sf logout [--json] [--noprompt]
FLAGS
--noprompt Don't prompt for confirmation.
GLOBAL FLAGS
--json format output as json
DESCRIPTION
Log out of all environments, such as Salesforce orgs and compute environments.
By default, the command prompts you to confirm that you want to log out of all environments. You can't log out of
selected environments, only all of them. Use --noprompt to not be prompted.
EXAMPLES
- Log out of all environments:
$ sf logout
- Log out of all environments with no confirmation prompt:
$ sf logout --noprompt
See code: @salesforce/plugin-login
sf plugins
list installed plugins
USAGE
$ sf plugins [--core]
FLAGS
--core show core plugins
DESCRIPTION
list installed plugins
EXAMPLES
$ sf plugins
See code: @oclif/plugin-plugins
sf plugins:inspect PLUGIN...
displays installation properties of a plugin
USAGE
$ sf plugins:inspect PLUGIN...
ARGUMENTS
PLUGIN [default: .] plugin to inspect
FLAGS
-h, --help show CLI help
-v, --verbose
DESCRIPTION
displays installation properties of a plugin
EXAMPLES
$ sf plugins:inspect myplugin
sf plugins:install PLUGIN...
installs a plugin into the CLI
USAGE
$ sf plugins:install PLUGIN...
ARGUMENTS
PLUGIN plugin to install
FLAGS
-f, --force yarn install with force flag
-h, --help show CLI help
-v, --verbose
DESCRIPTION
installs a plugin into the CLI
Can be installed from npm or a git url.
Installation of a user-installed plugin will override a core plugin.
e.g. If you have a core plugin that has a 'hello' command, installing a user-installed plugin with a 'hello' command
will override the core plugin implementation. This is useful if a user needs to update core plugin functionality in
the CLI without the need to patch and update the whole CLI.
ALIASES
$ sf plugins add
EXAMPLES
$ sf plugins:install myplugin
$ sf plugins:install https://github.com/someuser/someplugin
$ sf plugins:install someuser/someplugin
sf plugins:link PLUGIN
links a plugin into the CLI for development
USAGE
$ sf plugins:link PLUGIN
ARGUMENTS
PATH [default: .] path to plugin
FLAGS
-h, --help show CLI help
-v, --verbose
DESCRIPTION
links a plugin into the CLI for development
Installation of a linked plugin will override a user-installed or core plugin.
e.g. If you have a user-installed or core plugin that has a 'hello' command, installing a linked plugin with a 'hello'
command will override the user-installed or core plugin implementation. This is useful for development work.
EXAMPLES
$ sf plugins:link myplugin
sf plugins:uninstall PLUGIN...
removes a plugin from the CLI
USAGE
$ sf plugins:uninstall PLUGIN...
ARGUMENTS
PLUGIN plugin to uninstall
FLAGS
-h, --help show CLI help
-v, --verbose
DESCRIPTION
removes a plugin from the CLI
ALIASES
$ sf plugins unlink
$ sf plugins remove
sf plugins update
update installed plugins
USAGE
$ sf plugins update [-h] [-v]
FLAGS
-h, --help show CLI help
-v, --verbose
DESCRIPTION
update installed plugins
sf retrieve metadata
You must run this command from within a project.
USAGE
$ sf retrieve metadata [--json] [-a <value>] [-x <value> | -m <value> | -d <value>] [-n <value>] [-t <value>] [-w
<value>]
FLAGS
-a, --api-version=<value> Target API version for the retrieve.
-d, --source-dir=<value>... File paths for source to retrieve from the org.
-m, --metadata=<value>... Metadata component names to retrieve.
-n, --package-name=<value>... Package names to retrieve.
-t, --target-org=<value> Login username or alias for the target org.
-w, --wait=<value> [default: 33] Number of minutes to wait for the command to complete and display results
to the terminal window.
-x, --manifest=<value> File path for the manifest (package.xml) that specifies the components to retrieve.
GLOBAL FLAGS
--json format output as json
DESCRIPTION
Retrieve metadata in source format from an org to your local project.
You must run this command from within a project.
The source you retrieve overwrites the corresponding source files in your local project. This command doesn’t attempt
to merge the source from your org with your local source files.
To retrieve multiple metadata components, either use multiple --metadata <name> flags or use a single --metadata flag
with multiple names separated by spaces. Enclose names that contain spaces in one set of double quotes. The same
syntax applies to --manifest and --source-dir.
EXAMPLES
Retrieve the source files in a directory:
$ sf retrieve metadata --source-dir path/to/source
Retrieve a specific Apex class and the objects whose source is in a directory (both examples are equivalent):
$ sf retrieve metadata --source-dir path/to/apex/classes/MyClass.cls path/to/source/objects
$ sf retrieve metadata --source-dir path/to/apex/classes/MyClass.cls --source-dir path/to/source/objects
Retrieve all Apex classes:
$ sf retrieve metadata --metadata ApexClass
Retrieve a specific Apex class:
$ sf retrieve metadata --metadata ApexClass:MyApexClass
Retrieve all custom objects and Apex classes (both examples are equivalent):
$ sf retrieve metadata --metadata CustomObject ApexClass
$ sf retrieve metadata --metadata CustomObject --metadata ApexClass
Retrieve all metadata components listed in a manifest:
$ sf retrieve metadata --manifest path/to/package.xml
Retrieve metadata from a package:
$ sf retrieve metadata --package-name MyPackageName
Retrieve metadata from multiple packages, one of which has a space in its name (both examples are equivalent):
$ sf retrieve metadata --package-name Package1 "PackageName With Spaces" Package3
$ sf retrieve metadata --package-name Package1 --package-name "PackageName With Spaces" --package-name Package3