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
| OS | Architecture | Install Methods |
|---|---|---|
| macOS | Intel (x86_64), Apple Silicon (ARM64) | Homebrew, cURL, npm, Docker |
| Linux | x86_64, ARM64 | Homebrew, Debian, RPM, cURL, npm, Docker |
| Windows | x86_64 | Chocolatey, PowerShell, npm, Docker |
| Docker | Any (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
jfandjfrogexecutables 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 introDebian
# 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 introRPM (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 introInstall 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 | shNote: This script attempts to install to
/usr/local/binor/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 --versionDownload with cUrl
Downloads the jf executable to the current directory.
curl -fL https://getcli.jfrog.io/v2-jf | sh
# Verify the downloaded binary
./jf --versionNPM
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 --versionDocker
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 -vFull Image (includes additional tools):
docker run releases-docker.jfrog.io/jfrog/jfrog-cli-full-v2-jf jf -vInteractive 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 --helpCleanup Docker Images:
docker rmi releases-docker.jfrog.io/jfrog/jfrog-cli-v2-jf
docker rmi releases-docker.jfrog.io/jfrog/jfrog-cli-full-v2-jfPowerShell (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-jfJFrog 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
jfandjfrogcommands are installed and work identically.
brew install jfrog-cli
# Verify installation
jfrog --versionDebian
# 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 --versionRPM (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 --versionDownload with cUrl
curl -fL https://getcli.jfrog.io/v2 | sh
# Verify the downloaded binary
./jfrog --versionNPM
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 --versionDocker
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 -vFull Image:
docker run releases-docker.jfrog.io/jfrog/jfrog-cli-full-v2 jfrog -vCleanup Docker Images:
docker rmi releases-docker.jfrog.io/jfrog/jfrog-cli-v2
docker rmi releases-docker.jfrog.io/jfrog/jfrog-cli-full-v2Chocolatey (Windows)
choco install jfrog-cliList of Changes in JFrog CLI V2
-
The default value of the
--flatoption is now set tofalsefor thejfrog rt uploadcommand. -
The deprecated syntax of the
jfrog rt mvncommand is no longer supported. To use the new syntax, the project needs to be first configured using thejfrog rt mvnccommand. -
The deprecated syntax of the
jfrog rt gradlecommand is no longer supported. To use the new syntax, the project needs to be first configured using thejfrog rt gradleccommand. -
The deprecated syntax of the
jfrog rt npmandjfrog rt npm-cicommands is no longer supported. To use the new syntax, the project needs to be first configured using thejfrog rt npmccommand. -
The deprecated syntax of the
jfrog rt gocommand is no longer supported. To use the new syntax, the project needs to be first configured using thejfrog rt go-configcommand. -
The deprecated syntax of the
jfrog rt nugetcommand is no longer supported. To use the new syntax, the project needs to be first configured using thejfrog rt nugetccommand. -
All Bintray commands are removed.
-
The
jfrog rt configcommand is removed and replaced by thejfrog config addcommand. -
The
jfrog rt usecommand is removed and replaced with thejfrog config use. -
The
--propscommand option andpropsfile spec property for thejfrog rt uploadcommand are removed, and replaced with the--target-propscommand option andtargetPropsfile spec property respectively. -
The following commands are removed:
jfrog rt release-bundle-createjfrog rt release-bundle-deletejfrog rt release-bundle-distributejfrog rt release-bundle-signjfrog rt release-bundle-update
and replaced with the following commands respectively:
jfrog ds release-bundle-createjfrog ds release-bundle-deletejfrog ds release-bundle-distributejfrog ds release-bundle-signjfrog ds release-bundle-update
-
The
jfrog rt go-publishcommand 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 thejfrog rt go-configcommand. -
The
jfrog rt gocommand no longer falls back to the VCS when dependencies are not found in Artifactory. -
The
--deps,--publish-deps,--no-registryand--selfoptions of thejfrog rt go-publishcommand are now removed. -
The
--apiKeyoption is now removed. The API key should now be passed as the value of the--passwordoption. -
The
--exclude-patternsoption is now removed, and replaced with the--exclusionsoption. The same is true for theexcludePatternsfile spec property, which is replaced with theexclusionsproperty. -
The
JFROG_CLI_JCENTER_REMOTE_SERVERandJFROG_CLI_JCENTER_REMOTE_REPOenvironment variables are now removed and replaced with theJFROG_CLI_EXTRACTORS_REMOTEenvironment variable. -
The
JFROG_CLI_HOMEenvironment variable is now removed and replaced with theJFROG_CLI_HOME_DIRenvironment variable. -
The
JFROG_CLI_OFFER_CONFIGenvironment variable is now removed and replaced with theCIenvironment variable. SettingCItotruedisables all prompts. -
The directory structure is now changed when the
jfrog rt downloadcommand is used with placeholders and--flat=false(--flat=falseis now the default). When placeholders are used, the value of the--flatoption is ignored. -
When the
jfrog rt uploadcommand now uploads symlinks to Artifactory, the target file referenced by the symlink is uploaded to Artifactory with the symlink name. If the--symlinkoption 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 --versionRPM (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 --versionDownload with cUrl
curl -fL https://getcli.jfrog.io | sh
# Verify the downloaded binary
./jfrog --versionNPM
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 --versionDocker
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 -vFull Image:
docker run releases-docker.jfrog.io/jfrog/jfrog-cli-full jfrog -vCleanup Docker Images:
docker rmi releases-docker.jfrog.io/jfrog/jfrog-cli
docker rmi releases-docker.jfrog.io/jfrog/jfrog-cli-fullGo
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/jfrogVerify 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 showThe 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 jfLinux/macOS:
export PATH=$PATH:/usr/local/binWindows (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 --installUpdated about 1 month ago
