diff --git a/scripts/changelog.sh b/scripts/changelog.sh
new file mode 100755
index 0000000000000000000000000000000000000000..10348a811e5555bfc417119f71d06313412b70c3
--- /dev/null
+++ b/scripts/changelog.sh
@@ -0,0 +1,49 @@
+#!/usr/bin/env bash
+
+set -e
+
+LAST_RELEASE_TAG="$(git describe --tags --abbrev=0)"
+LAST_RELEASE_TIMESTAMP="$(git log --format="%ct" -1 "${LAST_RELEASE_TAG}")"
+echo "Last release: ${LAST_RELEASE_TAG} at ${LAST_RELEASE_TIMESTAMP}"
+
+REPOS=(
+    redox=.
+    cookbook=cookbook
+    rust=rust
+)
+
+for package in $(installer/target/release/redox_installer --list-packages -c config/x86_64/desktop.toml)
+do
+    REPOS+=("${package}=cookbook/recipes/${package}/source")
+done
+
+# TODO: resolve dependencies instead of manually adding these initfs packages
+for package in init logd nulld ramfs randd zerod
+do
+    REPOS+=("${package}=cookbook/recipes/${package}/source")
+done
+
+for name_repo in "${REPOS[@]}"
+do
+    name="$(echo "${name_repo}" | cut -d "=" -f 1)"
+    repo="$(echo "${name_repo}" | cut -d "=" -f 2-)"
+    echo -en "\x1B[1m${name}:\x1B[0m "
+    if [ -e "${repo}/.git" ]
+    then
+        remote="$(git -C "${repo}" remote get-url origin)"
+        website="${remote%.*}"
+        before="$(git -C "${repo}" log --until="${LAST_RELEASE_TIMESTAMP}" --format="%h" -1)"
+        after="$(git -C "${repo}" log --since="${LAST_RELEASE_TIMESTAMP}" --format="%h" -1)"
+        if [ -z "${before}" ]
+        then
+            echo "New repository at ${website}"
+        elif [ -z "${after}" ]
+        then
+            echo "No changes"
+        else
+            echo "${website}/-/compare/${before}...${after}"
+        fi
+    else
+        echo "Not a git repository"
+    fi
+done
diff --git a/scripts/find-recipe.sh b/scripts/find-recipe.sh
new file mode 100755
index 0000000000000000000000000000000000000000..231b9fdfcda50de9dbb8216d87ce7c9a90d8ab58
--- /dev/null
+++ b/scripts/find-recipe.sh
@@ -0,0 +1,42 @@
+#!/usr/bin/env bash
+
+# Ensure arch and config are set as desired, we use these to find the build dir
+export ARCH=x86_64
+export CONFIG_NAME=desktop
+
+# Make sure to unmount the image first
+make unmount &>/dev/null || true
+
+# Mount the image
+make mount >/dev/null
+
+# Find all files
+find "build/${ARCH}/${CONFIG_NAME}/" -type f | cut -d / -f5- |\
+sort |\
+uniq |\
+while read path
+do
+    # Skip empty paths
+    if [ -z "${path}" ]
+    then
+        continue
+    fi
+
+    # Find all packages providing this file
+    pkgs="$(
+        find cookbook/recipes/*"/target/${ARCH}-unknown-redox/stage/${path}" -type f 2>/dev/null |
+        cut -d/ -f3 |
+        tr '\n' ' ' |
+        sort |
+        uniq
+    )"
+    if [ -n "${pkgs}" ]
+    then
+        echo "$path: ${pkgs}"
+    else
+        echo "$path: no packages, see config/${ARCH}/${CONFIG_NAME}.toml"
+    fi
+done
+
+# Make sure to unmount the image
+make unmount &>/dev/null || true