anchor.diff:  (push 'keepassxc-interface *interfaces*)
   
   (defmethod list-passwords ((password-interface keepassxc-interface))
  -  (let* ((st (make-string-input-stream (master-password password-interface)))
  -         (output (execute password-interface (list "ls" (password-file password-interface))
  -                          :input st :output '(:string :stripped t))))
  -    (remove "Recycle Bin/" (sera:lines output) :test #'equal)))
  +  (or (entries-cache password-interface)
  +      (let* ((st (make-string-input-stream (master-password password-interface)))
  +             (output (execute password-interface (list "ls" (password-file password-interface))
  +                       :input st :output '(:string :stripped t))))
  +        (setf (entries-cache password-interface)
  +              (remove "Recycle Bin/" (sera:lines output) :test #'equal)))))
   
   (defmethod clip-password ((password-interface keepassxc-interface) &key password-name service)
     (declare (ignore service))
  
positive.code: (defmethod save-password ((password-interface keepassxc-interface)
                            &key password-name username password service)
    (declare (ignore service))
    (with-input-from-string (st (format nil "~a~C~a"
                                        (master-password password-interface)
                                        #\newline password))
  
negative.code: (defmethod password-correct-p ((password-interface keepassxc-interface))
    (when (master-password password-interface)
      (handler-case
          (list-passwords password-interface)
        (uiop/run-program:subprocess-error ()
          nil))))
  