Python Quick Start
This quick start shows the smallest Python workflow that emits scope, tool, and LLM events.
LangChain, LangGraph, and Deep Agents users should start with the LangChain integration, LangGraph integration, and Deep Agents integration guides for the best experience in those frameworks.
Choose an Install Path
Pick the installation path that matches whether you are using a published package or a local checkout.
Install from a Package Manager
Use this path when you want the published package for application development.
Run uv add from an application project that has a pyproject.toml; it records
nemo-relay as a dependency. If you are only installing into an active virtual
environment, use uv pip install nemo-relay. If you are not using uv, install
the published package with pip install nemo-relay.
Install from the Repository
Use this path when you are working from a local checkout and need editable source behavior.
This is the right path when you are working from a local checkout and want the editable package plus the native extension build.
If you are consuming the local checkout from another uv project, add the source
path from that application’s directory instead:
This records the local source in the application’s pyproject.toml through
[tool.uv.sources].
Run One Scope, One Tool Call, and One LLM Call
The example below runs one minimal instrumented workflow through the binding.
Save it as quickstart.py in the same Python project where you installed
nemo-relay, then run uv run python quickstart.py. If you are not using
uv, run it with the same Python environment where you installed the package.
What Success Looks Like
You should see:
- Event lines for the scope, tool, and LLM lifecycles, plus the
initializedmark event {'echo': 'hello'}from the tool call- A final object containing
ok: Trueand the echoed message payload from the LLM callback
Native subscriber delivery is asynchronous, so flush before checking subscriber output. If you only see the returned values and no event lines, the callbacks ran but you did not verify instrumentation. The subscriber output is the fast check that NeMo Relay actually emitted lifecycle events.
Where the Python Surface Lives
These modules are the main Python APIs to use from applications and integrations.
nemo_relay.scopenemo_relay.toolsnemo_relay.llmnemo_relay.guardrailsnemo_relay.interceptsnemo_relay.subscribersnemo_relay.pluginnemo_relay.adaptivenemo_relay.typednemo_relay.codecs
What to Learn Next
Use these links to continue from the quick start into the core runtime concepts.