anchor.diff:        (let ((process-info (ospama:install packages profile)))
           (format-command-stream process-info
                                  (lambda (s)
  -                                 ;; TODO: Guard against race condition.
                                    (ffi-buffer-evaluate-javascript-async
                                     buffer
                                     (ps:ps (ps:chain document
  
positive.code:          (profile (prompt-minibuffer
                     :suggestion-function (os-profile-suggestion-filter)
                     :input-prompt "Target profile"))
           (buffer (or (find-buffer 'os-package-manager-mode)
                       (nyxt/os-package-manager-mode:os-package-manager-mode
                        :activate t
                        :buffer (make-internal-buffer :title "*OS packages*")))) ; TODO: Use different buffer?
           (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)
  
negative.code:                                                    ;; function and add support
                                                     ;; for special characters,
                                                     ;; e.g. progress bars.
                                                     (write (ps:lisp (markup:markup
                                                                      (:code (str:replace-all " " " " s))
                                                                      (:br)))))))))))
      (set-current-buffer buffer)
      buffer))
  
  ;; TODO: Parse Texinfo for Guix descriptions.
  ;; TODO: Add commands:
  ;; - uninstall
  ;; - find-files (open in editor, with select program) -- leverage file-manager
  ;; - show-deps, show-reverse-deps (when minibuffer has actions)
  