Install JFrog CLI

This procedure installs JFrog CLI V2 on your system using the recommended cURL-based installation method. JFrog CLI is a command-line tool that provides a unified interface for interacting with JFrog Platform services, including Artifactory, Xray, and Distribution.

Prerequisites

Before installing JFrog CLI, ensure you have:

  • A supported operating system: macOS (Intel or Apple Silicon), Linux (x86_64, ARM64), or Windows (x86_64)
  • Internet access to download the binary (or a pre-downloaded binary for air-gapped environments)
  • Shell access (bash, zsh, fish on macOS/Linux; PowerShell or cmd on Windows)

Supported Platforms

OSArchitectureInstall Methods
macOSIntel (x86_64), Apple Silicon (ARM64)Homebrew, cURL, npm, Docker
Linuxx86_64, ARM64Homebrew, Debian, RPM, cURL, npm, Docker
Windowsx86_64Chocolatey, PowerShell, npm, Docker
DockerAny (via container)docker pull

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 user feedback submitted 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. This version includes improved and restructured code, as well as replacing old and deprecated functionality.

Most of the changes included in V2 are breaking changes compared to the V1 releases. JFrog CLI V2 packages these changes to allow migration when you are ready.

New enhancements to JFrog CLI are planned to be introduced as part of V2 only. V1 receives very little development attention nowadays. If you haven't yet migrated to V2, you are encouraged to do so.


Install JFrog CLI

To download the executable, please visit the JFrog CLI Download Site.

You can also download the sources from the JFrog CLI Project on GitHub. There you will also find instructions on how to build JFrog CLI.

The legacy name of JFrog CLI's executable is jfrog. New installers are now available to make 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. The best practice is to migrate to the newer jf executable name.

Note: Homebrew installation provides both jf and jfrog executables pointing to the same binary. You can use either command interchangeably.


JFrog CLI V2 "jf" Installers

The following installers are available for JFrog CLI V2. These installers make JFrog CLI available through the jf executable.

Homebrew (macOS/Linux)

# Install JFrog CLI
brew install jfrog-cli

# Verify installation
jf --version

# Run the intro command
jf intro

Debian

# Create the keyrings directory if it doesn't exist 
sudo mkdir -p /usr/share/keyrings

# Download and save the JFrog GPG key to a keyring file 
curl -fsSL https://releases.jfrog.io/artifactory/api/v2/repositories/jfrog-debs/keyPairs/primary/public | sudo gpg --dearmor -o /usr/share/keyrings/jfrog.gpg 

# Add the JFrog repository to your APT sources with the signed-by option
echo "deb [signed-by=/usr/share/keyrings/jfrog.gpg] https://releases.jfrog.io/artifactory/jfrog-debs focal contrib" | sudo tee /etc/apt/sources.list.d/jfrog.list 

# Update the package list 
sudo apt update

# Install the JFrog CLI 
sudo apt install -y jfrog-cli-v2-jf

# Verify installation
jf --version

# Run the JFrog CLI intro command 
jf intro

RPM (RHEL/CentOS/Fedora)

# Create and configure the JFrog CLI YUM repository
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
echo "gpgcheck=1" >> jfrog-cli.repo

# Import GPG keys for verifying packages
# Note: Two keys are imported for backward compatibility with older versions 
rpm --import https://releases.jfrog.io/artifactory/api/v2/repositories/jfrog-rpms/keyPairs/primary/public
rpm --import https://releases.jfrog.io/artifactory/api/v2/repositories/jfrog-rpms/keyPairs/secondary/public

# Move the repository file to the YUM configuration directory 
sudo mv jfrog-cli.repo /etc/yum.repos.d/

# Install the JFrog CLI 
sudo yum install -y jfrog-cli-v2-jf

# Verify installation
jf --version

# Display an introductory message for JFrog CLI 
jf intro

Install with cUrl (Recommended for CI/CD)

This method downloads and installs JFrog CLI to a system directory. Requires sudo access.

curl -fL https://install-cli.jfrog.io | sh

Note: This script attempts to install to /usr/local/bin or /usr/bin. You will be prompted for your password if sudo is required.

Alternative - Local Installation (No sudo required):

# Download to current directory
curl -fL https://getcli.jfrog.io/v2-jf | sh

# Make executable and move to your preferred location
chmod +x jf
mv jf ~/bin/  # Or any directory in your PATH

# Verify installation
./jf --version

Download with cUrl

Downloads the jf executable to the current directory.

curl -fL https://getcli.jfrog.io/v2-jf | sh

# Verify the downloaded binary
./jf --version

NPM

Note: If you are using any shim-based version managers (like Volta, nvm, etc.) for a package, it is advised to avoid using npm-based installation; instead, please use other installation options JFrog provides.

npm install -g jfrog-cli-v2-jf

# Verify installation
jf --version

Docker

Prerequisite: Ensure Docker Desktop or Docker daemon is running before executing these commands.

Slim Image (minimal, ~80MB):

docker run releases-docker.jfrog.io/jfrog/jfrog-cli-v2-jf jf -v

Full Image (includes additional tools):

docker run releases-docker.jfrog.io/jfrog/jfrog-cli-full-v2-jf jf -v

Interactive Usage:

# Run with mounted volume for persistent config
docker run -it -v ~/.jfrog:/root/.jfrog releases-docker.jfrog.io/jfrog/jfrog-cli-v2-jf jf --help

Cleanup Docker Images:

docker rmi releases-docker.jfrog.io/jfrog/jfrog-cli-v2-jf
docker rmi releases-docker.jfrog.io/jfrog/jfrog-cli-full-v2-jf

PowerShell (Windows)

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'

Note: Replace [RELEASE] with a specific version number (e.g., 2.88.0) or keep as [RELEASE] for the latest version.


Chocolatey (Windows)

choco install jfrog-cli-v2-jf

JFrog CLI V2 "jfrog" Installers

The following installers are available for JFrog CLI V2. These installers make JFrog CLI available through the jfrog executable.

Homebrew (macOS/Linux)

Note: This is the same formula as the "jf" installer. Both jf and jfrog commands are installed and work identically.

brew install jfrog-cli

# Verify installation
jfrog --version

Debian

# Create the keyrings directory if it doesn't exist 
sudo mkdir -p /usr/share/keyrings

# Download and save the JFrog GPG key to a keyring file 
curl -fsSL https://releases.jfrog.io/artifactory/api/v2/repositories/jfrog-debs/keyPairs/primary/public | sudo gpg --dearmor -o /usr/share/keyrings/jfrog.gpg

# Add the JFrog repository to your APT sources with the signed-by option
echo "deb [signed-by=/usr/share/keyrings/jfrog.gpg] https://releases.jfrog.io/artifactory/jfrog-debs xenial contrib" | sudo tee /etc/apt/sources.list.d/jfrog.list

# Update the package list 
sudo apt update

# Install the JFrog CLI 
sudo apt install -y jfrog-cli-v2

# Verify installation
jfrog --version

RPM (RHEL/CentOS/Fedora)

# Create and configure the JFrog CLI YUM repository
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
echo "gpgcheck=1" >> jfrog-cli.repo

# Import GPG key for verifying packages
rpm --import https://releases.jfrog.io/artifactory/jfrog-gpg-public/jfrog_public_gpg.key

# Move the repository file to the YUM configuration directory 
sudo mv jfrog-cli.repo /etc/yum.repos.d/

# Install the JFrog CLI 
sudo yum install -y jfrog-cli-v2

# Verify installation
jfrog --version

Download with cUrl

curl -fL https://getcli.jfrog.io/v2 | sh

# Verify the downloaded binary
./jfrog --version

NPM

Note: If you are using any shim-based version managers (like Volta, nvm, etc.) for a package, it is advised to avoid using npm-based installation; instead, please use other installation options JFrog provides.

npm install -g jfrog-cli-v2

# Verify installation
jfrog --version

Docker

Prerequisite: Ensure Docker Desktop or Docker daemon is running before executing these commands.

Slim Image:

docker run releases-docker.jfrog.io/jfrog/jfrog-cli-v2 jfrog -v

Full Image:

docker run releases-docker.jfrog.io/jfrog/jfrog-cli-full-v2 jfrog -v

Cleanup Docker Images:

docker rmi releases-docker.jfrog.io/jfrog/jfrog-cli-v2
docker rmi releases-docker.jfrog.io/jfrog/jfrog-cli-full-v2

Chocolatey (Windows)

choco install jfrog-cli

List of Changes in JFrog CLI V2

  • The default value of the --flat option is now set to false for the jfrog rt upload command.

  • The deprecated syntax of the jfrog rt mvn command is no longer supported. To use the new syntax, the project needs to be first configured using the jfrog rt mvnc command.

  • The deprecated syntax of the jfrog rt gradle command is no longer supported. To use the new syntax, the project needs to be first configured using the jfrog rt gradlec command.

  • The deprecated syntax of the jfrog rt npm and jfrog rt npm-ci commands is no longer supported. To use the new syntax, the project needs to be first configured using the jfrog rt npmc command.

  • The deprecated syntax of the jfrog rt go command is no longer supported. To use the new syntax, the project needs to be first configured using the jfrog rt go-config command.

  • The deprecated syntax of the jfrog rt nuget command is no longer supported. To use the new syntax, the project needs to be first configured using the jfrog rt nugetc command.

  • All Bintray commands are removed.

  • The jfrog rt config command is removed and replaced by the jfrog config add command.

  • The jfrog rt use command is removed and replaced with the jfrog config use.

  • The --props command option and props file spec property for the jfrog rt upload command are removed, and replaced with the --target-props command option and targetProps file spec property respectively.

  • 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
  • The jfrog rt go-publish command now only supports Artifactory version 6.10.0 and above. Also, the command no longer accepts the target repository as an argument. The target repository should be pre-configured using the jfrog rt go-config command.

  • The jfrog rt go command no longer falls back to the VCS when dependencies are not found in Artifactory.

  • The --deps, --publish-deps, --no-registry and --self options of the jfrog rt go-publish command are now removed.

  • The --apiKey option is now removed. The API key should now be passed as the value of the --password option.

  • The --exclude-patterns option is now removed, and replaced with the --exclusions option. The same is true for the excludePatterns file spec property, which is replaced with the exclusions property.

  • The JFROG_CLI_JCENTER_REMOTE_SERVER and JFROG_CLI_JCENTER_REMOTE_REPO environment variables are now removed and replaced with the JFROG_CLI_EXTRACTORS_REMOTE environment variable.

  • The JFROG_CLI_HOME environment variable is now removed and replaced with the JFROG_CLI_HOME_DIR environment variable.

  • The JFROG_CLI_OFFER_CONFIG environment variable is now removed and replaced with the CI environment variable. Setting CI to true disables all prompts.

  • The directory structure is now changed when the jfrog rt download command is used with placeholders and --flat=false (--flat=false is now the default). When placeholders are used, the value of the --flat option is ignored.

  • When the jfrog rt upload command now uploads symlinks to Artifactory, the target file referenced by the symlink is uploaded to Artifactory with the symlink name. If the --symlink option is used, the symlink itself (not the referenced file) is uploaded, with the referenced file as a property attached to the file.


JFrog CLI v1 (Legacy) Installers

Warning: JFrog CLI v1 is deprecated and receives minimal maintenance. We strongly recommend using JFrog CLI v2.

The following installations are available for JFrog CLI v1. These installers make JFrog CLI available through the jfrog executable.

Debian

# Create the keyrings directory if it doesn't exist 
sudo mkdir -p /usr/share/keyrings

# Download and save the JFrog GPG key to a keyring file 
curl -fsSL https://releases.jfrog.io/artifactory/api/v2/repositories/jfrog-debs/keyPairs/primary/public | sudo gpg --dearmor -o /usr/share/keyrings/jfrog.gpg

# Add the JFrog repository to your APT sources with the signed-by option
echo "deb [signed-by=/usr/share/keyrings/jfrog.gpg] https://releases.jfrog.io/artifactory/jfrog-debs xenial contrib" | sudo tee /etc/apt/sources.list.d/jfrog.list

# Update the package list 
sudo apt update

# Install the JFrog CLI 
sudo apt install -y jfrog-cli

# Verify installation
jfrog --version

RPM (RHEL/CentOS/Fedora)

# Create and configure the JFrog CLI YUM repository
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
echo "gpgcheck=1" >> jfrog-cli.repo

# Import GPG keys for verifying packages
rpm --import https://releases.jfrog.io/artifactory/api/v2/repositories/jfrog-rpms/keyPairs/primary/public
rpm --import https://releases.jfrog.io/artifactory/api/v2/repositories/jfrog-rpms/keyPairs/secondary/public

# Move the repository file to the YUM configuration directory 
sudo mv jfrog-cli.repo /etc/yum.repos.d/

# Install the JFrog CLI 
sudo yum install -y jfrog-cli

# Verify installation
jfrog --version

Download with cUrl

curl -fL https://getcli.jfrog.io | sh

# Verify the downloaded binary
./jfrog --version

NPM

Note: If you are using any shim-based version managers (like Volta, nvm, etc.) for a package, it is advised to avoid using npm-based installation; instead, please use other installation options JFrog provides.

npm install -g jfrog-cli-go

# Verify installation
jfrog --version

Docker

Prerequisite: Ensure Docker Desktop or Docker daemon is running before executing these commands.

Slim Image:

docker run releases-docker.jfrog.io/jfrog/jfrog-cli jfrog -v

Full Image:

docker run releases-docker.jfrog.io/jfrog/jfrog-cli-full jfrog -v

Cleanup Docker Images:

docker rmi releases-docker.jfrog.io/jfrog/jfrog-cli
docker rmi releases-docker.jfrog.io/jfrog/jfrog-cli-full

Go

Note: This installation method is deprecated. Please use other installation methods.

GO111MODULE=on go install github.com/jfrog/jfrog-cli@latest

# The binary will be installed to $GOPATH/bin or $HOME/go/bin
# Verify installation
jfrog-cli --version

# Optionally rename to 'jfrog'
mv $(go env GOPATH)/bin/jfrog-cli $(go env GOPATH)/bin/jfrog

Verify Installation

After installation, verify JFrog CLI is working correctly:

# Check version
jf -v
# Expected output: jf version 2.x.x

# View available commands
jf --help

# Check environment variables
jf options

# View current server configuration (if any)
jf config show

The jf intro command displays a welcome message with initial setup instructions. If you've already configured a server, this command may not display any output.


If you see command not found, the CLI binary is not in your system PATH. The cURL installer typically places it in /usr/local/bin/. Verify with:

which jf

Linux/macOS:

export PATH=$PATH:/usr/local/bin

Windows (PowerShell):

# Verify installation location
Get-Command jf
# Or add to PATH
$env:PATH += ";C:\path\to\jfrog-cli"

Shell Completion

After installation, enable shell completion for tab-based auto-complete:

# Bash
jf completion bash --install

# Zsh
jf completion zsh --install

# Fish
jf completion fish --install



What’s Next

After successful installation, authenticate your JFrog Platform connection.