What if we want to capture standard (and/or error) output in order to ignore it or post-process it ? It’s very simple, a little search and we’re good: (let ((*standard-output* (make-string-output-stream)) (*error-output* (make-string-output-stream))) (apply function args) ;; anything (setf standard-output (get-output-stream-string *standard-output*))) (print-results standard-output)) and now in print-results we can print to standard output without being intercepted (and in our case, we’...