Install JFrog CLI Plugins

Install or upgrade JFrog CLI plugins from the JFrog CLI Plugins Registry or a custom registry.

Install or upgrade a JFrog CLI plugin from the JFrog CLI Plugins Registry.

Synopsis

jf plugin install <PLUGIN_NAME_AND_VERSION> [options]

Aliases: plugin i

Arguments

The following table lists jf plugin install arguments.

ArgumentRequiredDescription
<PLUGIN_NAME_AND_VERSION>YesPlugin name and version. Use plugin@version format (for example, [email protected] or [email protected]). The version string must match how it is published in the registry. Omit the version to download the latest.

Options

The following table lists jf plugin install options.

FlagShortDefaultDescription
--formatOutput format. Available from JFrog CLI 2.105.0. Only json is supported (table is not accepted). With --format json the command emits {"status_code":N,"message":"..."}. Passing --format with no value after the plugin name returns [Error] only the following output formats are supported: json. The same message appears for an unsupported value (for example, --format=table).

Environment Variables

The following table lists environment variables for jf plugin install. For the complete list of JFrog CLI environment variables, see Environment Variables.

VariableDefaultDescription
JFROG_CLI_PLUGINS_SERVEROfficial JFrog CLI Plugins RegistryConfigured JFrog Artifactory server identifier from which to download plugins
JFROG_CLI_PLUGINS_REPOjfrog-cli-pluginsLocal repository name. Use with JFROG_CLI_PLUGINS_SERVER to download from a custom source

Examples

📘

Note

For plugin names and available versions before you run the install command, see the JFrog CLI Plugins Registry.

Show Help

To show install command help:

  • Run the following command.

    jf plugin install --help

Install Latest Version

To install the latest version of a plugin:

  • Run:

    jf plugin install <PLUGIN_NAME>

    Where:

    • <PLUGIN_NAME>: Name of the plugin in the registry

    For example:

    jf plugin install rt-fs

Expected output:

[Info] Downloading: rt-fs
[Info] Downloading: rt-fs
[Info] Plugin downloaded successfully.
📘

Note

The Downloading log line appears twice. This behavior is expected from JFrog CLI. The success message does not include the installed version number. To confirm which version was installed, run the plugin with --version.

jf rt-fs --version

Install Specific Version

❗️

Warning

If the plugin is already installed at any version, uninstall it before you install a specific version. Installing over an existing plugin can corrupt the installation and delete the plugin directory. For the safe procedure, see Upgrading or switching versions.

To install a specific version of a plugin:

  • Run:

    jf plugin install <PLUGIN_NAME>@<VERSION>

    Where:

    • <PLUGIN_NAME>: Plugin name
    • <VERSION>: Version string as published (for example, v1.1.5 or 1.0.0)

    For example:

    jf plugin install [email protected]

Expected output:

[Info] Downloading: rt-fs
[Info] Downloading: rt-fs
[Info] Plugin downloaded successfully.
📘

Note

The Downloading log line appears twice. This behavior is expected from JFrog CLI. The success message does not include the version number. To confirm the installed version, run the plugin with --version.

To verify the installation:

  • List the plugin directory.

    ls ~/.jfrog/plugins/

Upgrading or Switching Versions

To change the installed version of a plugin:

  1. Uninstall the existing plugin.

  2. Install the target version:

    jf plugin uninstall <PLUGIN_NAME>
    jf plugin install <PLUGIN_NAME>@<VERSION>

    Where:

    • <PLUGIN_NAME>: Plugin name
    • <VERSION>: Desired version as published in the registry

    For example:

    jf plugin uninstall rt-fs
    jf plugin install [email protected]
📘

Note

Installing a different version over an existing plugin causes JFrog CLI to kill the running plugin binary during a startup signature check. This leaves the install in a broken state, deletes the plugin directory, and returns a chmod ... no such file or directory error. Uninstalling first avoids this problem.

Install from Custom Registry

To install a plugin from a custom JFrog Artifactory registry:

  • Set the server and optional repository, then install:

    export JFROG_CLI_PLUGINS_SERVER=<SERVER_ID>
    export JFROG_CLI_PLUGINS_REPO=<REPOSITORY_NAME>
    jf plugin install <PLUGIN_NAME>

    Where:

    • <SERVER_ID>: JFrog CLI server identifier that points at your JFrog Artifactory instance. See Add a Server Configuration to configure one.
    • <REPOSITORY_NAME>: Local generic repository name on that server. Set this only if you are not using the default jfrog-cli-plugins repository.
    • <PLUGIN_NAME>: Plugin name in that registry.

    For example:

    export JFROG_CLI_PLUGINS_SERVER=my-artifactory
    export JFROG_CLI_PLUGINS_REPO=jfrog-cli-plugins
    jf plugin install my-internal-plugin

When to Use

Use jf plugin install to extend JFrog CLI with community or custom plugins. Plugins add new commands that are not part of the core CLI. For available plugins, see the JFrog CLI Plugins Registry. To create your own, see Publish JFrog CLI Plugins to a Registry.

Important Notes

  • Version format. Use plugin-name@version to install a specific version. The version must match the registry (often v-prefixed, for example [email protected]. The CLI also accepts forms like [email protected], as in built-in help). Omit the version to install the latest.
  • Custom registry. Set JFROG_CLI_PLUGINS_SERVER and JFROG_CLI_PLUGINS_REPO to download plugins from your own JFrog Artifactory instance. This helps in air-gapped environments or when you use enterprise-approved plugin sets.
  • Install location. Plugins are installed in ~/.jfrog/plugins/, or in $JFROG_CLI_HOME_DIR/plugins/ when you set that variable.
  • Upgrades. Always uninstall the existing version before you install a different one. Running jf plugin install directly over an existing plugin can corrupt and delete the installation. For more information, see Upgrading or Switching Versions.
  • Failed installs. If installation fails, any partially downloaded files are cleaned up automatically. Run the install command again to retry.
  • macOS on Apple Silicon and Intel. Plugin binaries must be notarized by Apple to run on macOS. If a plugin is not notarized, macOS Gatekeeper blocks execution and the install fails. Contact the plugin author if you encounter a security or permission error after a successful download. As a workaround, you can clear the quarantine flag manually with xattr -d com.apple.quarantine ~/.jfrog/plugins/<PLUGIN_NAME>/bin/<PLUGIN_NAME>.

Troubleshooting

Error: 404 when installing a plugin

Cause: The plugin name is incorrect, or the specified version does not exist in the registry.

To resolve a 404 when installing:

  1. Verify the exact plugin name in the JFrog CLI Plugins Registry

  2. If specifying a version, ensure it exactly matches the published version string for that plugin

  3. Try installing without a version to get the latest:

    jf plugin install <PLUGIN_NAME>

    Where:

    • <PLUGIN_NAME>: Registry name of the plugin

Error: chmod ... no such file or directory on macOS

Cause: macOS Gatekeeper is preventing the downloaded plugin binary from being set as executable. The binary exists on disk but the OS security layer blocks the operation.

To recover on macOS:

  1. Manually clear the quarantine attribute and set permissions:

    xattr -d com.apple.quarantine ~/.jfrog/plugins/<PLUGIN_NAME>/bin/<PLUGIN_NAME>
    chmod +x ~/.jfrog/plugins/<PLUGIN_NAME>/bin/<PLUGIN_NAME>

    Where:

    • <PLUGIN_NAME>: Plugin name

    For example:

    xattr -d com.apple.quarantine ~/.jfrog/plugins/rt-fs/bin/rt-fs
    chmod +x ~/.jfrog/plugins/rt-fs/bin/rt-fs
  2. If the plugin directory was deleted by the failed install, run jf plugin install <PLUGIN_NAME> again and immediately apply the preceding fix before the CLI cleans up.

  3. Contact the plugin author to request that they notarize their macOS binaries.

Startup [Error] messages appear before every command

Cause: A previously installed plugin is corrupt, incompatible with the current JFrog CLI version, or blocked by the operating system.

To remove a broken plugin:

  1. Uninstall and reinstall:

    jf plugin uninstall <PLUGIN_NAME>
    jf plugin install <PLUGIN_NAME>

    Where:

    • <PLUGIN_NAME>: Plugin to replace
  2. If the plugin directory no longer appears under ~/.jfrog/plugins/ but errors persist, confirm no stale plugin directory remains under ~/.jfrog/plugins/<PLUGIN_NAME>/. ~/.jfrog/plugins/plugins.yml is a schema-version marker file (for example {"version":1}). It does not list individual installed plugins, so it is not useful for finding stale entries.

    ls ~/.jfrog/plugins/

Frequently Asked Questions

This section provides answers to frequently asked questions.

plusFAQs
Q: How do I install the latest version of a JFrog CLI plugin?

A: Run jf plugin install <PLUGIN_NAME>, omitting the version. See Install Latest Version for the full example.

Q: What happens if I install a specific version over an already-installed plugin?

A: Installing over an existing plugin can corrupt the installation and delete the plugin directory. Uninstall the existing version first. See Upgrading or Switching Versions.

Q: What is the difference between installing from the public registry and a custom registry?

A: The public registry is used by default. To install from your own JFrog Artifactory instance instead, set JFROG_CLI_PLUGINS_SERVER and, optionally, JFROG_CLI_PLUGINS_REPO. See Install from Custom Registry.

Q: Why does the install fail with a chmod error on macOS?

A: macOS Gatekeeper blocks execution of a plugin binary that Apple hasn't notarized. See the Troubleshooting section for the recovery steps.

Related Topics


What’s Next

To create your own plugin, see how to publish a plugin to your registry.

Did this page help you?