diff --git a/scripts/cmake/Find.cmake b/scripts/cmake/Find.cmake
index e2616a71a2e78aa0489636031b64700027283f55..4af819824d8742fcbacd53e4300a18fb65d4ed2f 100644
--- a/scripts/cmake/Find.cmake
+++ b/scripts/cmake/Find.cmake
@@ -26,12 +26,6 @@ find_program(CCACHE_TOOL_PATH ccache)
 
 find_program(MODULE_CMD lmod PATHS /software/lmod/lmod/libexec)
 
-find_program(SNAKEMAKE snakemake)
-find_program(TEE_TOOL_PATH tee)
-if(OGS_BUILD_TESTING AND SNAKEMAKE AND NOT TEE_TOOL_PATH)
-    message(WARNING "tee tool was not found. Snakemake tests are disabled!")
-endif()
-
 find_program(GMSH gmsh)
 
 find_program(XMLSTARLET_TOOL_PATH xmlstarlet)
diff --git a/scripts/cmake/PythonSetup.cmake b/scripts/cmake/PythonSetup.cmake
index 329e35ce5463f91cc297ba44aa90dbadba9cc5f2..fb22b42ee2e443c6e48bd2ec12308f2f3d3930d4 100644
--- a/scripts/cmake/PythonSetup.cmake
+++ b/scripts/cmake/PythonSetup.cmake
@@ -92,15 +92,8 @@ if(OGS_USE_PIP)
         file(STRINGS Tests/Data/requirements-dev.txt _requirements_dev)
         list(APPEND OGS_PYTHON_PACKAGES ${_requirements} ${_requirements_dev})
 
-        list(
-            APPEND
-            OGS_PYTHON_PACKAGES
-            "snakemake==${ogs.minimum_version.snakemake}"
-            "pulp==2.7.0" # https://github.com/snakemake/snakemake/issues/2607
-            "setuptools" # https://github.com/glenfant/stopit/issues/32
-        )
-        set(SNAKEMAKE ${LOCAL_VIRTUALENV_BIN_DIR}/snakemake CACHE FILEPATH ""
-                                                                  FORCE
+        list(APPEND OGS_PYTHON_PACKAGES
+             "setuptools" # https://github.com/glenfant/stopit/issues/32
         )
     endif()
 endif()
@@ -209,8 +202,7 @@ function(setup_venv_dependent_ctests)
                 PATH Parabolic/HT/InvalidProjectFiles
                 EXECUTABLE ogs
                 EXECUTABLE_ARGS ${ht_invalid_prj_file}
-                RUNTIME 1
-                PROPERTIES WILL_FAIL TRUE
+                RUNTIME 1 PROPERTIES WILL_FAIL TRUE
             )
         endforeach()
     endif()
diff --git a/scripts/cmake/test/Test.cmake b/scripts/cmake/test/Test.cmake
index ef7d99790e6edcfe96b6aca1709c9914c32f636a..1c70e13a9fff626dae4496fb7ac8ccc03842bb98 100644
--- a/scripts/cmake/test/Test.cmake
+++ b/scripts/cmake/test/Test.cmake
@@ -84,18 +84,14 @@ set_target_properties(
                                                                    Testing
 )
 
-configure_file(
-    ${PROJECT_SOURCE_DIR}/scripts/test/buildinfo.in.yaml
-    ${PROJECT_BINARY_DIR}/buildinfo.yaml
-)
-
 file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/logs)
 
 # Files in Testing/Notes are submitted to cdash, supply additional build info.
 if(DEFINED ENV{CI_JOB_URL})
-    file(GENERATE OUTPUT ${PROJECT_BINARY_DIR}/Testing/Notes/buildinfo.txt
-        CONTENT
-"CI_JOB_URL=$ENV{CI_JOB_URL}
+    file(
+        GENERATE
+        OUTPUT ${PROJECT_BINARY_DIR}/Testing/Notes/buildinfo.txt
+        CONTENT "CI_JOB_URL=$ENV{CI_JOB_URL}
 COMMIT_URL=$ENV{CI_PROJECT_URL}/-/commit/$ENV{CI_COMMIT_SHA}
 CI_COMMIT_TIMESTAMP=$ENV{CI_COMMIT_TIMESTAMP}\n"
     )
diff --git a/scripts/snakemake/modules/meshes.smk b/scripts/snakemake/modules/meshes.smk
deleted file mode 100644
index 4d24e8e02ccc55b04e7ffbdaa3c25d709d6e1c49..0000000000000000000000000000000000000000
--- a/scripts/snakemake/modules/meshes.smk
+++ /dev/null
@@ -1,10 +0,0 @@
-rule generate_square_mesh:
-    output:
-        "{mesh_name_prefix,\\w+}_{size,\\d+}_{lx,\\d+}x{ly,\\d+}_{type}.vtu"
-    shell:
-        """
-        generateStructuredMesh -e {wildcards.type} \
-            --lx {wildcards.lx} --ly {wildcards.ly} \
-            --nx {wildcards.size} --ny {wildcards.size} \
-            -o {output}
-        """
diff --git a/scripts/snakemake/vtkdiff/environment.yaml b/scripts/snakemake/vtkdiff/environment.yaml
deleted file mode 100644
index bc29b1f14d450688eaa50f64ee2ceee643d31246..0000000000000000000000000000000000000000
--- a/scripts/snakemake/vtkdiff/environment.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
-dependencies:
-  - python
diff --git a/scripts/snakemake/vtkdiff/wrapper.py b/scripts/snakemake/vtkdiff/wrapper.py
deleted file mode 100644
index 78d3902da57c0322dda2e9bb05a7d88849e5a46c..0000000000000000000000000000000000000000
--- a/scripts/snakemake/vtkdiff/wrapper.py
+++ /dev/null
@@ -1,34 +0,0 @@
-"""Snakemake wrapper for vtkdiff."""
-
-__author__ = "Lars Bilke"
-__copyright__ = "Copyright 2020, OpenGeoSys Community"
-__license__ = "BSD"
-
-from pathlib import Path
-
-from snakemake.shell import shell
-
-# ruff: noqa: F821
-output = Path(snakemake.output[0])
-if output.exists():
-    output.unlink()
-
-if snakemake.params.check_mesh:
-    shell("vtkdiff {snakemake.input.a} {snakemake.input.b} -m > {snakemake.output[0]}")
-
-for field in snakemake.params.fields:
-    field_a = field[0]
-    offset = 0
-    if len(field) == 4:
-        offset = 1
-    field_b = field[0 + offset]
-    abs_tol = field[1 + offset]
-    rel_tol = field[2 + offset]
-
-    shell(
-        """
-        vtkdiff {snakemake.input.a} {snakemake.input.b} \
-          -a {field_a} -b {field_b} \
-          --abs {abs_tol} --rel {rel_tol} 2>&1 | tee -a {snakemake.output[0]}
-        """
-    )
diff --git a/scripts/snakemake/workflows/partmesh.smk b/scripts/snakemake/workflows/partmesh.smk
deleted file mode 100644
index dcb674cb8105f26b59c6426416dbf74ea378f304..0000000000000000000000000000000000000000
--- a/scripts/snakemake/workflows/partmesh.smk
+++ /dev/null
@@ -1,8 +0,0 @@
-from snakemake.utils import min_version
-min_version("7.3")
-
-module partmesh:
-    snakefile: gitlab("bilke/snakemake-partmesh", path="workflow/Snakefile", tag="bbcdc9a721fcda7a1e9619895dce79dfc2b2c905", host="gitlab.opengeosys.org")
-    config: config
-
-use rule * from partmesh
diff --git a/scripts/test/buildinfo.in.yaml b/scripts/test/buildinfo.in.yaml
deleted file mode 100644
index 04322b42cd0d7e1beb46df9e8c3a2640b9ec40ce..0000000000000000000000000000000000000000
--- a/scripts/test/buildinfo.in.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-SOURCE_DIR: "@PROJECT_SOURCE_DIR@"
-BUILD_DIR: "@PROJECT_BINARY_DIR@"
-BIN_DIR: "@PROJECT_BINARY_DIR@/bin"
-Data_SOURCE_DIR: "@PROJECT_SOURCE_DIR@/Tests/Data"
-Data_BINARY_DIR: "@PROJECT_BINARY_DIR@/Tests/Data"
diff --git a/web/content/docs/devguide/testing/workflow-testing/index.md b/web/content/docs/devguide/testing/workflow-testing/index.md
deleted file mode 100644
index ac6d8798973e9f78916d2aa53f2500ee559d7a79..0000000000000000000000000000000000000000
--- a/web/content/docs/devguide/testing/workflow-testing/index.md
+++ /dev/null
@@ -1,53 +0,0 @@
-+++
-date = "2021-03-05T10:49"
-title = "Workflow testing"
-author = "Lars Bilke"
-weight = 1024
-
-[menu]
-  [menu.devguide]
-    parent = "testing"
-+++
-
-## Introduction
-
-We use the workflow manager [Snakemake](https://snakemake.readthedocs.io) to test workflows which consist of the execution of several steps which are based on each other.
-
-## Requirements
-
-- [Snakemake](https://snakemake.readthedocs.io/en/stable/getting_started/installation.html) >= {{< dataFile "versions.minimum_version.snakemake" >}}
-  - If you use `OGS_USE_PIP=ON` then `snakemake` is installed in your virtual environment in your build-directory automatically. You can then call it via `.venv/bin/snakemake ...` (inside your build directory).
-- On Windows only:
-  - The `tee`-utility in the `PATH` (can be installed from <https://sourceforge.net/projects/unxutils>)
-
-## Examples
-
-- [ExtractBoundary.smk](https://gitlab.opengeosys.org/ogs/ogs/-/blob/master/Applications/Utils/ExtractBoundary.smk)
-- [VoxelGridFromLayers.smk](https://gitlab.opengeosys.org/ogs/ogs/-/blob/master/Applications/Utils/VoxelGridFromLayers.smk)
-
-These example workflows [are added to CTest](https://gitlab.opengeosys.org/ogs/ogs/-/blob/540d0b454c9e3805a81f7c4a1b6ee7565be6845c/Applications/Utils/Tests.cmake#L302-315) as well:
-
-```cmake
-if(SNAKEMAKE AND NOT OGS_USE_MPI)
-    add_test(NAME snakemake_ExtractBoundary
-        COMMAND ${SNAKEMAKE} -j 1
-            --configfile ${PROJECT_BINARY_DIR}/buildinfo.yaml
-            -s ${CMAKE_CURRENT_SOURCE_DIR}/ExtractBoundary.smk
-    )
-    add_test(NAME snakemake_VoxelGridFromLayers
-    # ...
-    )
-    add_dependencies(ctest ExtractBoundary Layers2Grid AddFaultToVoxelGrid)
-endif()
-```
-
-## Modularization
-
-We started on implementing modular rule definitions and tool wrapper in [`scripts/snakemake`](https://gitlab.opengeosys.org/ogs/ogs/-/tree/master/scripts/snakemake).
-
-## Links
-
-- [Snakemake Documentation](https://snakemake.readthedocs.io)
-- [Short tutorial](https://snakemake.readthedocs.io/en/stable/tutorial/short.html)
-- [Software Carpentry Workshop](https://carpentries-incubator.github.io/workflows-snakemake/index.html)
-- [HPC Carpentry Workshop with Snakemake](http://www.hpc-carpentry.org/hpc-python/)
diff --git a/web/data/versions.json b/web/data/versions.json
index 0e7e9b31a06a80efcd9b7e4b5922aa21f3a99ee8..e057bbe7d1707f7d9dad75dc5d3e5e3ed879a989 100644
--- a/web/data/versions.json
+++ b/web/data/versions.json
@@ -19,7 +19,6 @@
     "petsc": "3.18.6",
     "qt": "5.14.2",
     "python": "3.9",
-    "snakemake": "8.2.4",
     "hdf5": "1.10.7",
     "libxml2": "2.9.12",
     "tfel-rliv": "4.0",
@@ -45,7 +44,6 @@
   "python": {
     "jupyter_image": {
       "conda_packages": [
-        "snakemake-minimal",
         "pyvista==0.34.2",
         "ipyvtklink",
         "pythreejs"