[BRLTTY] caret -- a streaming pager that uses the terminal cursor as reading position
Mario Lang
mlang at blind.guru
Mon Jun 1 19:26:43 UTC 2026
Hi.
Many LLM CLIs can directly stream the output as it arrives.
Which leads to a scroll-back pattern. Start the tool, wait for it to
finish, scroll back and start reading. Thats rather awkward.
I am experimenting with a pager that uses the terminal cursor
as a reading position, much like w3m and vi -R work.
However, it supports streaming, so it will append data to the
buffer as it arrives. And it always starts with the
cursor as the beginning of the stream.
So you can do:
$ llm "Some question" | caret
and immediately start reading once output starts to arrive.
Use cursor up/down/left/right to navigate the "document".
There is a selection mechanism which works like Emacs point/mark
regions. Take a look at the README.md for details.
This is pretty much a sketch whipped together during a lazy
afternoon. But at least to me, it feels like a really useful tool.
I am considering to use it for "man" and other things as well,
i.e. set $PAGER to caret, because it basically removes
the need to jump to the top of the screen and scroll the pager
separately. Feels nice.
I *HOPE* I am not re-inventing the wheel here.
I checked if w3m and/or vim can do streaming from STDIN, and
it appears they can't. If you know any other tool that
offers this functionality, please let me know.
If you find this useful and/or have feedback, drop me a mail:
https://github.com/mlang/caret
--
CYa,
⡍⠁⠗⠊⠕
More information about the BRLTTY
mailing list