anchor.diff:      (set-current-buffer buffer)
       buffer))
   
  +(define-command install-os-package ()
  +  "Install select packages."
  +  ;; TODO: Allow profile creation.  Need multi-source support for that?
  +  (let* ((profile (prompt-minibuffer
  +                   :suggestion-function (os-profile-suggestion-filter)
  +                   :input-prompt "Target profile"))
  +         (packages (prompt-minibuffer
  +                    :suggestion-function (os-package-suggestion-filter)
  +                    :input-prompt "Install OS package(s)"
  +                    :multi-selection-p t)))
  +    (operate-os-package "Installing packages..." #'ospama:install profile packages)))
  +
   (define-command uninstall-os-package ()
     "Uninstall select packages."
     (let* ((profile (prompt-minibuffer
  
positive.code:          (content
            (markup:markup
             (:style (style buffer))
             (:h1 "Installing packages...")))
           (insert-content (ps:ps (setf (ps:@ document body |innerHTML|)
                                        (ps:lisp content)))))
      (ffi-buffer-evaluate-javascript-async buffer insert-content)
      (chanl:pexec ()
        (let ((process-info (ospama:install packages profile)))
          (format-command-stream process-info
                                 (lambda (s)
                                   (ffi-buffer-evaluate-javascript-async
  
negative.code:         until (eq object :eof)
          do (funcall callback object)))
  
  (defun operate-os-package (title command profile packages)
    (let* (;; TODO: Check for running process.
           (buffer (or (find-buffer 'os-package-manager-mode)
                       (nyxt/os-package-manager-mode:os-package-manager-mode
                        :activate t
  