NVIDIA NeMo Fabric Installation
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; OpenHands and the Harbor integration require Python 3.12 or later.
Supported Platforms
NeMo Fabric supports the following platforms:
- Linux (x86_64 and arm64)
- macOS (arm64)
- Windows (x86_64)
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.
An adapter package’s full extra is scoped to the adapter environment and does
not install the NeMo Fabric runtime. For Claude and Codex, full is equivalent
to harness; both install the supported harness and nemo-relay CLI. For
LangChain Deep Agents and mini-SWE-agent, full installs the harness and NeMo
Relay Python package without the CLI. For Hermes Agent, full installs the
adapter and Relay Python package; Hermes Agent must be installed separately.
Install the NeMo Fabric Runtime
Install the NeMo Fabric runtime:
The nemo-fabric package installs the matching NeMo Fabric runtime
unconditionally.
Install the matching collector when an application uses the default embedded collector for NeMo Relay ATOF streaming:
Applications that set launch_collector=False and use an externally managed
collector do not need this extra.
Inspect Adapter Metadata Without Harness SDKs
The optional nemo-fabric-adapter-catalog package provides release snapshots of bundled Python and TypeScript adapter descriptors and their registered targets, without installing the runtime or harness SDKs:
Look up a descriptor by its exact ID; unknown IDs raise KeyError:
Catalog resources do not register execution runners or change task-side discovery. Install actual adapters and harness dependencies separately, and verify snapshot claims against the task’s descriptor before relying on them. A catalog package version or fingerprint is not runtime-observed provenance.
Install a Complete Runtime and Harness
Use a nemo-fabric harness extra when the runtime, adapter, and harness run in
the same Python environment:
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; the Claude harness extra
supplies the Relay CLI, while relay supplies the Relay Python package:
The NOOA extra supports Python 3.12 and 3.13 only. On another supported Python version, the command can succeed while its environment marker omits the NOOA adapter.
The OpenClaw extra installs its adapter and HTTP client, but not OpenClaw.
Install the openclaw npm package separately before using that adapter.
OpenHands requires Python 3.12 or later. The root extra installs the adapter
but not OpenHands. Install the supported openhands-sdk and openhands-tools
packages separately as described in the
OpenHands adapter guide.
The Claude and Codex harness extras install the nemo-relay CLI required for
Relay-enabled runs. The root relay extra installs only the Relay Python
package for SDK-native integrations.
Install Hermes Agent
Hermes Agent 0.20 and later is no longer installable from PyPI. End users must follow the Hermes Agent installation guide, then install NeMo Fabric and the bare Hermes adapter into the Python environment that runs Hermes Agent:
These packages do not install Hermes Agent. Released Hermes Agent v2026.9.24
requires Relay 0.8.x and supports ordinary runs only with this adapter. Do not
install the adapter’s relay or full extra into that environment.
Relay telemetry and streaming require the merged, unreleased upstream Hermes
revision on Python 3.14. For local development, create its isolated environment
from the repository root:
For a Relay-enabled Hermes environment, install the adapter’s relay extra
alongside nemo-fabric[hermes-agent]; the generic root relay extra does not
include the adapter’s TOML writer dependency.
Install Cline
The Cline adapter requires Node.js 22.19.0 or newer and is distributed through npm. Install the NeMo Fabric runtime with pip, then install the supported Cline SDK and adapter in the Node.js project that owns the NeMo Fabric configuration:
The adapter does not declare or install the Cline SDK as a package dependency. Refer to the Cline adapter guide to configure adapter discovery and supported capabilities.
Install an Adapter and Harness Without the Runtime
Use an adapter package’s harness extra when a different environment runs NeMo
Fabric:
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.
The OpenClaw adapter does not provide harness or full extras. Install
nemo-fabric-adapters-openclaw directly and install the openclaw npm package
separately.
The OpenHands adapter also omits harness and full extras. Install the bare
adapter and the supported OpenHands packages separately.
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:
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:
Install NeMo Relay
NeMo Relay integration occurs in two ways:
The required integration depends on the agent harness. Relay-enabled runs with
the Claude, Codex, and Pi 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:
LangChain Deep Agents, Hermes Agent, mini-SWE-agent, and NOOA import the NeMo
Relay Python package directly. Their adapter packages provide relay and
full extras:
Use relay when the environment already manages the harness. For Deep Agents,
mini-SWE-agent, and NOOA, use full to install the harness and Relay package
together. Hermes Agent’s relay and full extras install Relay but not
Hermes Agent. On supported Python 3.14 platforms, the pinned upstream Hermes
revision requires nemo-relay>=0.10,<0.11, so these extras resolve to Relay
0.10. Claude and Codex do not provide a relay extra because their adapters
launch the external CLI instead of importing this Python package.
Python-backed Relay integrations require nemo-relay>=0.9,<0.11; Relay 0.10
is recommended. NeMo Fabric
does not merge user or workspace plugins.toml files with its runtime-owned
configuration. Remove or relocate a user
plugins.toml or the nearest .nemo-relay/plugins.toml before starting a
Relay-enabled Deep Agents, Hermes Agent, or mini-SWE-agent runtime. System
configuration in /etc/nemo-relay/plugins.toml remains administrator
controlled.
Migrate Relay Observability Configurations to Version 4
NeMo Fabric writes and accepts observability configuration version 4 and
rejects version 3. Relay 0.9.0 and later accept version 4, and Relay 0.10
requires it. Change version = 3 to version = 4 in each observability
component configuration, including RelayObservabilityConfig(version=...) and
relay.components[].config.version. Typed OpenTelemetry endpoints keep the
same shape, and the outer plugin configuration stays version = 1. Omitting
the observability version selects version 4.
With Relay 0.10, Relay also enables automatic OTLP export when an
OTEL_EXPORTER_OTLP_ENDPOINT or signal-specific OTLP endpoint variable is set
in the runtime environment, and it skips configured endpoints while global
OTLP header variables are set. Automatic traces use the gen_ai projection,
which exports prompt and response content. Remove unintended OTLP variables
from the environment that starts the runtime, set
opentelemetry.enabled = false in the observability configuration, or set
OTEL_SDK_DISABLED=true to turn off every Relay OTLP exporter. Refer to the NeMo Relay
migration guide
for the complete list of 0.10 changes.
Configurations from Relay 0.6 must also move flat OpenTelemetry exporter fields
into entries under opentelemetry.endpoints. In the Python SDK, replace the
removed RelayOtlpConfig model with RelayOpenTelemetryConfig and one or more
RelayOpenTelemetryEndpointConfig entries.
NeMo Relay CLI
Claude and Codex harness extras install their compatible CLI binary without
the Relay Python package. Pi requires a separate CLI installation alongside
the npm adapter. Install the >=0.9,<0.11 range:
If cargo-binstall is available, install the pinned CLI with Cargo:
After installation, run nemo-relay --version and confirm the version is in
the >=0.9,<0.11 range. When Relay is enabled with
FabricConfig.enable_relay(...), the Claude, Codex, and Pi adapters start and
supervise the CLI gateway automatically.
The Pi adapter also requires a user-supplied path to the
Relay Pi extension
from the Relay release that matches the CLI.
Set
harness.settings.relay_extension_path to the extension file or package
directory; relative paths resolve from environment.workspace. Relay-enabled
Pi configurations must also set runtime.artifacts so NeMo Fabric can provide
the adapter-owned Relay configuration. Refer to the
Pi adapter guide for the complete
configuration and the embedded collector streaming workflow. Do not set
launch_collector=False for Pi streaming because the Pi extension does not
attach the NeMo Fabric request IDs required by an externally managed collector.
Deployment Scenarios
Choose a deployment scenario based on where the consumer, runtime, adapter, and harness need to run.
Runtime and Harness in the Same Environment
The NeMo Fabric runtime, selected adapter, and harness share one environment. This is the simplest scenario for local development and the quickstart.
Install the runtime with the harness extra, or install the runtime and a bare adapter beside an existing harness. The package options earlier in this guide describe both approaches.
Isolated Task Environment
The host application constructs and serializes the final typed FabricConfig. It then runs NeMo Fabric, the selected adapter, and the harness inside an isolated task environment such as a Docker container or sandbox. Adapter discovery and task-path resolution occur inside that environment.
Harbor uses this model. Install its integration in the host environment:
Install NeMo Fabric, the selected adapter, and the harness in the task environment. For a Hermes Agent task, install Hermes Agent according to its installation guide, then add nemo-fabric, nemo-fabric-adapters-hermes, and optionally nemo-fabric[relay].
Relay-enabled Claude, Codex, or Pi tasks also require the adapter-compatible NeMo Relay CLI in the task environment. Pi additionally requires its matching Relay extension. Refer to the Harbor integration guide for details.
Runtime and Harness in Separate Environments
The NeMo Fabric runtime and agent harness can run in separate, locally accessible Python environments. This scenario isolates their Python dependencies while the runtime launches the adapter through the adapter environment’s interpreter.
Install nemo-fabric in the runtime environment. Install the adapter and harness in the second environment, then set ADAPTER_PYTHON in the runtime environment:
On Windows, use the adapter environment’s Python executable:
Use matching NeMo Fabric release versions for the runtime and adapter unless a different pairing has been validated.
Source Installation Method
Prerequisites:
- Rust and Cargo
- Python 3.11 through 3.14
- uv
just1.50.0+
- Create a Python virtual environment and activate it (replace
3.13with your preferred Python version):
- Build the Rust core and Python libraries.
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:
Then run the build command with the no_uv=true flag to avoid re-installing the dependencies: