diff --git a/plugins/bundler-exec/bundler-exec.plugin.zsh b/plugins/bundler-exec/bundler-exec.plugin.zsh
new file mode 100644
index 000000000..966725976
--- /dev/null
+++ b/plugins/bundler-exec/bundler-exec.plugin.zsh
@@ -0,0 +1,37 @@
+# This plugin is based on https://github.com/gma/bundler-exec
+# modify the BUNDLED_COMMANDS if needed
+
+BUNDLED_COMMANDS=(cucumber heroku rackup rails rake rspec ruby shotgun spec spork)
+
+## Functions
+
+bundler-installed()
+{
+    which bundle > /dev/null 2>&1
+}
+
+within-bundled-project()
+{
+    local dir="$(pwd)"
+    while [ "$(dirname $dir)" != "/" ]; do
+        [ -f "$dir/Gemfile" ] && return
+        dir="$(dirname $dir)"
+    done
+    false
+}
+
+run-with-bundler()
+{
+    local command="$1"
+    shift
+    if bundler-installed && within-bundled-project; then
+        bundle exec $command "$@"
+    else
+        $command "$@"
+    fi
+}
+
+## Main program
+for CMD in $BUNDLED_COMMANDS; do
+   alias $CMD="run-with-bundler $CMD"
+done