frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

The terminal of the future

https://jyn.dev/the-terminal-of-the-future
73•miguelraz•3h ago

Comments

wredcoll•2h ago
The terminal of the future is called a web browser.
add-sub-mul-div•1h ago
That would be quite an own goal, to invite an extra middleman into the mix. Especially when so many people will go the path of least resistance and use a tech giant product as that middleman.
wredcoll•1h ago
I mean, what is a terminal emulator? It's a program that displays the output of other programs "inside" it.

Terminal emulators display grids of characters using all sorts of horrifying protocols.

Web browsers display html generated by other programs.

unixplumber•33m ago
> Terminal emulators display grids of characters using all sorts of horrifying protocols.

What sort of "horrifying protocols"? The entire VT220 state machine diagram can be printed on a single letter- or A4-sized sheet of paper. That's the complete "protocol" of that particular terminal (and of any emulator of it). Implementing the VT220 with a few small extensions (e.g., 256 colors or 24-bit colors) wouldn't be too onerous. I implemented such a parser myself in probably a few hundred lines of code, plus a bit more to do all of the rendering (drawing glyphs directly to a bitmapped display, with no libraries) and handling user input from a keyboard. You'd have a difficult time properly parsing and rendering a significant subset of HTML in less than a few _thousand_ lines of code.

Edit to add: terminal emulators often implement other terminals like VT420, but the VT220 is enough for the vast majority of terminal needs.

shirro•1h ago
It could have been. The platform got taken over by a very different culture and has tended to serve different purposes.

The web solves problems that are almost impossible to properly solve with a terminal, particularly with rendering of more complicated languages and display and interaction with sophisticated visualisations.

Pushing the terminal further while maintaining compatibility, performance and avoiding a terminal war with incompatible protocols is going to be a struggle.

hastamelo•1h ago
opened on the chatgpt page
mrandish•22m ago
Yes, this was my first thought too. I haven't used a hardware text terminal since the 80s so maybe I don't get where the TFA is coming from? It starts out by stating "This post is part 6 of a multi-part series called 'the computer of the next 200 years'". Given that context, why is the focus on the evolution of 1980s VT100-type protocols? I'm at home and there are over a half dozen different devices within 25 ft which come standard with an HTML browser. Sure, modern browsers have some incompatibilities at the edges but if you're in need of a multi-decade, platform agnostic, lingua franca then W3C minimal baseline HTML/CSS + ECMAscript seems like the obvious winner (with no viable second place really).

Don't get me wrong, I'd be quite interested in a vintage computing discussion on the evolution of VT-100/220 etc terminal protocols. There were some interesting things done into the 90s. That's actually what I clicked in expecting. Of course, those were all supplanted by either XWindows (which I never got to use much) or eventually HTML/CSS. And if we're talking more broadly about structured page description languages, there's no shortage of alternatives from NAPLPS to Display Postscript.

xixixao•1h ago
This might be useful (maybe) to the author: I am in a group (probably small, but I don’t think negligeble) that gave up on Warp because it doesn’t support standard or custom command completions [0]

Some lesson must surely be drawn from this about incremental adoption.

[0] https://github.com/warpdotdev/Warp/issues/1811

jynelson•1h ago
yeah! so i somehow forgot to include this in the post, but one of the thing i would want as part of this is tab complete that integrates with the shell, essentially it would make an RPC call (in the step 3 sense). there’s things that work like this already today, they’re just extremely cursed ^^ but that’s never stopped me before. https://github.com/Aloxaf/fzf-tab?tab=readme-ov-file#differe...
zadjii•1h ago
Y'know, I spent a week investigating doing something similar with the Windows Terminal about 18 months ago: https://github.com/microsoft/terminal/issues/16495#issuecomm...

There's even more under the "Updates archive" expando in that post.

It was a pretty compelling prototype. But after I played with Polyglot Notebooks[1], I pretty much just abandoned that experiment. There's a _lot_ of UI that needs to be written to build a notebook-like experience. But the Polyglot notebooks took care of that by just converting the commandline backend to a jupyter kernel.

I've been writing more and more script-like experiments in those ever since. Just seems so much more natural to have a big-ol doc full of notes, that just so happens to also have play buttons to Do The Thing.

[1]: https://marketplace.visualstudio.com/items?itemName=ms-dotne...

shellkr•1h ago
This I am afraid does not feel as the right thing to do. I think the KISS-principle is a good standard to follow and while terminals have to do more than one thing, it should not do everything. Complexity leads to instability. Terminals has to be nimble and not clumsy behemoths like web browsers.
Etheryte•1h ago
Terminals are far from simple, that's the whole problem. We carry the weight of decades of technical constraints and arbitrary decisions on our shoulders every time we fire up a terminal emulator.
shellkr•32m ago
I am all for removing old junk but not that it should be replaced with newer junk.
zazaulola•1h ago
What do you mean by “terminal”? Perhaps you are referring to something like a VT100.

https://commons.wikimedia.org/wiki/File:DEC_VT100_terminal.j...

I may disappoint you with the fact that IBM PC-compatible computers have replaced devices of that class. We can only observe certain terminal emulators in some operating systems. There have been many attempts to expand the functionality of these emulators. However, most features beyond the capabilities of VT100 have not caught on (except UTF-8 support). I do not believe that anything will change in the foreseeable future.

cpendery•1h ago
interesting post! shell integration has gotten a lot better since the new ConPTY on windows doesn’t strip OSC sequences & send them ahead of the text
skydhash•1h ago
I read the whole thing and at first glance, it seems like a whole NIH list of wishes. We already have alternatives to the terminal, but the article have no mentions of them:

- Emacs (inherited from lisp machines?). A VM which is powered by lisp. The latter make it easy to redefine function, and commands are just annotated functions. As for output, we have the buffer, which can be displayed in windows, which are arranged in a tiling manner in a frame. And you can have several frames. As the buffer in a window as the same grid like basis as the terminal emulator, we can use cli as is, including like a terminal emulator (vterm, eat, ansi-term,...). You can eschew the terminal flow and use the REPL flow instead (shell-mode, eshell,...). There's support for graphics, but not a full 2d context.

- Acme: Kinda similar to emacs, but the whole thing is mostly about interactive text. Meaning any text can be a command. We also have the tiling/and stacking windows things that displays those texts.

I would add Smalltalk to that, but it's more of an IDE than a full computing environment. But to extend it to the latter would still be a lower effort than what is described in the article.

jynelson•1h ago
i would describe the main idea of the post as opening up the data model of the terminal. the list of wishes are an example of things you can build once you've done that, not the primary reason that opening the data model is useful.
spudlyo•8m ago
Emacs also has Org-mode and org-babel, which can work a lot like a Jupyter notebook, and can even talk to jupyter kernels. I do a lot in Emacs, especially now that I'm comfortable with GPTel.

I open a poorly aligned, pixelated PDF scan of a 100+ year old Latin textbook in Emacs, mark a start page, end page, and Emacs lisp code shells out to qpdf to create a new smaller pdf from my page range to /tmp, and then adds the resulting PDF to my LLM context. Then my code calls gptel-request with a custom prompt and I get an async elisp callback with the OCR'd PDF now in Emacs' org-mode format, complete with italics, bold, nicely formatted tables, and with all the right macrons over the vowels, which I toss into a scratch buffer. Now that the chapter from my textbook in a markup format, I can select a word, immediately pop up a Latin-to-English dictionary entry or select a whole sentence to hand to an LLM to analyze with a full grammatical breakdown while I'm doing my homework exercises. This 1970s vintage text editor is also a futuristic language learning platform, it blows my mind.

thatcherc•1h ago
I appreciated the Pluto.jl mention! Going from Pluto notebooks that understand data flow to Jupyter notebooks where you have to tell the computer which order to run the cells in is always baffling to me. Why doesn't Jupyter know the run order and dependencies already? The way Pluto handles dependencies between code cells is really just so nice.
walterlw•1h ago
If you haven't yet do check out Marimo

[0] https://marimo.io/

wrs•51m ago
Re "stage 2: persistent sessions", iTerm2 already does this. The PTYs are owned by background processes independent of the GUI application. So iTerm2 can upgrade the application without interrupting the running terminal sessions.
jynelson•41m ago
this is really cool omg! i didn't know that, i'll do some research.

one of the strange things to me about the terminal landscape is how little knowledge sharing there is compared to other domains i'm familiar with. iTerm has a bunch of things no one else has; kitty influenced wezterm but otherwise no one else seems to have valued reflection; there's a whole bunch of extensions to ANSI escapes but most of them are non-standard and mutually incompatible. it's weird. if i compare to something like build systems, there's a lot more cross-pollination of ideas there.

joshu•37m ago
lots of terminals these days support imgcat and i rely on it heavily: https://iterm2.com/documentation-images.html
thomasahle•32m ago
I expected this to be about some "AI first" terminal. But the article doesn't mention AI at all, for better or worse...
cb321•22m ago
Any article about this topic that does not at least mention https://arcan-fe.com/about/ feels incomplete. (Also, Arcan is already available.)
jynelson•11m ago
whoa this looks fascinating, i've never heard of it before! thank you for the link :)
imiric•21m ago
I dread reading these articles written by people who perceive the command-line interface / terminal / shell to be this archaic system, and propose "modernizing" it by cramming whatever UI/UX they're most familiar with.

The last thing a command-line terminal needs is a Jupyter Notebook-like UI. It doesn't need to render HTML; it doesn't need rerun and undo/redo; and it definitely doesn't need structured RPC. Many of the mentioned features are already supported by various tooling, yet the author dismisses them because... bugs?

Yes, terminal emulators and shells have a lot of historical baggage that we may consider weird or clunky by today's standards. But many design decisions made 40 years ago are directly related to why some software has stood the test of time, and why we still use it today.

"Modernizing" this usually comes with very high maintenance or compatibility costs. So, let's say you want structured data exchange between programs ala PowerShell, Nushell, etc. Great, now you just need to build and maintain shims for every tool in existence, force your users to use your own custom tools that support these features, and ensure that everything interoperates smoothly. So now instead of creating an open standard that everyone can build within and around of, you've built a closed ecosystem that has to be maintained centrally. And yet the "archaic" unstructured data approach is what allows me to write a script with tools written decades ago interoperating seamlessly with tools written today, without either tool needing to directly support the other, or the shell and terminal needing to be aware of this. It all just works.

I'm not saying that this ecosystem couldn't be improved. But it needs broad community discussion, planning, and support, and not a brain dump from someone who feels inspired by Jupyter Notebooks.

jynelson•9m ago
> Great, now you just need to build and maintain shims for every tool in existence, force your users to use your own custom tools that support these features, and ensure that everything interoperates smoothly.

Yes, this is the work. https://becca.ooo/blog/vertical-integration/

kloud•15m ago
Great thought provoking article! Indeed, typing commands on the command line feels primitive like typing code into interactive interpreters (python, irb, etc.). Those are primitive REPLs.

With lisp REPLs one types in the IDE/editor having full highlighting, completions and code intelligence. Then code is sent to REPL process for evaluation. For example Clojure has great REPL tooling.

A variation of REPL is the REBL (Read-Eval-Browse Loop) concept, where instead of the output being simply printed as text, it is treated as values that can be visualized and browsed using graphical viewers.

Existing editors can already cover the runbooks use case pretty well. Those can be just markdown files with key bindings to send code blocks to shell process for evaluation. It works great with instructions in markdown READMEs.

The main missing feature editor-centric command like workflow I can imagine is the history search. It could be interesting to see if it would be enough to add shell history as a completion source. Or perhaps have shell LSP server to provide history and other completions that could work across editors?

ellieh•7m ago
> It could be interesting to see if it would be enough to add shell history as a completion source.

Atuin runbooks (mentioned in the article) do this! Pretty much anywhere we allow users to start typing a shell command we feed shell history into the editor

art-w•8m ago
Two interesting projects in that space:

- https://arcan-fe.com/ which introduces a new protocol for TUI applications, which leads to better interactions across the different layers (hard to describe! but the website has nice videos and explanations of what is made possible)

- Shelter, a shell with reproducible operations and git-like branches of the filesystem https://patrick.sirref.org/shelter/index.xml

X5.1 solar flare, G4 geomagnetic storm watch

https://www.spaceweatherlive.com/en/news/view/593/20251111-x5-1-solar-flare-g4-geomagnetic-storm-...
91•sva_•2h ago•25 comments

I didn't reverse-engineer the protocol for my blood pressure monitor in 24 hours

https://james.belchamber.com/articles/blood-pressure-monitor-reverse-engineering/
59•jamesbelchamber•2h ago•27 comments

Laptops adorned with creative stickers

https://stickertop.art/main/
84•z303•1w ago•74 comments

A modern 35mm film scanner for home

https://www.soke.engineering/
101•QiuChuck•3h ago•81 comments

Four strange places to see London's Roman Wall

https://diamondgeezer.blogspot.com/2025/11/odd-places-to-see-londons-roman-wall.html
25•zeristor•1h ago•6 comments

The terminal of the future

https://jyn.dev/the-terminal-of-the-future
76•miguelraz•3h ago•33 comments

A catalog of side effects

https://bernsteinbear.com/blog/compiler-effects/
63•speckx•3h ago•5 comments

Collaboration sucks

https://newsletter.posthog.com/p/collaboration-sucks
244•Kinrany•3h ago•146 comments

.NET MAUI Is Coming to Linux and the Browser, Powered by Avalonia

https://avaloniaui.net/blog/net-maui-is-coming-to-linux-and-the-browser-powered-by-avalonia
7•vyrotek•45m ago•1 comments

Scaling HNSWs

https://antirez.com/news/156
134•cyndunlop•9h ago•28 comments

Meticulous (YC S21) is hiring to redefine software dev

https://jobs.ashbyhq.com/meticulous/3197ae3d-bb26-4750-9ed7-b830f640515e
1•Gabriel_h•2h ago

The history of Casio watches

https://www.casio.com/us/watches/50th/Heritage/1970s/
129•qainsights•3d ago•76 comments

Pikaday: A friendly guide to front-end date pickers

https://pikaday.dbushell.com
106•mnemonet•8h ago•53 comments

My fan worked fine, so I gave it WiFi

https://ellis.codes/blog/my-fan-worked-fine-so-i-gave-it-wi-fi/
97•woolywonder•5d ago•38 comments

Terminal Latency on Windows (2024)

https://chadaustin.me/2024/02/windows-terminal-latency/
77•bariumbitmap•5h ago•65 comments

Adk-go: code-first Go toolkit for building, evaluating, and deploying AI agents

https://github.com/google/adk-go
33•maxloh•3h ago•7 comments

FFmpeg to Google: Fund us or stop sending bugs

https://thenewstack.io/ffmpeg-to-google-fund-us-or-stop-sending-bugs/
385•CrankyBear•5h ago•303 comments

We ran over 600 image generations to compare AI image models

https://latenitesoft.com/blog/evaluating-frontier-ai-image-generation-models/
90•kalleboo•6h ago•57 comments

AV1 vs. H.264: What Video Codec to Choose for Your App?

https://www.red5.net/blog/av1-vs-h264/
4•mondainx•1w ago•1 comments

Xortran - A PDP-11 Neural Network With Backpropagation in Fortran IV

https://github.com/dbrll/Xortran
23•rahen•3h ago•4 comments

Cache-friendly, low-memory Lanczos algorithm in Rust

https://lukefleed.xyz/posts/cache-friendly-low-memory-lanczos/
99•lukefleed•6h ago•17 comments

iPhone Pocket

https://www.apple.com/newsroom/2025/11/introducing-iphone-pocket-a-beautiful-way-to-wear-and-carr...
402•soheilpro•13h ago•1062 comments

The R47: A new physical RPN calculator

https://www.swissmicros.com/product/model-r47
162•dm319•4d ago•88 comments

Agentic pelican on a bicycle

https://www.robert-glaser.de/agentic-pelican-on-a-bicycle/
27•todsacerdoti•3h ago•18 comments

How I fell in love with Erlang

https://boragonul.com/post/falling-in-love-with-erlang
358•asabil•1w ago•209 comments

Étude in C minor (2020)

https://zserge.com/posts/etude-in-c/
49•etrvic•1w ago•9 comments

The Department of War just shot the accountants and opted for speed

https://steveblank.com/2025/11/11/the-department-of-war-just-shot-the-accountants-and-opted-for-s...
62•ridruejo•9h ago•120 comments

Show HN: Cactoide – Federated RSVP Platform

https://cactoide.org/
49•orbanlevi•6h ago•21 comments

Array-programming the Mandelbrot set

https://jcmorrow.com/mandelbrot/
37•jcmorrow•4d ago•5 comments

Vertical integration is the only thing that matters

https://becca.ooo/blog/vertical-integration/
21•miguelraz•3h ago•14 comments