---
updatedAt: 2026-09-22T06:00:58.000Z
agentTools:
  siteIndex: https://docs.jfrog.com/llms.txt
  projectIndex: https://docs.jfrog.com/artifactory/llms.txt
---

# Binary Management with Artifactory

Automate binary uploads, downloads, and build-info tracking in JFrog Artifactory with JFrog CLI.

<HTMLBlock>{`
<style>
/* =========================================
   Blue title banner (Get Started / installation hero)
   ========================================= */
.rm-Guides {
  --hero-max-width: 1200px;
  --hero-gutter: 30px;
}

header#content-head {
  background: linear-gradient(
    101.64deg,
    #0C1D37 0%,
    #0C1D37 42%,
    #1B2F4E 70%,
    #2A4061 92%
  );
  color: #fff;
  padding: 0 !important;
  border-bottom: 1px solid var(--color-border-default);
  margin: 0 0 28px 0;
}

header#content-head .row {
  max-width: var(--hero-max-width);
  margin: 0 auto;
  padding: 60px var(--hero-gutter) 70px var(--hero-gutter);
}

header#content-head .col-xs-9 {
  width: 100%;
}

header#content-head h1 {
  color: #fff;
  margin: 12px 0 14px 0;
  font-weight: 700;
  line-height: 1.15;
}

header#content-head .excerpt,
header#content-head .rm-Markdown,
header#content-head .markdown-body,
header#content-head p {
  color: #D2DFED;
  margin: 0;
  font-size: 18px;
  line-height: 1.5;
  max-width: 920px;
}

header#content-head .rm-Breadcrumb {
  display: none;
}

@media (max-width: 768px) {
  header#content-head .row {
    padding: 40px 20px;
  }

  header#content-head .excerpt,
  header#content-head p {
    font-size: 16px;
  }
}

@media (min-width: 768px) {
  .App .rm-Guides .rm-Article {
    padding: 0;
  }
}

.rm-Guides .rm-Article {
  margin-left: 0;
  margin-right: 0;
  max-width: 100%;
}

.rm-Guides #content-container {
  max-width: var(--hero-max-width);
  margin: 0 auto;
  padding: 0 var(--hero-gutter);
}

/* =========================================
   JFrog green card tiles
   ========================================= */
.green-shadow-cards .Card.Card_card {
  border: 1px solid rgba(64, 190, 70, 0.35) !important;
  box-shadow: 0 4px 16px rgba(64, 190, 70, 0.22) !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}
.green-shadow-cards .Card.Card_card:hover {
  border-color: #40be46 !important;
  box-shadow: 0 8px 24px rgba(64, 190, 70, 0.32) !important;
  transform: translateY(-2px);
}
.green-shadow-cards .Card-icon {
  color: #40be46 !important;
}
</style>
`}</HTMLBlock>

JFrog CLI is a **lightweight, intelligent client** that streamlines automation across JFrog products. Use it with JFrog Artifactory to manage binaries, run build tools, and automate repository workflows from your terminal or CI. Start with setup, then pick the task you need.

<Callout icon="📘" theme="info">
**Note**

You need access to the JFrog Platform. Use a [JFrog SaaS account](https://jfrog.com/start-free/) or a self-managed Artifactory installation. Complete the setup steps once, then use the Artifactory topics on this page.
</Callout>

## Before You Begin

Do these once. Then use the Artifactory CLI topics for your commands.

<div class="green-shadow-cards">
  <Cards columns={3}>
    <Card title="Install the CLI" href="/integrations/docs/download-and-install-the-jfrog-cli" icon="fa-solid fa-download">
      Get `jf` on your machine, then verify it runs in your terminal
    </Card>

    <Card title="Sign in" href="/integrations/docs/authenticating-via-the-cli" icon="fa-solid fa-key">
      Connect the CLI to your JFrog Platform so commands can reach Artifactory
    </Card>

    <Card title="Add your server" href="/integrations/docs/configuring-the-cli" icon="fa-solid fa-gear">
      Run `jf config add` to save your Artifactory URL and switch between servers
    </Card>
  </Cards>
</div>

<Callout icon="📘" theme="info">
  **Note**

  For Artifactory-specific authentication methods such as RSA, mTLS, and custom CA certificates, see [Artifactory Authentication](/artifactory/docs/authentication).
</Callout>

***

## What Do You Want to Do?

Choose a task. Each tile opens the Artifactory CLI guide for that job.

<div class="green-shadow-cards">
  <Cards columns={2}>
    <Card title="Upload and download files" href="/artifactory/docs/generic-files" icon="fa-solid fa-file">
      Use `jf rt` to move, copy, search, and manage generic artifacts
    </Card>

    <Card title="Use your build tool" href="/artifactory/docs/build-tool-commands" icon="fa-solid fa-wrench">
      Resolve and publish with Maven, Gradle, npm, Docker, and more
    </Card>

    <Card title="Track builds" href="/artifactory/docs/build-integration" icon="fa-solid fa-diagram-project">
      Collect Build-Info so you know what went into each build
    </Card>

    <Card title="Manage users and permissions" href="/artifactory/docs/managing-configuration-entities" icon="fa-solid fa-users-gear">
      Create users, groups, and permission targets from the CLI
    </Card>

    <Card title="Manage AI skills and plugins" href="/artifactory/docs/agent-commands" icon="fa-solid fa-robot">
      Publish and install agent skills and plugins in Artifactory
    </Card>

    <Card title="Move content between servers" href="/artifactory/docs/transferring-files-between-artifactory-servers" icon="fa-solid fa-right-left">
      Transfer files and configuration between Artifactory deployments
    </Card>
  </Cards>
</div>

## Common Scenarios

Looking for something more specific? Start here.

<Table align={["left","left","left"]}>
  <thead>
    <tr>
      <th>
        If you need to…
      </th>

      <th>
        Do this
      </th>

      <th>
        Go to
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        Parse `jf rt` output in scripts
      </td>

      <td>
        Use `--format json` or `--format table`
      </td>

      <td>
        [jf rt Output Format](/artifactory/docs/jf-rt-output-format)
      </td>
    </tr>

    <tr>
      <td>
        Keep native package commands
      </td>

      <td>
        Drop the `jf` prefix with Package Alias
      </td>

      <td>
        [Package Alias](/artifactory/docs/jfrog-cli-package-alias)
      </td>
    </tr>

    <tr>
      <td>
        Point a build tool at Artifactory
      </td>

      <td>
        Run the shared native mode setup
      </td>

      <td>
        [Connect a Build Tool to Artifactory](/artifactory/docs/set-up-a-build-tool-with-jfrog-artifactory)
      </td>
    </tr>

    <tr>
      <td>
        Confirm the CLI can reach Artifactory
      </td>

      <td>
        Ping the instance before running commands
      </td>

      <td>
        [Verify Artifactory Accessibility](/artifactory/docs/verifying-artifactory-s-accessibility)
      </td>
    </tr>

    <tr>
      <td>
        Confirm tool versions are supported
      </td>

      <td>
        Check the package manager matrix
      </td>

      <td>
        [Package Manager Compatibility](/artifactory/docs/package-manager-compatibility-matrix)
      </td>
    </tr>
  </tbody>
</Table>

***

## Structured Command Output

JFrog CLI 2.105.0 and later support `--format json` and `--format table` on many `jf rt` commands for script-friendly output. See [jf rt output format](/artifactory/docs/jf-rt-output-format) for supported commands, defaults, and examples.

***

## Advanced Upload and Download Capabilities

### Concurrent Operations

JFrog CLI accelerates automated builds by enabling **concurrent artifact uploads and downloads** using a configurable number of threads (controlled by the `--threads` flag). For large artifacts, you can specify the number of chunks to enable parallel downloads (controlled by the `--split-count` flag).

When you transfer many files of different sizes, combine `--threads` (parallelism across files) with multi-part options (`--min-split`, `--split-count`) so large files are still split while smaller files transfer in parallel. For recommended settings and examples, see [Best Practices for Uploading and Downloading Many Files](/artifactory/docs/generic-files#best-practices-for-uploading-and-downloading-many-files).

**Retries vs resume**: During a single running command, JFrog CLI retries failed HTTP attempts (`--retries`). Multi-part transfers split a large file into chunks for that run. If you stop the process and start the command again, the CLI does **not** continue from a partial chunk. Checksum optimization skips files that already exist complete at the target. For file-transfer between Artifactory instances, `jf rt transfer-files` is the command that stores a checkpoint you can resume. See [Manage Generic Files](/artifactory/docs/generic-files#best-practices-for-uploading-and-downloading-many-files).

### Checksum-Based Optimization

The CLI optimizes both upload and download operations by **skipping artifacts that already exist** at their target location:

* **Upload optimization**: Before uploading, JFrog CLI queries Artifactory using the artifact's checksum. If the artifact already exists in Artifactory's storage, the CLI skips transmission and Artifactory updates only its database as needed.

* **Download optimization**: Downloads automatically skip artifacts whose checksum matches a file already present at the target path — if the local file has changed, it is re-downloaded.

### Flexible Pattern Matching

JFrog CLI provides flexible file collection options for streamlined artifact management:

| Operation    | Supported Patterns                                   |
| ------------ | ---------------------------------------------------- |
| **Upload**   | Wildcard patterns, Regular expressions, ANT patterns |
| **Download** | Wildcard patterns                                    |

***

## Package Manager and Build Tool Integration

JFrog CLI provides **native integration** with popular package managers and build tools, simplifying package management and publishing workflows across your development ecosystem.

**Supported technologies include:**

| Technology    | Command                                                                           |
| ------------- | --------------------------------------------------------------------------------- |
| npm           | [`jf npm`](/artifactory/docs/use-npm-with-jfrog-cli)                              |
| pnpm          | [`jf pnpm`](/artifactory/docs/use-pnpm-with-jfrog-cli)                            |
| Yarn          | [`jf yarn`](/artifactory/docs/jf-yarn)                                            |
| Maven         | [`jf mvn`](/artifactory/docs/jf-mvn)                                              |
| Gradle        | [`jf gradle`](/artifactory/docs/jf-gradle)                                        |
| Docker        | [`jf docker`](/artifactory/docs/jf-docker)                                        |
| Podman        | [`jf rt podman-push` and `jf rt podman-pull`](/artifactory/docs/jf-docker)        |
| Go            | [`jf go`](/artifactory/docs/jf-go)                                                |
| Debian/Ubuntu | [`jf apt` and `jf setup apt`](/artifactory/docs/jf-apt)                           |
| Python pip    | [`jf pip`](/artifactory/docs/jf-pip)                                              |
| Python pipenv | [`jf pipenv`](/artifactory/docs/jf-pipenv)                                        |
| Python poetry | [`jf poetry`](/artifactory/docs/jf-poetry)                                        |
| Python twine  | [`jf twine`](/artifactory/docs/jf-twine)                                          |
| Python uv     | [`jf uv`](/artifactory/docs/jf-uv)                                                |
| NuGet         | [`jf nuget`](/artifactory/docs/jf-nuget)                                          |
| .NET          | [`jf dotnet`](/artifactory/docs/jf-dotnet)                                        |
| Ruby gems     | [`jf setup ruby`, `jf ruby gem`, and `jf ruby bundle`](/artifactory/docs/jf-ruby) |
| Cargo         | [`jf cargo`](/artifactory/docs/jf-cargo)                                          |
| Conan         | [`jf conan`](/artifactory/docs/jf-conan)                                          |
| Terraform     | [`jf terraform`](/artifactory/docs/jf-terraform)                                  |
| Helm          | [`jf helm`](/artifactory/docs/jf-helm)                                            |

For native mode setup used by supported build tools, see [Setting Up a Build Tool with Artifactory](/artifactory/docs/set-up-a-build-tool-with-jfrog-artifactory).

<Callout icon="📘" theme="info">
  **Note**

  JFrog CLI 2.121.0 and later can run native RubyGems and Bundler operations through [`jf ruby`](/artifactory/docs/jf-ruby), provide Artifactory authentication, and collect build-info for supported operations. Use `jf setup ruby` for persistent native configuration. The existing `jf ruby-config` project configuration remains available, but `jf ruby` does not read its `ruby.yaml` file.
</Callout>

***

## Build-Info Support

### Build-Info Overview

Build-Info is a comprehensive metadata **Software Bill of Materials (SBOM)** that captures detailed information about build components. It serves as a vital source of information for traceability and security.

### Key Benefits

Storing Build-Info metadata in Artifactory enables:

* **Traceability** - Track components across your software supply chain
* **Analysis** - Gain insights into build composition and dependencies
* **Security** - Identify vulnerabilities and ensure compliance
* **Quality assurance** - Monitor and improve build quality over time

### Captured Metadata

Build-Info captures critical build data in **JSON format** for access and integration:

* Project module details
* Artifacts and binaries
* Dependencies and transitive dependencies
* Environment variables
* Version history
* Build timestamps and identifiers

For more information, see [Build Integration](/artifactory/docs/build-integration).

<Callout icon="📘" theme="info">
  **Note**

  JFrog CLI is designed to work across the entire JFrog Platform, providing a unified automation interface for DevOps workflows.
</Callout>

***

## Related Topics

Continue in this order when you need the wider CLI docs:

1. [JFrog CLI Quick Start](/integrations/docs/jfrog-cli-quick-start). Install, authenticate, and run a first command end to end.
2. [JFrog CLI](/integrations/docs/jfrog-cli). Use the platform CLI hub for Security, Governance, and more.
3. [JFrog CLI Command Reference](/integrations/docs/jfrog-cli-command-reference). Look up commands and flags by product area.

## Frequently Asked Questions

This section provides answers to frequently asked questions.

<Accordion title="FAQs" icon="plus">
  ##### Q: What Do I Need Before Using JFrog CLI with Artifactory?

  **A:** Install JFrog CLI and run `jf config add` to connect it to your Artifactory instance. See [Before You Begin](#before-you-begin).

  ##### Q: What Is the Difference Between Platform Authentication and Artifactory Authentication?

  **A:** Platform authentication covers tokens, `jf login`, OIDC, and similar methods, and is documented in Integrations. [Artifactory Authentication](/artifactory/docs/authentication) covers RSA, mTLS, and custom CA for Artifactory.

  ##### Q: How Does JFrog CLI Speed Up Uploads and Downloads of Many Files?

  **A:** JFrog CLI runs concurrent uploads and downloads across a configurable number of threads, and can split large artifacts into chunks for parallel transfer. See [Concurrent Operations](#concurrent-operations).

  ##### Q: What Happens If I Upload a File That Already Exists in Artifactory?

  **A:** JFrog CLI checks the artifact's checksum before uploading. If a match already exists in storage, the CLI skips the transfer and only updates the database as needed. See [Checksum-Based Optimization](#checksum-based-optimization).

  ##### Q: What Is the Difference Between Build-Info and a Regular Artifact Upload?

  **A:** An artifact upload transfers a single binary. Build-info is a separate metadata SBOM that records modules, dependencies, environment variables, and timestamps for an entire build. See [Build-Info Overview](#build-info-overview).

  ##### Q: Can JFrog CLI Output Results in JSON for Scripting?

  **A:** Yes. JFrog CLI 2.105.0 and later support `--format json` and `--format table` on many `jf rt` commands. See [Structured Command Output](#structured-command-output).
</Accordion>

<br />