diff --git a/CHANGELOG.md b/CHANGELOG.md
index 04aafd397701544c5ed132dca958123e3a0d2f94..6d62cab42e1086ea8f1d030c8f646b0813d73d0c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -25,6 +25,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 * Improved output during IOC startup
 * e3-sequencer tests added, as well as removing pre-processing of .stt files.
 * Remove Win32 and CYGWIN32 support
+* Remove `/tools` directory, including `test_installed_modules.sh` utility
 
 ## [4.0.0]
 
diff --git a/tools/README.md b/tools/README.md
deleted file mode 100644
index 39bf3fafbc314a862b7995e02aa322a60a90b096..0000000000000000000000000000000000000000
--- a/tools/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-iocsh
-====
-
-## E3 Unique Variables
-
-```
-E3_CMD_TOP   : the absolute path where a startup script (cmd file) is
-E3_IOCSH_TOP : the absolute path where the iocsh is executed
-```
-
-For example, one executes the iocsh ```${HOME}``` to call ```e3_local/cmds``` via
-
-```sh
-$ iocsh e3_local/cmds/iocStats.cmd
-```
-In this case,
-```E3_CMD_TOP``` is defined as ```"${HOME}/e3_local/cmds"```
-```E3_IOCSH_TOP``` is defined as ```"${HOME}"```
diff --git a/tools/test_installed_modules.sh b/tools/test_installed_modules.sh
deleted file mode 100644
index c251075c7c34fc38ecdfd818179c34f103fc77d3..0000000000000000000000000000000000000000
--- a/tools/test_installed_modules.sh
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/usr/bin/env bash
-# Copyright (c) 2020-Present European Spallation Source ERIC
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in all
-# copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-# SOFTWARE.
-
-REQUIRE_DIR=$(
-  cd "$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"/.. || exit
-  pwd
-)
-REQUIRE_VERSION=${REQUIRE_DIR##*/}
-BASE_LOCATION=$(
-  cd "${REQUIRE_DIR}"/../.. || exit
-  pwd
-)
-
-if ! command -v run-iocsh >/dev/null 2>&1; then
-  echo "You need to install run-iocsh to use this script" >&2 && exit 1
-fi
-
-for d in "$REQUIRE_DIR"/siteMods/*/*; do
-  mod=$(dirname "$d" | xargs basename)
-  ver=$(basename "$d")
-  echo "Running test: $mod,$ver"
-  echo "======================================================="
-
-  if run-iocsh --base_location "${BASE_LOCATION}" --require_version "${REQUIRE_VERSION}" --delay 2 --timeout 5 "$mod,$ver"; then
-    echo -e "Module $mod, version $ver: \e[32mTEST PASSED\e[0m"
-  else
-    echo -e "Module $mod, version $ver: \e[31mFAILED\e[0m" >&2
-  fi
-  echo "======================================================="
-  echo ""
-done