tin is my favorite text mode Usenet reader. Although tin works great from a local shell of a NNTP host, it tends to run extremely poorly when run from a BSD or Windows (Cygwin) host that remotely connects to a NNTP host. Ergo, one needs to run tin from a shell local to one's NNTP host.

Running tin from a shell local to a NNTP host provides benefits in addition to markedly improving tin's performance. It also creates and maintains a single tin state, enabling one to keep one's place regardless of the host used during the last access. In other words, threads already marked as read remain marked as read regardless of where one reads them.

We can use ssh as a local shell. Storing a copy of a public ssh key on our PC enables us to enjoy a seamless experience where simply double clicking on an icon drops us into tin without entering a password each time. (For security's sake, only place ssh keys on PCs that are under your own physical control at all times.) Run ssh-keygen to generate a public/private key pair.

$ ssh-keygen -t rsa
Generating public/private rsa key pair.

Calling ssh from within cmd.exe causes BSD to revert to an unknown terminal type because BSD fails to recognize cygwin as a terminal. This in turn causes insurmountable problems with tin's navigation and visualization. We need to tell Enter a export TERM=linux-m in home/user/.bashrc after the non interactive bit.

# If not running interactively, don't do anything
[[ "$-" != *i* ]] && return

export TERM=linux-m