diff --git a/qutebrowser/scripts/qutedmenu b/qutebrowser/scripts/qutedmenu
index a6b69b8..d32b47f 100755
--- a/qutebrowser/scripts/qutedmenu
+++ b/qutebrowser/scripts/qutedmenu
@@ -7,6 +7,11 @@
 #:bind o spawn --userscript /path/to/userscripts/qutedmenu open
 #:bind O spawn --userscript /path/to/userscripts/qutedmenu tab
 
+warn() {
+    echo "$1" >&2
+}
+
+
 readonly confdir=${XDG_CONFIG_HOME:-$HOME/.config}
 readonly datadir=${XDG_DATA_HOME:-$HOME/.local/share}
 readonly optsfile=$confdir/dmenu/bemenucolors
@@ -24,8 +29,21 @@ create_menu() {
         printf -- '%s\n' "$url"
     done <"$QUTE_CONFIG_DIR"/bookmarks/urls
 
+    # Saved sessions
+    if type yq >/dev/null 2>&1; then
+        while read -r url; do
+            printf -- '%s\n' "$url"
+        done < <(yq ".windows.[].tabs.[].history.[].url" "${QUTE_DATA_DIR}"/sessions/*.yml | sed -e 's/^"\(.*\)"$/\1/')
+    else
+        warn "Did not find yq executable, not searching saved sessions."
+    fi
+
     # Finally history
-    printf -- '%s\n' "$(sqlite3 -separator ' ' "$QUTE_DATA_DIR/history.sqlite" 'select title, url from CompletionHistory')"
+    if type sqlite3 >/dev/null 2>&1; then
+        printf -- '%s\n' "$(sqlite3 -separator ' ' "$QUTE_DATA_DIR/history.sqlite" 'select title, url from CompletionHistory')"
+    else
+        warn "Did not find sqlite3 executable, not searching history."
+    fi
 }
 
 get_selection() {
@@ -56,5 +74,6 @@ url=${url/*http/http}
 
 case $1 in
 open) printf '%s' "open $url" >>"$QUTE_FIFO" || qutebrowser "$url" ;;
+print) echo "$url" ;;
 tab | *) printf '%s' "open -t $url" >>"$QUTE_FIFO" || qutebrowser "$url" ;;
 esac