           (straight--register-recipe recipe))))))
 
 ;;;###autoload
+(defun straight-reload-package (package &optional interactive)
+  (interactive (list (straight--select-package "Reload package")
+                     'interactive))
+  (straight-use-package (gethash package straight--recipe-cache)
+                        interactive 'straight-style nil 'reload))
+
+;;;###autoload
+(defun straight-reload-all ()
+  (straight--for-all-packages #'straight-reload-package))
+
+;;;###autoload
 (defun straight-update-package (package)
-  (interactive (list (completing-read
-                      "Update package: "
-                      (hash-table-keys straight--recipe-cache)
-                      (lambda (elt) t)
-                      'require-match)))
+  (interactive (list (straight--select-package "Update package")))
   (straight--with-progress (format "Updating package %S" package)
     (straight--update-package (gethash package straight--recipe-cache))))
 
 ;;;###autoload
 (defun straight-update-all ()
   (interactive)
-  (straight--map-repos
-   (lambda (recipe)
-     (straight--with-plist recipe
-         (package)
-       (straight-update-package
-        package)))))
+  (straight--for-all-packages #'straight-update-package))
 
 ;;;###autoload
 (defun straight-validate-package (package &optional nomsg)
-  (interactive (list (completing-read
-                      "Update package: "
-                      (hash-table-keys straight--recipe-cache)
-                      (lambda (elt) t)
-                      'require-match)))
+  (interactive (list (straight--select-package "Validate package")))
   (straight--with-plist (gethash package straight--recipe-cache)
       (local-repo fetcher repo url)
     (let ((default-directory (straight--dir "repos" local-repo)))

(defun straight-use-package (melpa-style-recipe
                             &optional
                             interactive straight-style
                             parent-recipe)
  (interactive (list (straight-get-elpa-recipe) t))
  (let ((recipe (if straight-style melpa-style-recipe
                  (straight--convert-recipe melpa-style-recipe))))

              (straight-use-package (straight--get-recipe dependency)
                                    interactive 'straight-style
                                    recipe))
            (when (and interactive (not reload))
              (message
               (concat "If you want to keep %s, put "
                       "(straight-use-package %s%S) "
