User manual

Camel CLI - Installation Options

Alternative ways to install the Camel CLI — pinning a specific version, offline-safe setups, and running from a container image.

For the standard installation, see Getting Started.

Installing a specific version

Every installation method installs the latest Camel release by default. The latest release can be newer than the current LTS release; if you need an LTS version, for example because a plugin you use does not support the latest release yet, install it explicitly.

With the installer script

The installer script (Linux, macOS and Windows) accepts an exact version, a release line or LTS:

curl -fsSL https://camel.apache.org/install.sh | sh -s -- --version 4.22.2   # exactly 4.22.2
curl -fsSL https://camel.apache.org/install.sh | sh -s -- --version 4.22     # newest 4.22.x
curl -fsSL https://camel.apache.org/install.sh | sh -s -- --version LTS      # newest LTS release

On Windows, download install.ps1 and run it with -Version 4.22.2, -Version 4.22 or -Version LTS. Run camel version to check the installed version.

The value is recorded as a pin: camel self-update never moves an exact version, and moves a release line or LTS pin only to the newest release of that line or the newest LTS release. See Installing the Camel CLI Launcher for details.

With JBang

By default, jbang app install installs the latest Camel release. To pin a specific version (for example 4.22.2):

jbang app install --force --fresh -Dcamel.jbang.version=4.22.2 -Dcamel-kamelets.version=4.22.2 camel@apache/camel

The --force and --fresh flags ensure JBang bypasses its download cache.

From Camel 4.17, Kamelets are optional and downloaded on demand. Set the version with --kamelets-version on camel run, or pre-configure it: camel config set kamelets-version=4.17.0.

Installed CLI version and the Camel version used to run

The installed version is the version of the Camel CLI itself, shown by camel version. With a JBang install, camel run --camel-version=X.Y.Z or camel version set X.Y.Z run integrations with another Camel version without changing the installed CLI. The launcher installed by the installer script does not support --camel-version: install another CLI version instead.

Preventing automatic upgrades

JBang occasionally checks upstream sources and may auto-update the installed CLI. If you need a stable, repeatable installation, use one of the options below.

Option 1: Pin from a local CamelJBang.java

This is the most deterministic approach — best for fully offline environments.

  1. Download CamelJBang.java to your local machine.

  2. Edit the file and set the Camel version you want.

  3. Install from the local file:

    jbang app install CamelJBang.java

The file can be deleted after installation.

Option 2: Pin from a version-tagged catalog

Simpler than Option 1, but still prevents surprise upgrades:

CAMEL_VERSION="4.18.0"
CAMEL_TAG="camel-${CAMEL_VERSION}"
CAMEL_JBANG_CATALOG_URL="https://raw.githubusercontent.com/apache/camel/${CAMEL_TAG}/jbang-catalog.json"

jbang app install --force --fresh \
  -Dcamel.jbang.version="${CAMEL_VERSION}" \
  -Dcamel-kamelets.version="${CAMEL_VERSION}" \
  camel@"${CAMEL_JBANG_CATALOG_URL}"

The catalog URL points to a specific release tag, so JBang will not pull a newer version.

Option 3: Use the Camel Wrapper

Similar to the Maven Wrapper, the Camel Wrapper creates version-pinning scripts in your project directory:

camel wrapper

This creates a .camel/camel-wrapper.properties file and launcher scripts so anyone working on the project uses the same Camel CLI version — no manual install needed.

Pin a specific version:

camel wrapper --camel-version=4.18.0

Option 4: Use the Camel Launcher

The Camel CLI Launcher is a self-contained executable JAR that runs without JBang entirely.

Container image

The Camel CLI is also available as a container image (apache/camel-jbang on Docker Hub), see Container Image.