NVIDIA NeMo Fabric Installation

View as Markdown

Package Installation Method

The nemo-fabric package installs the NeMo Fabric runtime. Harness adapters can run in that environment or in a separate environment with their harness dependencies.

Supported Python Versions

NeMo Fabric supports Python 3.11 through 3.14. Some integrations and adapters have additional requirements. The Hermes Agent adapter does not support Python 3.14, and the Harbor integration requires Python 3.12 or later.

Choose an Installation

The following table shows a representative subset of package expressions and the components they install. The sections that follow describe the complete installation alternatives. A No entry means that the expression does not install that component; the component can already exist in the environment or be managed separately.

InstallationRuntimeAdapterHarnessNeMo Relay Python Package
nemo-fabricYesNoNoNo
nemo-fabric[relay]YesNoNoYes
nemo-fabric[hermes-agent,relay]YesYesYesYes
nemo-fabric-adapters-claude[harness]NoYesYesNo
nemo-fabric-adapters-claude[full]NoYesYesNo
nemo-fabric-adapters-deepagents[full]NoYesYesYes
nemo-fabric-adapters-hermes[relay]NoYesNoYes
nemo-fabric-adapters-claudeNoYesNoNo

An adapter package’s full extra is scoped to the adapter environment. It installs the supported harness and any Python Relay dependency, but it does not install the NeMo Fabric runtime. For Claude and Codex, full is equivalent to harness because their Relay integration requires an external executable. For LangChain Deep Agents and Hermes Agent, full installs both the harness and the NeMo Relay Python package.

For Claude and Codex, no Python package extra installs the external nemo-relay CLI required by Relay telemetry and Runtime.invoke_stream().

Install the NeMo Fabric Runtime

Install the NeMo Fabric runtime:

$pip install nemo-fabric

The nemo-fabric package installs the matching NeMo Fabric runtime unconditionally.

Install a Complete Runtime and Harness

Use a nemo-fabric harness extra when the runtime, adapter, and harness run in the same Python environment:

$pip install "nemo-fabric[claude]"
$pip install "nemo-fabric[codex]"
$pip install "nemo-fabric[deepagents]"
$pip install "nemo-fabric[hermes-agent]"

Each nemo-fabric harness extra installs the corresponding adapter package with its harness extra. You can combine independent nemo-fabric extras. For example, the following command also installs Harbor and the NeMo Relay Python package:

$pip install "nemo-fabric[claude,harbor,relay]"

The relay extra does not install the external nemo-relay CLI that Claude and Codex require for Relay-enabled runs.

Install an Adapter and Harness Without the Runtime

Use an adapter package’s harness extra when a different environment runs NeMo Fabric:

$pip install "nemo-fabric-adapters-claude[harness]"
$pip install "nemo-fabric-adapters-codex[harness]"
$pip install "nemo-fabric-adapters-deepagents[harness]"
$pip install "nemo-fabric-adapters-hermes[harness]"

This installation mode keeps the runtime dependencies out of the adapter environment. Set ADAPTER_PYTHON in the runtime environment to the adapter environment’s Python interpreter. A Python adapter and its Python harness must use the same interpreter. Use matching NeMo Fabric release versions for the runtime and adapter package unless a different pairing has been explicitly validated.

Add an Adapter to an Existing Harness Environment

Install an adapter package without an extra when the environment already supplies and manages a compatible harness:

$pip install nemo-fabric-adapters-claude
$pip install nemo-fabric-adapters-codex
$pip install nemo-fabric-adapters-deepagents
$pip install nemo-fabric-adapters-hermes

Bare adapter distributions install only adapter-owned dependencies. They do not install the NeMo Fabric runtime or the harness.

If the existing harness and runtime share an environment, install the runtime and bare adapter together. The following example preserves the existing Codex SDK instead of installing the adapter’s supported SDK version:

$pip install nemo-fabric nemo-fabric-adapters-codex

Install NeMo Relay

NeMo Relay integration occurs in two ways:

The required integration depends on the agent harness. Relay-enabled runs with the Claude and Codex adapters require the nemo-relay CLI.

NeMo Relay Python Package

The root relay extra installs a version of the NeMo Relay Python package known to be compatible with the installed version of NeMo Fabric:

$pip install "nemo-fabric[relay]"

LangChain Deep Agents and Hermes Agent import the NeMo Relay Python package directly. Their adapter packages provide relay and full extras:

$pip install "nemo-fabric-adapters-deepagents[relay]"
$pip install "nemo-fabric-adapters-hermes[relay]"
$pip install "nemo-fabric-adapters-deepagents[full]"
$pip install "nemo-fabric-adapters-hermes[full]"

Use relay when the environment already manages the harness. Use full to install the harness and Relay package together. Claude and Codex do not provide a relay extra because their adapters launch the external CLI instead of importing this Python package.

NeMo Relay CLI

Shell installation method (Linux and macOS):

$curl -fsSL https://raw.githubusercontent.com/NVIDIA/NeMo-Relay/main/install.sh | sh

Windows PowerShell installation method:

1irm https://raw.githubusercontent.com/NVIDIA/NeMo-Relay/main/install.ps1 | iex

Cargo installation method (requires cargo-binstall):

$cargo binstall nemo-relay-cli

After installation, ensure nemo-relay is on PATH. When Relay is enabled with FabricConfig.enable_relay(...), the Claude and Codex adapters start and supervise the CLI gateway automatically.

Source Installation Method

Prerequisites:

  • Rust and Cargo
  • Python 3.11 through 3.14
  • uv
  • just 1.50.0+
  1. Create a Python virtual environment and activate it (replace 3.13 with your preferred Python version):
$uv venv -p 3.13 --seed .venv
$source .venv/bin/activate
  1. Build the Rust core and Python libraries.
$just build-all

The above command will install only those dependencies that are strictly necessary for the build. Alternately If you want to install all optional dependencies, you can run:

$uv sync --all-groups --all-extras

Then run the build command with the no_uv=true flag to avoid re-installing the dependencies:

$just no_uv=true build-all