tsh [-h] [shell]
tsh -h tsh tcsh
Check out the source code.
fossil clone https://thomaslevine.com/scm/tsh tsh.fossil mkdir tsh cd tsh fossil open ../tsh.fossil
Compile. This part probably works only on OpenBSD 6.1.
Ensure that dependencies are installed.
I patched script(1) so that output to the file is not buffered and so that header and footer messages are not printed. See "script.patch" for reference. Then I send the output from the resulting patched script to a FIFO, and I read from the FIFO into espeak.
I should be able to implement this without something as big as script, reading directly from the tty, but I have not figured out how to do that.
That said, it's still much better than any other screen reader that I am aware of.