diff --git a/.gitignore b/.gitignore
index 07c1fa68f9f28f85e7038e01064c3d86249863f2..ea6d19ba7c20560a5fe7ccbb7c3aec2143ff4b7b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -43,3 +43,5 @@ calorimeters/test/
 
 # output files
 results/*
+
+*.sif
diff --git a/util/start_dev_shell.sh b/util/start_dev_shell.sh
new file mode 100755
index 0000000000000000000000000000000000000000..5d535ece34f750bfcf9c3a0be551117ad0f4fdfa
--- /dev/null
+++ b/util/start_dev_shell.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+OS=`uname -s`
+
+if [ "${OS}" = "Linux" ]; then
+  echo "Detected OS: Linux"
+  if [ ! -f juggler_latest.sif ]; then
+    echo "Need to create singularity image"
+    singularity pull docker://docker.io/sly2j/juggler:latest
+  fi
+  echo "Launching dev shell (through singularity)..."
+  singularity exec juggler_latest.sif eic-shell
+elif [ "${OS}" = "Darwin" ]; then
+  echo "Detector OS: MacOS"
+  echo "Syncing docker container"
+  docker pull sly2j/juggler:latest
+  echo "Launching dev shell (through docker)..."
+  docker run -i -t --rm sly2j/juggler:latest eic-shell
+else
+  echo "ERROR: dev shell not available for this OS (${OS})"
+fi