diff --git a/recipes/tools/sodium/recipe.sh b/recipes/tools/sodium/recipe.sh
deleted file mode 100644
index 5572b9ae2fb56e761aacffbc619dde20c0d138df..0000000000000000000000000000000000000000
--- a/recipes/tools/sodium/recipe.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-GIT=https://gitlab.redox-os.org/redox-os/sodium.git
-BINDIR="/ui/bin"
-CARGOFLAGS="--features orbital"
-
-function recipe_stage {
-    mkdir -pv "$1/ui/apps"
-    cp -v manifest "$1/ui/apps/sodium"
-    mkdir -pv "$1/ui/icons"
-    cp -v icon.png "$1/ui/icons/sodium.png"
-}
diff --git a/recipes/tools/sodium/recipe.toml b/recipes/tools/sodium/recipe.toml
new file mode 100644
index 0000000000000000000000000000000000000000..5986392b07f550efd12791c5843f7fe1128c91e3
--- /dev/null
+++ b/recipes/tools/sodium/recipe.toml
@@ -0,0 +1,18 @@
+[source]
+git = "https://gitlab.redox-os.org/redox-os/sodium.git"
+
+[build]
+template = "custom"
+script = """
+"${COOKBOOK_CARGO}" install \
+    --path "${COOKBOOK_SOURCE}" \
+    --root "${COOKBOOK_STAGE}/ui" \
+    --locked \
+    --no-track \
+    --features orbital
+
+mkdir -pv "${COOKBOOK_STAGE}/ui/apps"
+cp -v ${COOKBOOK_SOURCE}/manifest "${COOKBOOK_STAGE}/ui/apps/sodium"
+mkdir -pv "${COOKBOOK_STAGE}/ui/icons"
+cp -v ${COOKBOOK_SOURCE}/icon.png "${COOKBOOK_STAGE}/ui/icons/sodium.png"
+"""