diff --git a/.codeclimate.yml b/.codeclimate.yml
index 761a90adf2de1c97afed0a92ea8102607de09957..44a58c54ccdcb4781991a222bd4c13bc2b053c6c 100644
--- a/.codeclimate.yml
+++ b/.codeclimate.yml
@@ -1,6 +1,5 @@
 version: "2"
 exclude_patterns:
-  - "ThirdParty/"
   - "Tests/"
 plugins:
   duplication:
diff --git a/.codespellrc b/.codespellrc
index 9d57e040fb0e155cbfc5815b0fb543e95a39b018..e1e36dbbf412884ec67ad2a66e011a032a917e9c 100644
--- a/.codespellrc
+++ b/.codespellrc
@@ -1,5 +1,5 @@
 [codespell]
-skip = *.bib,*.css,*.pdf,*.yaml,*.yml,*/.vale,./.git,./GeoLib/IO/XmlIO/OpenGeoSysSTN.xsd,./Tests/Data,./ThirdParty,./web/content/imprint.md,./web/node_modules,./web/public/imprint/index.html,./web/resources,CITATION.cff,
+skip = *.bib,*.css,*.pdf,*.yaml,*.yml,*/.vale,./.git,./GeoLib/IO/XmlIO/OpenGeoSysSTN.xsd,./Tests/Data,./web/content/imprint.md,./web/node_modules,./web/public/imprint/index.html,./web/resources,CITATION.cff,
 ignore-words-list = ba,bu,ket,nd,pris,strat,sur,theis,
 exclude-file = .codespellexclude
 uri-ignore-words-list = *
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 19c07b0ec06d27ac5cc96cbf407cbcae2d4e27c3..e822be2e6b7ffb1ebad6296216f001ad717992a3 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -4,7 +4,7 @@ repos:
     hooks:
       - id: trailing-whitespace
         args: [--markdown-linebreak-ext=md, --markdown-linebreak-ext=pandoc]
-        exclude: "^ThirdParty/.*|^Tests/Data/.*|^web/static|^Documentation/.vale/.*|.*\\.patch"
+        exclude: "^Tests/Data/.*|^web/static|^Documentation/.vale/.*|.*\\.patch"
       - id: check-added-large-files
         args: [--maxkb 1024]
       - id: check-merge-conflict
@@ -24,7 +24,7 @@ repos:
     rev: 23.1.0
     hooks:
       - id: black
-        exclude: "ThirdParty|LinearMFront/generate_ref.py"
+        exclude: "LinearMFront/generate_ref.py"
   # Run black on markdown notebooks
   - repo: https://github.com/nbQA-dev/nbQA
     rev: 1.7.0
@@ -35,7 +35,7 @@ repos:
     rev: v2.2.2
     hooks:
       - id: codespell
-        exclude: 'ThirdParty/.*|Tests/Data/.*|.*\.ya?ml|.*\.bib|^web/content/imprint.md|^GeoLib/IO/XmlIO/OpenGeoSysSTN.xsd|^Applications/FileIO/Legacy/OGSIOVer4.cpp|^scripts/cmake/CPM.cmake|Documentation/.vale/.*|.*\.ipynb|.*\.svg'
+        exclude: 'Tests/Data/.*|.*\.ya?ml|.*\.bib|^web/content/imprint.md|^GeoLib/IO/XmlIO/OpenGeoSysSTN.xsd|^Applications/FileIO/Legacy/OGSIOVer4.cpp|^scripts/cmake/CPM.cmake|Documentation/.vale/.*|.*\.ipynb|.*\.svg'
   - repo: https://github.com/cheshirekow/cmake-format-precommit
     rev: v0.6.13
     hooks:
@@ -56,7 +56,7 @@ repos:
         name: Run git diff --check
         entry: git diff --check --cached -- ':!*.md' ':!*.pandoc' ':!*.asc' ':!*.dat' ':!*.ts'
         language: system
-        exclude: "ThirdParty/.*|Tests/Data/.*|web/static/images/xsd"
+        exclude: "Tests/Data/.*|web/static/images/xsd"
         stages: [commit, manual]
       - id: file-extensions
         name: Check file extensions
diff --git a/ThirdParty/.clang-tidy b/ThirdParty/.clang-tidy
deleted file mode 100644
index 8cd40d73ca6ea2462431fdf3693c0d9ab781c430..0000000000000000000000000000000000000000
--- a/ThirdParty/.clang-tidy
+++ /dev/null
@@ -1,6 +0,0 @@
----
-# Disable all checks, one check has to be enabled.
-# Hack: if there is no enabled check clang-tidy (at least in the way it is
-# invoked by CMake) prints out its own usage instructions. I have chosen an
-# arbitrary check here.
-Checks: '-*,boost-use-to-string'
diff --git a/codecov.yml b/codecov.yml
index 2d0d54561430d06cad086f8d7def32b2a32ee7c3..3438ad884335e9b2eb4e472cdff8411b3f4d4d3e 100644
--- a/codecov.yml
+++ b/codecov.yml
@@ -4,5 +4,4 @@ codecov:
 ignore:
   - "Applications/CLI"
   - "ProcessLib"
-  - "ThirdParty"
   - "*Tests/**/*"
diff --git a/pyproject.toml b/pyproject.toml
index b5a44ff8c31892c02d030a7416b35faa60c57ecb..ab5aa9e052146b7ba1a59e64f69a08c8c29ad469 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -130,7 +130,7 @@ unfixable = [
   "F841", # Removes unused variables
 ]
 include = ["*.py", "*.pyi", "**/pyproject.toml", "*.ipynb"]
-exclude = ["ThirdParty/", "scripts/doc", "*ci-skip*"]
+exclude = ["scripts/doc", "*ci-skip*"]
 flake8-unused-arguments.ignore-variadic-names = true
 line-length = 80
 
diff --git a/scripts/ci/jobs/build-docs.yml b/scripts/ci/jobs/build-docs.yml
index 9621169120ea085ff3464cdc80d20f0466753830..eb47489eb9bfa5e643c8ee7b4f05f1ad0510a5dd 100644
--- a/scripts/ci/jobs/build-docs.yml
+++ b/scripts/ci/jobs/build-docs.yml
@@ -17,7 +17,7 @@ build docs:
     - NUM_LIZARD_ISSUES=`cat lizard.txt | wc -l`
     - echo "lizard_issues $NUM_LIZARD_ISSUES" >> metrics.txt
     - lizard -l cpp -t 8 --html -o Lizard.html
-    - lizard -EWordCount -x "./ThirdParty/*" -x "./Tests/*" || true # word-cloud
+    - lizard -EWordCount -x "./Tests/*" || true # word-cloud
     # build
     - cd build
     - cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release -DOGS_BUILD_PROCESSES=SteadyStateDiffusion
diff --git a/scripts/cmake/DocumentationSetup.cmake b/scripts/cmake/DocumentationSetup.cmake
index 88ba06f289ea52b87f757e5cf6b6ce64a644c2d1..f663f185fba0c56c5b2e33aedabb746fc7d97a90 100644
--- a/scripts/cmake/DocumentationSetup.cmake
+++ b/scripts/cmake/DocumentationSetup.cmake
@@ -3,13 +3,9 @@ if(NOT DOXYGEN_FOUND)
 endif()
 
 set(DOXYGEN_EXCLUDE
-    ${PROJECT_SOURCE_DIR}/ThirdParty
-    ${PROJECT_SOURCE_DIR}/scripts
-    ${PROJECT_SOURCE_DIR}/Tests
-    ${PROJECT_SOURCE_DIR}/Documentation/ProjectFile
-    ${PROJECT_SOURCE_DIR}/web
-    ${PROJECT_BINARY_DIR}/_deps
-    ${PROJECT_BINARY_DIR}/_ext
+    ${PROJECT_SOURCE_DIR}/scripts ${PROJECT_SOURCE_DIR}/Tests
+    ${PROJECT_SOURCE_DIR}/Documentation/ProjectFile ${PROJECT_SOURCE_DIR}/web
+    ${PROJECT_BINARY_DIR}/_deps ${PROJECT_BINARY_DIR}/_ext
 )
 set(DOXYGEN_FILE_PATTERNS *.h *.cpp *.tpp *.dox)
 set(DOXYGEN_PROJECT_NAME "OGS")
diff --git a/scripts/test/cppcheck.in.sh b/scripts/test/cppcheck.in.sh
index 2a69b1bde7dd2aef9298149e5525057955895f4f..646297ac9c5e6efe433ca88cbad8ef065c580911 100644
--- a/scripts/test/cppcheck.in.sh
+++ b/scripts/test/cppcheck.in.sh
@@ -12,7 +12,6 @@ ${CPPCHECK_TOOL_PATH} \
         --inline-suppr \
         -i ${_cpm_dir} --suppress=*:${_cpm_dir}/* \
         -i ${PROJECT_BINARY_DIR}/_deps --suppress=*:${PROJECT_BINARY_DIR}/_deps/* \
-        -i ${PROJECT_SOURCE_DIR}/ThirdParty --suppress=*:${PROJECT_SOURCE_DIR}/ThirdParty* \
         -i ${PROJECT_SOURCE_DIR}/Tests --suppress=*:*Tests/* \
         --suppress=missingIncludeSystem \
         --template='{\n  "description": "{message}",\n  "severity": "info",\n    "location": {\n    "path": "{file}",\n    "lines": {\n      "begin": {line}\n    }\n  }\n},' \