Get Started


Overview

Get productive with Fly in 5 minutes. Install the app, connect your repos, and ship your first release.


Get up and running in 5 minutes

  1. Download Fly App — Install on your machine.
  2. Sign up and create your team — Your registry lives at <your-team>.jfrog.io.
  3. Start working with Fly — Ask your coding agent to wire CI in one prompt.
  4. Generate your first release — Every push creates a tracked release.

1. Download Fly App

The Fly App connects your coding agent, your package managers, and your registry. Install it once on your machine.

Download from jfrog.com/fly, or run from your terminal:

macOS

curl -fsSL https://fly.jfrog.ai/download/desktop | bash

Windows

powershell -c "irm https://fly.jfrog.ai/download/desktop | iex"

Grant the permissions when prompted. The app detects your package managers (npm, pip, Docker, Helm, Maven, Gradle, Go, NuGet) and connects your coding agent (Cursor, Copilot, Claude Code, OpenCode) automatically.


2. Sign up and create your team

Sign up to Fly and pick a team name. This becomes your private Fly Registry at <your-team>.jfrog.io, where all your releases, packages, and images live. The first user becomes the team Admin with full permissions.


3. Start working with Fly

Ask your coding agent:

“Start working with Fly”

Your agent asks for access to your GitHub, scans your .github/workflows/*.yml files, and opens a pull request that wires your workflows to Fly:

  • OIDC permissions — your workflows authenticate to Fly without any tokens or secrets.
  • The Fly action step — your package managers (npm, Docker, Maven, Helm, etc.) automatically route through your Fly Registry.
  • Docker and Helm paths — image and chart commands include the Fly Registry path inline. The action exports FLY_REGISTRY_SUBDOMAIN so you can reference it in your docker push and helm push commands.

Here’s what a minimal npm workflow looks like after the PR:

permissions:                              # Required for Fly OIDC authentication
  contents: read
  id-token: write

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: actions/setup-node@v6
        with:
          node-version: '24'
      - uses: jfrog/fly-action@v1          # Setup Fly package managers
      - run: npm install                   # From Fly Registry
      - run: npm publish                   # To Fly Registry

And here’s what a minimal Docker workflow looks like after the PR:

permissions:                              # Required for Fly OIDC authentication
  contents: read
  id-token: write

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: jfrog/fly-action@v1          # Setup Fly package managers
      - run: docker build -t ${{ env.FLY_REGISTRY_SUBDOMAIN }}/docker/my-app:${{ github.sha }} .
        # Base images pulled from Fly Registry
      - run: docker push ${{ env.FLY_REGISTRY_SUBDOMAIN }}/docker/my-app:${{ github.sha }}
        # Push to Fly Registry

See CI for full examples (Go modules, Helm, generic artifacts, distribution).


4. Generate your first release

Review and merge the configuration PR. Every push from then on creates a Fly release linked to the commit, PR, author, and an AI-generated summary. No secrets to manage.

Every release is searchable by content. Ask your coding agent anything:

  • “Show me my latest release”
  • “Find the release that fixed the login bug”
  • “What’s in the release from yesterday?”

You can also browse all your releases at fly.jfrog.ai.


Next steps