It is common programming to write produced data to stdout while error and status messags go to stderr. That way, stdout can be used directly: for example redirecting to a file, or piped to another program. For example, to "learn" an IR signal and decode it on the fly,
./broadlink_cli --device @device --learn --durations | irptransmogrifier decode --input -
Presently, there are several commands like print("Learning...") that soil the output.
Suggestion: change to writing on stderr. (That would also make the --learnfile option (more or less) superflous).