diff --git a/.bashrc.d/terraform b/.bashrc.d/terraform
index 70ebaee1c38aa340d1f8fda1e818b1acf3be8198..31eec501a02dadd2590d89580c4534f6bdb56b75 100644
--- a/.bashrc.d/terraform
+++ b/.bashrc.d/terraform
@@ -9,3 +9,17 @@ alias tfar='tf apply tfplan && tf plan -out tfplan -refresh-only && tf apply tfp
 alias tfp='tf init -backend=false && tf plan -out tfplan'
 alias tfr='tf apply -auto-approve -refresh-only'
 alias tfvf='tf init -backend=false && tf validate && tf fmt -diff'
+
+tfp-next () {
+    current="$(tf workspace show)"
+    next="$(tf workspace list | cut -c3- | grep --line-regexp --after-context=1 "$current" | tail +2)"
+    tf apply tfplan
+    tf apply -auto-approve -refresh-only
+    if [ -z "$next" ]
+    then
+        red "Last workspace in the cycle."
+        return
+    fi
+    tf workspace select "$next"
+    tf plan -out tfplan "$@"
+}