diff --git a/cmake/toolchain/heptools-dev-base.cmake b/cmake/toolchain/heptools-dev-base.cmake
index d645e297cc8fbd14fd80c69784662f787e643d22..5298ad0db9bf5d5a8e11f56831d9fd163c22a111 100644
--- a/cmake/toolchain/heptools-dev-base.cmake
+++ b/cmake/toolchain/heptools-dev-base.cmake
@@ -483,6 +483,7 @@ LCG_external_package(mypy_extensions   1.0.0
 LCG_external_package(mysql             10.5.20                                  )
 LCG_external_package(mysql_connector_python 8.0.18                            )
 LCG_external_package(namex             0.0.8                                    )
+LCG_external_package(nanobind          2.1.0                                    )
 LCG_external_package(nanomsg           1.1.5                                    )
 LCG_external_package(nbclassic         0.3.1                                    )
 LCG_external_package(nbclient          0.5.3                                    )
diff --git a/pyexternals/CMakeLists.txt b/pyexternals/CMakeLists.txt
index 282e99ebfbcb559bf43263949a14b2faaffc9f23..1abfecf89f5a901d7f04d93b52bf2a174e17531d 100644
--- a/pyexternals/CMakeLists.txt
+++ b/pyexternals/CMakeLists.txt
@@ -17,6 +17,22 @@ endif()
 #=================================================================================================================
 LCGPackage_set_home(pytools)
 
+# to get the nanobind tarball
+# export NB_VERSION=2.1.0
+# git clone --recursive --branch v${NB_VERSION} https://github.com/wjakob/nanobind.git
+# tar czf nanobind-${NB_VERSION}.tar.gz --exclude=".git" nanobind
+LCGPackage_Add(
+  nanobind
+  URL ${GenURL}/nanobind-<VERSION>.tar.gz
+  CONFIGURE_COMMAND <VOID>
+  BUILD_COMMAND <VOID>
+  INSTALL_COMMAND ${MakeSitePackagesDir}
+          COMMAND ${PYTHON} -m pip install ${PySetupOptions} --no-deps .
+          COMMAND ${CMAKE_SOURCE_DIR}/pyexternals/Python_postinstall.sh <INSTALL_DIR>
+  BUILD_IN_SOURCE 1
+  DEPENDS Python pip CMake
+)
+
 #---tzdata--------------------------------------------------------------------
 LCGPackage_Add(
   tzdata