Trying out bat (the cat(1) alternative) for the first time, and … I dunno, the flushing behavior seems bonkers.
I assume it's because stdout and stderr end up in separate places, and maybe cat isn't innocent here either, but having the output split inside of an escape code (note the "31m") looks like there's something really wrong.
("bar" does not exist; that's on purpose to produce an error message.)
Any good cli/terminal spell checking programmes? Pass in a file, get an terminal interactive “replace this with that / ignore / add to dict.” workflow.
I remember using aspell(1) back in Ye Olden Days. Is that still the best?