State of the Terminal

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • Windows Terminal

    The new Windows Terminal and the original Windows console host, all in the same place!

  • A quick off-the-cuff remark based solely on the title: in 2024, I think the state of the terminal has never been better, in large part to Microsoft making a high quality terminal easily available to everyone on Windows [1]

    As an application author, I love being able to assume that all major platforms have a good terminal and that my favorite terminal rendering libraries should Just Work on all of them

    [1] https://github.com/microsoft/terminal

  • TekGraphics

    Sample data for Tektronix graphics terminals and code for use with xterm

  • It would be nice if more terminals other than xterm would support Tektronix vector graphics.

    https://github.com/bennetyee/TekGraphics

    Here's an emulator for those specific real terminals: https://github.com/rricharz/Tek4010

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • Tek4010

    Free Tektronix 4010, 4013, 4014 and 4015 terminal emulator for Raspberry Pi and Ubuntu

  • It would be nice if more terminals other than xterm would support Tektronix vector graphics.

    https://github.com/bennetyee/TekGraphics

    Here's an emulator for those specific real terminals: https://github.com/rricharz/Tek4010

  • schirm

    Experimental html based terminal emulator using pyte and webkit.

  • There have been many. But none of them really successful, in the sense that they were more proof-of-concept, never fully feature-complete, or just not adopted by the community.

    See the list here: https://github.com/hoeck/schirm

    I think the most popular was TermKit (https://github.com/unconed/TermKit, https://news.ycombinator.com/item?id=30517205).

  • TermKit

    Experimental Terminal platform built on WebKit + node.js. Currently only for Mac and Windows, though the prototype works 90% in any WebKit browser.

  • There have been many. But none of them really successful, in the sense that they were more proof-of-concept, never fully feature-complete, or just not adopted by the community.

    See the list here: https://github.com/hoeck/schirm

    I think the most popular was TermKit (https://github.com/unconed/TermKit, https://news.ycombinator.com/item?id=30517205).

  • arcan

    Arcan - [Display Server, Multimedia Framework, Game Engine] -> "Desktop Engine"

  • You might be interested in Arcan desktop engine ( https://arcan-fe.com ), which as a tui api for clients. It has been used to build an interesting shell experiment: https://arcan-fe.com/2022/10/15/whipping-up-a-new-shell-lash...

  • crossterm

    Cross platform terminal library rust

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  • ratatui

    Rust library that's all about cooking up terminal user interfaces (TUIs) 👨‍🍳🐀

  • Crossterm does indeed work well under Windows Terminal. I use it indirectly via the ratatui library[1]

    [1] https://github.com/ratatui-org/ratatui

  • mintty

    The Cygwin Terminal – terminal emulator for Cygwin, MSYS, and WSL

  • I've just found that Mintty supports this

    https://github.com/mintty/mintty/wiki/CtrlSeqs#overstrike

  • ngs

    Next Generation Shell (NGS)

  • - https://ngs-lang.org/

    > Applications should neither be concerned with what color codes the output device can render, nor should the terminal itself have to support hundreds of emulation targets.

    If you have colour codes (et al) sent out-of-band then you need a new kind of terminal emulator which the application then also needs to support. So you do effectively create yet another standard.

    Whereas the status quo, as much as it sucks, is largely just vt100 with a few extra luxuries, some of which are as old as xterm. We aren't really talking about having to deal with hundreds of emulation targets, nor even more than one, in most cases.

    Where things get a little more challenging is if you want stuff like squiggly underlines or inlined images. There is the beginnings of some de facto standardisation there but it's still a long way from being standardised.

  • murex

    A smarter shell and scripting environment with advanced features designed for usability, safety and productivity (eg smarter DevOps tooling)

  • elvish

    Powerful scripting language & Versatile interactive shell

  • lipgloss

    Style definitions for nice terminal layouts 👄

  • "\033[31;1;4munderlines\033[0m" is (again) no worse than a stream of vertices or a stream of object code. Everything is a stream of bytes (well, a stream of bits anyway). Do you want CSS? Lipgloss is not too far off [0].

    I read your objection basically as "escape sequences and control codes are noisy garbage"; are you saying something more like "the functionality you can achieve with escape sequences and control codes is fundamentally limited"? If that's the case, I don't see how, especially in the context of a character-based display.

    [0]: https://github.com/charmbracelet/lipgloss?tab=readme-ov-file...

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Mnemos moment: Search for a Shell

    4 projects | /r/rust | 10 Jul 2023
  • Canonical way to handle concurrent events with crates that don't model that use case

    1 project | /r/rust | 21 May 2023
  • [2022 Day 14 (Part 1/2) [Rust] Made a small toy

    2 projects | /r/adventofcode | 16 May 2023
  • Life is much simpler with bash

    4 projects | /r/ProgrammerHumor | 26 Nov 2022
  • Nushell: Introduction to a New Kind of Shell

    9 projects | news.ycombinator.com | 1 Nov 2022