From mlang at blind.guru Mon Jun 1 19:26:43 2026 From: mlang at blind.guru (Mario Lang) Date: Mon, 01 Jun 2026 21:26:43 +0200 Subject: [BRLTTY] caret -- a streaming pager that uses the terminal cursor as reading position Message-ID: <87mrxe9i4s.fsf@blind.guru> 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, ?????