anchor.diff:  
   (define-command bookmark-hint ()
     "Show link hints on screen, and allow the user to bookmark one"
  -  (with-result* ((links-json (add-element-hints))
  -                 (selected-hint (read-from-minibuffer
  -                                 (make-minibuffer
  -                                  :input-prompt "Bookmark hint"
  -                                  :cleanup-function #'remove-element-hints))))
  -    (let* ((link-hints (cl-json:decode-json-from-string links-json))
  -           (selected-link (cadr (assoc selected-hint link-hints :test #'equalp))))
  -      (when selected-link
  -        (bookmark-add selected-link)))))
  +  (with-result* ((elements-json (add-element-hints))
  +                 (result (read-from-minibuffer
  +                          (make-minibuffer
  +                           :input-prompt "Bookmark hint"
  +                           :history nil
  +                           :completion-function
  +                           (hint-completion-filter (elements-from-json elements-json))
  +                           :cleanup-function
  +                           (lambda ()
  +                             (remove-element-hints :buffer (current-buffer))))))
  +                 (tags (read-from-minibuffer
  +                        (make-minibuffer
  +                         :input-prompt "Space-separated tag(s)"
  +                         :multi-selection-p t
  +                         :completion-function (tag-completion-filter
  +                                               :with-empty-tag t)
  +                         :empty-complete-immediate t))))
  +    (when result
  +      (bookmark-add (url result) :tags tags))))
   
   (define-command set-url-from-bookmark ()
     "Set the URL for the current buffer from a bookmark."
  
positive.code:                                                      :with-empty-tag t
                                                       :extra-tags (make-tags (extract-keywords body 5)))
                                 :empty-complete-immediate t))))
            (when tags
              ;; Turn tags with spaces into multiple tags.
              (setf tags (alex:flatten
                          (mapcar (lambda (tag)
                                    (str:split " " tag :omit-nulls t))
                                  tags))))
            (bookmark-add (url buffer)
                          :title (title buffer)
                          :tags tags)
  
negative.code: 
  (define-command bookmark-url ()
    "Allow the user to bookmark a URL via minibuffer input."
    (with-result* ((url (read-from-minibuffer
                         (make-minibuffer
                          :input-prompt "Bookmark URL")))
                   (tags (read-from-minibuffer
                          (make-minibuffer
                           :input-prompt "Space-separated tag(s)"
                           :multi-selection-p t
                           :completion-function (tag-completion-filter
                                                 :with-empty-tag t)
                           :empty-complete-immediate t))))
  
      (bookmark-add url :tags tags)))
  
  (define-command bookmark-delete ()
    "Delete bookmark(s)."
  