diff --git a/Applications/ApplicationsLib/ProjectData.cpp b/Applications/ApplicationsLib/ProjectData.cpp
index d048c9d986e96a92faeaefb8eebae0dd6e7af7e9..8be0498f0cafab268819ce22fc5ee2ce98a74391 100644
--- a/Applications/ApplicationsLib/ProjectData.cpp
+++ b/Applications/ApplicationsLib/ProjectData.cpp
@@ -73,6 +73,11 @@
 #ifdef OGS_BUILD_PROCESS_LIQUIDFLOW
 #include "ProcessLib/LiquidFlow/CreateLiquidFlowProcess.h"
 #endif
+
+#ifdef OGS_BUILD_PROCESS_THERMORICHARDSMECHANICS
+#include "ProcessLib/ThermoRichardsMechanics/CreateThermoRichardsMechanicsProcess.h"
+#endif
+
 #ifdef OGS_BUILD_PROCESS_PHASEFIELD
 #include "ProcessLib/PhaseField/CreatePhaseFieldProcess.h"
 #endif
@@ -987,6 +992,33 @@ void ProjectData::parseProcesses(
         }
         else
 #endif
+
+#ifdef OGS_BUILD_PROCESS_THERMORICHARDSMECHANICS
+            if (type == "THERMO_RICHARDS_MECHANICS")
+        {
+            switch (_mesh_vec[0]->getDimension())
+            {
+                case 2:
+                    process = ProcessLib::ThermoRichardsMechanics::
+                        createThermoRichardsMechanicsProcess<2>(
+                            name, *_mesh_vec[0], std::move(jacobian_assembler),
+                            _process_variables, _parameters,
+                            _local_coordinate_system, integration_order,
+                            process_config, _media);
+                    break;
+                case 3:
+                    process = ProcessLib::ThermoRichardsMechanics::
+                        createThermoRichardsMechanicsProcess<3>(
+                            name, *_mesh_vec[0], std::move(jacobian_assembler),
+                            _process_variables, _parameters,
+                            _local_coordinate_system, integration_order,
+                            process_config, _media);
+                    break;
+            }
+        }
+        else
+#endif
+
 #ifdef OGS_BUILD_PROCESS_TWOPHASEFLOWWITHPP
             if (type == "TWOPHASE_FLOW_PP")
         {
diff --git a/ProcessLib/ThermoRichardsMechanics/CMakeLists.txt b/ProcessLib/ThermoRichardsMechanics/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..57848648edb38d7e396c2d18345659a5af220975
--- /dev/null
+++ b/ProcessLib/ThermoRichardsMechanics/CMakeLists.txt
@@ -0,0 +1,8 @@
+append_source_files(SOURCES)
+
+ogs_add_library(ThermoRichardsMechanics ${SOURCES})
+target_link_libraries(ThermoRichardsMechanics PUBLIC ProcessLib PRIVATE ParameterLib)
+
+if(BUILD_TESTING)
+    include(Tests.cmake)
+endif()
diff --git a/ProcessLib/ThermoRichardsMechanics/Tests.cmake b/ProcessLib/ThermoRichardsMechanics/Tests.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/scripts/cmake/ProcessesSetup.cmake b/scripts/cmake/ProcessesSetup.cmake
index 2396068b695dac52b57de2c6242c4b9eae3024d1..86d103a33017ba99de836db58b6c2120ae842492 100644
--- a/scripts/cmake/ProcessesSetup.cmake
+++ b/scripts/cmake/ProcessesSetup.cmake
@@ -8,6 +8,7 @@ set(ProcessesList
     HydroMechanics
     LiquidFlow
     LIE
+    ThermoRichardsMechanics
     PhaseField
     RichardsComponentTransport
     RichardsFlow