Generated by GPT-5-mini| tin (newsreader) | |
|---|---|
| Name | tin |
| Title | tin (newsreader) |
| Developer | Roderick Wiley; later contributors |
| Released | 1991 |
| Operating system | Unix-like, Linux, BSD, Solaris, macOS |
| Platform | Terminal |
| Genre | Newsreader, Usenet client |
| License | GPL |
tin (newsreader)
tin is a threaded text-based newsreader originally developed for reading Usenet newsgroups on Unix-like systems. The program emphasizes efficiency, thread-oriented presentation, and keyboard-driven navigation for experienced users of terminal emulators and shell environments. tin has been maintained and adapted by a community of contributors to support modern POSIX systems and a variety of mail and news infrastructures.
tin was created in 1991 by Roderick Wiley as an alternative to contemporaneous rn (newsreader) and trn clients, aiming to improve threaded display and article handling on BSD and Linux systems. Early development occurred alongside work on Usenet infrastructure such as NNTP servers and the consolidation of feeds at Unix sites and university computer labs. As Internet usage expanded in the 1990s, tin competed with graphical and command-line readers including slrn, Gnus, and Pan, attracting users from academic networks, research institutions, and enthusiasts of free software projects. Over subsequent decades contributors ported tin to Solaris, IRIX, HP-UX, and later supported portability to macOS via POSIX compatibility layers.
tin implements threaded conversation viewing akin to models popularized by Richard Stallman's work on Gnus and the threaded paradigms in RFC 1036 Usenet message formats. It supports offline reading, article scoring inspired by techniques used in Procmail filtering, and article threading compatible with Message-ID and References headers. tin handles multiple server connections and local spool files used by INN and other NNTP servers, and integrates with mail transport agents such as sendmail and Exim for posting. Features include customizable scoring rules comparable to those in Folksy and slrn, selective download similar to Mutt's fetch techniques, and support for MIME decoding parallel to libraries utilized by Alpine and Pine.
The tin interface is a keyboard-oriented curses-based layout resembling interfaces from ncurSES and termcap-driven utilities such as vi and emacs modes. Users navigate threaded lists with keystrokes similar to commands in mailx and can fold or expand threads like in trn. Article viewing supports inline quoting conventions like those used in RFC 822 and MIME parts are displayed with built-in or external viewers similar to integrations used by Lynx or w3m. tin's operation model aligns with longstanding Unix philosophies manifested in tools like grep, awk, and sed by favoring composability and scripting through environment variables and command-line options used in bash and tcsh sessions.
tin offers a rich configuration system using dotfiles and runtime menus, paralleling personalization approaches in Emacs and Vim. Users create .tinrc-style files to set scoring, key bindings, and server definitions, with support for per-newsgroup options reminiscent of Procmail and Maildrop filter syntaxes. Customization permits integration with external tools for MIME decoding (as in munpack and uudeview), image viewing via ImageMagick or feh, and text processing through iconv for character-set conversions used across OpenSSH and GNU utilities. The configuration framework supports macros and scripts that echo extensibility found in Autoconf-configured packages and Makefile-driven builds.
tin is written in C with conditional compilation to accommodate POSIX APIs, making it portable across Linux, FreeBSD, NetBSD, OpenBSD, Solaris, AIX, and macOS systems. Binaries and source distributions have been included in various Linux distributions and BSD ports collections, and packaging efforts mirror those for GNU and Debian projects. Portability concerns addressed in tin include terminal capability handling like that in termcap and terminfo, line-ending conventions seen in ASCII and UTF-8 conversions, and build systems similar to those used by Autotools and CMake-based projects.
Development of tin transitioned from a single-author model to a distributed contributor base, with patches and maintenance coordinated through mailing lists and version control systems much like those used by Git and earlier CVS repositories. The community includes volunteers and maintainers who track issues, backport fixes, and produce releases in coordination with package maintainers for Debian, Gentoo, and BSD ports. Documentation and user support have been provided via Usenet newsgroups such as comp.mail.misc and news.software.readers, web archives maintained by Internet Archive and personal sites, and tutorials referencing conventions from POSIX and IEEE standards.
tin gained recognition among system administrators, academics, and veteran Internet users for its efficiency and thread-centric presentation, often recommended in collections of Unix utilities alongside Top, screen, and tmux. Critics have noted its steeper learning curve compared with graphical readers like Mozilla Thunderbird and Pan, but proponents cite its scripting-friendly design and low resource footprint, traits valued in server-room contexts and low-bandwidth environments. tin influenced subsequent text-based readers and contributed to discourse about user interface design in communications tools, with its design principles echoed in modern terminal applications and archived discussions in RFC repositories and historical retrospectives of Usenet culture.
Category:Usenet clients Category:Free software programmed in C Category:Unix software