I strongly disagree here.
What if the tools need to communicate?
Say, an application feeds raw frames from a video to a CLI tool via stdin. If the CLI tools receives a corrupt frame, should it terminate after having done 99% or maybe tell the provider: this is corrupt, can you provide a non-corrupt frame or do you want me to skip it, instead of just terminating, or if other non-expected event occur.
Perhaps you want the user to be able to select if they want to continue or not, despite that it might be corrupt?