Need help with other JFrog products?
JFrog Platform
JFrog Artifactory
JFrog Xray
JFrog Mission Control
JFrog Distribution
[JFrog Pipelines]
JFrog Access
JFrog CLI v2 was launched in July 2021. It includes changes to the functionality and usage of some of the legacy JFrog CLI commands. The changes are the result of feedback we received from users over time through GitHub, making the usage and functionality easier and more intuitive. For example, some of the default values changed, and are now more consistent across different commands. We also took this opportunity for improving and restructuring the code, as well as replacing old and deprecated functionality.
Most of the changes included in v2 are breaking changes compared to the v1 releases. We therefore packaged and released these changes under JFrog CLI v2, allowing users to migrate to v2 only when they are ready.
New enhancements to JFrog CLI are planned to be introduced as part of V2 only. V1 receives very little development attention nowadays. We therefore encourage users who haven't yet migrated to V2, to do so.
The following commands are removed
jfrog rt release-bundle-create jfrog rt release-bundle-delete jfrog rt release-bundle-distribute jfrog rt release-bundle-sign jfrog rt release-bundle-update
and replaced with the following commands respectively
jfrog ds release-bundle-create jfrog ds release-bundle-delete jfrog ds release-bundle-distribute jfrog ds release-bundle-sign jfrog ds release-bundle-update
To download the executable, please visit the JFrog CLI Download Site.
You can also download the sources from the JFrog CLI Project on GitHub where you will also find instructions on how to build JFrog CLI.
The legacy name of JFrog CLI's executable is jfrog. In an effort to make the CLI usage easier and more convenient, we recently exposed a series of new installers, which install JFrog CLI with the new jf executable name. For backward compatibility, the old installers will remain available. We recommend however migrating to the newer jf executable name.
The following installers are available for JFrog CLI v2. These installers make JFrog CLI available through the jf executable.
wget -qO - https://releases.jfrog.io/artifactory/jfrog-gpg-public/jfrog_public_gpg.key | sudo apt-key add - echo "deb https://releases.jfrog.io/artifactory/jfrog-debs xenial contrib" | sudo tee -a /etc/apt/sources.list; apt update; apt install -y jfrog-cli-v2-jf;
echo "[jfrog-cli]" > jfrog-cli.repo; echo "name=jfrog-cli" >> jfrog-cli.repo; echo "baseurl=https://releases.jfrog.io/artifactory/jfrog-rpms" >> jfrog-cli.repo; echo "enabled=1" >> jfrog-cli.repo; rpm --import https://releases.jfrog.io/artifactory/jfrog-gpg-public/jfrog_public_gpg.key sudo mv jfrog-cli.repo /etc/yum.repos.d/; yum install -y jfrog-cli-v2-jf;
brew install jfrog-cli
curl -fL https://install-cli.jfrog.io | sh
curl -fL https://getcli.jfrog.io/v2-jf | sh
npm install -g jfrog-cli-v2-jf
Slim: docker run releases-docker.jfrog.io/jfrog/jfrog-cli-v2-jf jf -v Full: docker run releases-docker.jfrog.io/jfrog/jfrog-cli-full-v2-jf jf -v
powershell "Start-Process -Wait -Verb RunAs powershell '-NoProfile iwr https://releases.jfrog.io/artifactory/jfrog-cli/v2-jf/[RELEASE]/jfrog-cli-windows-amd64/jf.exe -OutFile $env:SYSTEMROOT\system32\jf.exe'"
choco install jfrog-cli-v2-jf
The following installers are available for JFrog CLI v2. These installers make JFrog CLI available through the jfrog executable.
wget -qO - https://releases.jfrog.io/artifactory/jfrog-gpg-public/jfrog_public_gpg.key | sudo apt-key add - echo "deb https://releases.jfrog.io/artifactory/jfrog-debs xenial contrib" | sudo tee -a /etc/apt/sources.list; apt update; apt install -y jfrog-cli-v2;
echo "[jfrog-cli]" > jfrog-cli.repo; echo "name=jfrog-cli" >> jfrog-cli.repo; echo "baseurl=https://releases.jfrog.io/artifactory/jfrog-rpms" >> jfrog-cli.repo; echo "enabled=1" >> jfrog-cli.repo; rpm --import https://releases.jfrog.io/artifactory/jfrog-gpg-public/jfrog_public_gpg.key sudo mv jfrog-cli.repo /etc/yum.repos.d/; yum install -y jfrog-cli-v2;
brew install jfrog-cli
curl -fL https://getcli.jfrog.io/v2 | sh
npm install -g jfrog-cli-v2
Slim: docker run releases-docker.jfrog.io/jfrog/jfrog-cli-v2 jfrog -v Full: docker run releases-docker.jfrog.io/jfrog/jfrog-cli-full-v2 jfrog -v
choco install jfrog-cli
The following installations are available for JFrog CLI v1. These installers make JFrog CLI available through the jfrog executable.
wget -qO - https://releases.jfrog.io/artifactory/jfrog-gpg-public/jfrog_public_gpg.key | sudo apt-key add - echo "deb https://releases.jfrog.io/artifactory/jfrog-debs xenial contrib" | sudo tee -a /etc/apt/sources.list; apt update; apt install -y jfrog-cli;
echo "[jfrog-cli]" > jfrog-cli.repo; echo "name=jfrog-cli" >> jfrog-cli.repo; echo "baseurl=https://releases.jfrog.io/artifactory/jfrog-rpms" >> jfrog-cli.repo; echo "enabled=1" >> jfrog-cli.repo; rpm --import https://releases.jfrog.io/artifactory/jfrog-gpg-public/jfrog_public_gpg.key sudo mv jfrog-cli.repo /etc/yum.repos.d/; yum install -y jfrog-cli;
curl -fL https://getcli.jfrog.io | sh
npm install -g jfrog-cli-go
Slim: docker run releases-docker.jfrog.io/jfrog/jfrog-cli jfrog -v Full: docker run releases-docker.jfrog.io/jfrog/jfrog-cli-full jfrog -v
GO111MODULE=on go get github.com/jfrog/jfrog-cli; if [ -z "$GOPATH" ] then binPath="$HOME/go/bin"; else binPath="$GOPATH/bin"; fi; mv "$binPath/jfrog-cli" "$binPath/jfrog"; echo "$($binPath/jfrog -v) is installed at $binPath";
JFrog CLI runs on any modern OS that fully supports the Go programming language.
To use the CLI, install it on your local machine, or download its executable, place it anywhere in your file system and add its location to your PATH
environment variable.
The jf options command displays all the supported environment variables.
JFrog CLI makes use of the following environment variables:
Variable Name | Description |
JFROG_CLI_LOG_LEVEL | [Default: INFO] This variable determines the log level of the JFrog CLI. |
JFROG_CLI_LOG_TIMESTAMP | [Default: TIME] Controls the log messages timestamp format. Possible values are: TIME, DATE_AND_TIME, and OFF. |
JFROG_CLI_HOME_DIR | [Default: ~/.jfrog] Defines the JFrog CLI home directory. |
JFROG_CLI_TEMP_DIR | [Default: The operating system's temp directory] Defines the temp directory used by JFrog CLI. |
JFROG_CLI_PLUGINS_SERVER | [Default: Official JFrog CLI Plugins registry] Configured Artifactory server ID from which to download JFrog CLI Plugins. |
JFROG_CLI_PLUGINS_REPO | [Default: 'jfrog-cli-plugins'] Can be optionally used with the JFROG_CLI_PLUGINS_SERVER environment variable. Determines the name of the local repository to use. |
CI | [Default: false] If true, disables interactive prompts and progress bar. |
The config add and config edit commands are used to add and edit JFrog Platform server configuration, stored in JFrog CLI's configuration storage. These configured servers can be used by the other commands. The configured servers' details can be overridden per command by passing in alternative values for the URL and login credentials. The values configured are saved in file under the JFrog CLI home directory.
Command name | config add / config edit |
Abbreviation | c add / c edit |
Command options | |
--access-token | [Optional] Access token. |
--artifactory-url | [Optional] Artifactory URL. |
--basic-auth-only | [Default: false] Used for Artifactory authentication. Set to true to disable replacing username and password/API key with automatically created access token that's refreshed hourly. Username and password/API key will still be used with commands which use external tools or the JFrog Distribution service. Can only be passed along with username and password/API key options. |
--client-cert-key-path | [Optional] Private key file for the client certificate in PEM format. |
--client-cert-path | [Optional] Client certificate file in PEM format. |
--dist-url | [Optional] Distribution URL. |
--enc-password | [Default: true] If true, the configured password will be encrypted using Artifactory's encryption API before being stored. If false, the configured password will not be encrypted. |
--insecure-tls | Default: false] Set to true to skip TLS certificates verification, while encrypting the Artifactory password during the config process. |
--interactive | [Default: true, unless $CI is true] Set to false if you do not want the config command to be interactive. |
--mission-control-url | [Optional] Mission Control URL. |
--password | [Optional] JFrog Platform password. |
--pipelines-url | [Optional] Pipelines URL. |
--ssh-key-path | [Optional] For authentication with Artifactory. SSH key file path. |
--url | [Optional] JFrog platform URL. |
--user | [Optional] JFrog Platform username. |
--xray-url | [Optional] Xray URL. |
--overwrite | [Available for config add only] [Default: false] Overwrites the instance configuration if an instance with the same ID already exists. |
Command arguments | |
server ID | A unique ID for the server configuration. |
The config remove command is used to remove JFrog Platform server configuration, stored in JFrog CLI's configuration storage.
Command name | config remove |
Abbreviation | c rm |
Command options | |
--quiet | [Default: $CI] Set to true to skip the delete confirmation message. |
Command arguments | |
server ID | The server ID to remove. If no argument is sent, all configured servers are removed. |
The config show command shows the stored configuration. You may show a specific server's configuration by sending its ID as an argument to the command.
Command name | config show |
Abbreviation | c s |
Command arguments | |
server ID | The ID of the server to show. If no argument is sent, all configured servers are shown. |
The config use command sets a configured server as default. The following commands will use this server.
Command name | config use |
Command arguments | |
server ID | The ID of the server to set as default. |
The config export command generates a token, which stores the server configuration. This token can be used by the config import command, to import the configuration stored in the token, and save it in JFrog CLI's configuration storage.
Command name | config export |
Abbreviation | c ex |
Command arguments | |
server ID | The ID of the server to export |
Command name | config import |
Abbreviation | c im |
Command arguments | |
server token | The token to import |
The ci-setup command allows setting up a basic CI pipeline with the JFrog Platform, while automatically configuring the JFrog Platform to serve the pipeline. It is an interactive command, which prompts you with a series for questions, such as your source control details, your build tool, build command and your CI provider. The command then uses this information to do following:
You can use the generated CI pipeline as a working starting point and then expand it as needed.
The command currently supports the following package managers:
and the following CI providers:
Usage:
jf ci-setup
JFrog CLI supports using an HTTP/S proxy. All you need to do is set HTTP_PROXY or HTTPS_PROXY environment variable with the proxy URL.
HTTP_PROXY, HTTPS_PROXY and NO_PROXY are the industry standards for proxy usages.
Variable Name | Description |
HTTP_PROXY | Determines a URL to an HTTP proxy. |
HTTPS_PROXY | Determines a URL to an HTTPS proxy. |
NO_PROXY | Use this variable to bypass the proxy to IP addresses, subnets or domains. This may contain a comma-separated list of hostnames or IPs without protocols and ports. A typical usage may be to set this variable to Artifactory’s IP address. |
If you're using JFrog CLI from a bash, zsh, or fish shells, you can install JFrog CLI's auto-completion scripts.
Install JFrog CLI with Homebrew?
If you're installing JFrog CLI using Homebrew, the bash, zsh, or fish auto-complete scripts are automatically installed by Homebrew. Please make sure that your .bash_profile or .zshrc are configured as described in the Homebrew Shell Completion documentation.
Using Oh My Zsh?
With your favourite text editor, open $HOME/.zshrc and add ‘jfrog’ to the plugin list.
For example:
plugins=(git mvn npm sdk jfrog)
To install auto-completion for bash, run the following command and follow the instructions to complete the installation:
jf completion bash --install
To install auto-completion for zsh, run the following command and follow the instructions to complete the installation:
jf completion zsh --install
To install auto-completion for fish, run the following command:
jf completion fish --install
Since version 1.37.0, JFrog CLI supports encrypting the sensitive data stored in JFrog CLI's config. To enable encryption, follow these steps.
Create a file named security.yaml
under ~/.jfrog/
security
.
If you modified the default JFrog CLI home directory by setting JFROG_CLI_HOME_DIR environment variable, then the security/security.yaml
file should br created under the configured home directory.
Add the master key you generated to security.yaml. The file content should be:
version: 1 masterKey: "<your master key>"
The configuration will be encrypted the next time JFrog CLI attempts to access the config.
When upgrading JFrog CLI from a version prior to 1.37.0 to version 1.37.0 or above, JFrog CLI automatically makes changes to the content of the ~/.jfrog
directory, to support the new functionality introduced in version 1.37.0. Before making these changes, the content of the ~/.jfrog
directory is backed up inside the ~/.jfrog/backup
directory. Therefore, after enabling sensitive data encryption, it is recommended to remove the backup
directory, to ensure no sensitive data is left unencrypted.
JFrog CLI Plugins allow enhancing the functionality of JFrog CLI to meet the specific user and organization needs. The source code of a plugin is maintained as an open source Go project on GitHub. All public plugins are registered in JFrog CLI's Plugins Registry. We encourage you, as developers, to create plugins and share them publicly with the rest of the community. When a plugin is included in the registry, it becomes publicly available and can be installed using JFrog CLI. Read the JFrog CLI Plugins Developer Guide if you wish to create and publish your own plugins.
A plugin which is included JFrog CLI's Plugins Registry can be installed using the following command.
$ jf plugin install the-plugin-name
This command will install the plugin from the official public registry by default. You can also install a plugin from a private JFrog CLI Plugin registry, as described in the Private Plugins Registries section.
In addition to the public official JFrog CLI Plugins Registry, JFrog CLI supports publishing and installing plugins to and from private JFrog CLI Plugins Registries. A private registry can be hosted on any Artifactory server. It uses a local generic Artifactory repository for storing the plugins.
To create your own private plugins registry, follow these steps.
The jf plugin install command will now install plugins stored in your private registry.
To publish a plugin to the private registry, run the following command, while inside the root of the plugin's sources directory. This command will build the sources of the plugin for all the supported operating systems. All binaries will be uploaded to the configured registry.
jf plugin publish the-plugin-name the-plugin-version
Release notes for JFrog CLI v2
Release notes for the legacy releases of JFrog CLI