Hacker Newsnew | past | comments | ask | show | jobs | submit | btbuildem's commentslogin

> Humans must remain fully responsible and accountable for consequences arising from the use of AI systems

But, but... but this is the key selling points for all the corpo ghouls and sv lunatics! Abdication of responsibility in pursuit of profit is the holy grail here.


you dont need to delegate to an llm for that though. we already have constructs that negate accountability

It's not just the internet -- it's everything in western society, as far as the eye can see.

This is what happens when you extract value -- anything of value is extracted, leaving behind things devoid of value.

You can hoard "wealth" all you want, but the consequence is that there is nothing left that is worth buying.


This is the intended end result of capitalism, maybe its time we all gave socialism another chance?

How about no.

I've been watching the space as well, waiting for the day I can stop fiddling with widgets and just tell the damn thing about the shapes I want and the ways in which they will move. Alas, we're far from that yet.

> That's getting solved already in china leading labs

Care to drop a bit of info as a follow up to this claim? Curious!


> Nor do I have to write documentation for users who don’t exist

Brother mine, you will learn that the future you is ignorant of all the things, and every bit of documentation goes a long way


This in essence is what allows one to use any model with CC -- including local.

I know. I'm struggling to understand how this is a github repo/HN article. I've been using claude-code with a llama.cpp server and a dummy API key, and all that is required is to define 2 environmental variables to point claude at the local endpoint. Am I missing something?

The more you look into these trendy TUIs the worse it gets -- it's like the developers took the accumulation of all the worst practices since the dawn of programming, and wrapped it all into one unwieldy, overweight, under-performant gelatinous blob that threatens to collapse under its own weight.

They’re not terminal UIs.

They’re attempts at pretending to have Windows (etc.) GUIs in a terminal.

Same stuff people made for DOS when Windows wasn’t common or good enough yet.

I’m not surprised they’re a disaster. Or built without understanding the abilities of the terminal they’re running on.


If you don't want people calling these apps TUIs, what would you prefer people call them? And what does the term TUI refer to, if not this?

ASCII art (or ASCII art interface)

Text User Interface.

But what _is_ a "Text User Interface"? Google Images just returns what is being discussed here: "GUIs" that run in some kind of text mode. And to me, that's also what a TUI is.

A more textually oriented environment (like a normal Unix shell) is, in my experience, usually referred to as a CLI: Command Line Interface.

I did find an interesting hybrid in the Pi coding agent: it seems to leverage the normal terminal scrollback, while still enhancing it with things like transient input fields and status lines, so that it can display those without cluttering scrollback.


That's pretty much the distinction. A CLI is stream-oriented, may accept user input from standard in and/or write to standard out with buffered I/O; a TUI is full-screen, interactive (responds immediately to keystrokes), and uses text characters to represent visual elements.

And that’s where my comment came in.

I see TUI as a more general term: a program based in a terminal.

In my mind it does not imply it has to be an ASCII GUI style thing and not just a stream oriented non-interactive program.


>They’re not terminal UIs. They’re attempts at pretending to have Windows (etc.) GUIs in a terminal.

That's what a terminal UI is, and has been since Emacs was a thing.


> They’re not terminal UIs.

Actually, I think that is close to a good name for them: Terminal-based GUIs.

Some are pretty useful, for instance I like lazygit as a simple dashboard/panel for a small repo (or when making small changes to a larger one), some make me wonder what those who made them were smoking!

The less silly ones are handy when you are tinkering with a far away machine and want something a little more interactive than CLI commands and stuff connected by pipes and scripts but don't want to deal with the latency of GUI remoting. Some, though, are so badly thought out that they are slower than using a browser over long-distance X…


There are useful ones. Something like Midnight Commander can be way better than lots of manual copy and move commands. The kernel config one is way nicer than the stream style kernel configuration tool. Some of these newer ones are starting to feel more like “text mode bling” than useful.

My objection to TUI is I don’t think it’s clear enough for what’s happening here. I think you could easily argue that applies to most readline style stream CLI programs.

Would you call a fully 3D UI in VR, not a planar in the VR world but true 3D, a GUI? It is graphical by definition. But if you talked to someone about a GUI that’s not what they’d think you’re talking about without additional context.

That’s my objection. I think TUI implies way less than what these programs are doing. Yeah it can describe them but I don’t think it should be the word for them.



the first and second are graphics terminals which is muddling up the definition. of course they were called terminals back then until we decided to make a distinction. what they are called is not the point. the point is the distinction. for today's discussion terminal means text without graphics, as shown in the third video.

the real question is why are we still using text terminals?

the short answer is that on remote connections graphics is still a performance issue. in fact the popular solution to making remote graphics performant is webbrowsers. they are the graphical terminals of today.

if i want to build a graphical interface to a remote service, then i build a webinterface.

locally, the answer is historical tools, and that text interfaces are easier to develop and still more efficient to use. but not easier. especially commandline tools without an actual visual interface.

i just had this situation. the dolphin filemanager has a feature to add tags and comments to files. the interface is very clunky. but there is a commandline that lets me set those tags and comments which is much more efficient once you learned how to use that command.


As for the third example, note that the programs discussed here (arguably TUI) are unlikely to work on this type of terminal. Unless the program has a built-in mode that allows it to run in true command-line mode (arguably CLI). Just like vi/ex.

Of course, these were just examples to show that a computer terminal didn’t have to - and doesn’t have to - be like a VT100 or similar. And I realize that nowadays, when we hear the word "terminal," we tend to think of something like a VT100. Especially since the Linux (kernel) includes emulation for something like that.

However, historically, the first devices to be called computer terminals (and to enable interactive operation) were typewriters and teletypes. That is why one of the names given to newer CRT terminals was "glass teletypes." To distinguish these terminals from their predecessors, they were also referred as video terminals (VT) or video display units (VDU) etc.

Note that in addition to built-in VT102/VT220 emulation, xterm also includes built-in Tektronix 4014 emulation, which, to use your terminology, is a graphics terminal.

But on the topic, IMHO those "text terminals" represent the lowest common denominator, and using them as a user interface causes the least friction compared to true GUIs. For example, after booting Linux, I can basically start using those TUI programs right away without having to install or configure a graphical environment (X11 or Wayland). Remote computing also causes less friction and can essentially be used out of the box.

And TUI programs, like GUI programs, also make it easier and faster to explore compared to programs that run exclusively in CLI mode.

Personally I regret that Plan9-style computing and Oberon/ACME user interfaces didn’t become mainstream...


Tektronix 4014 emulation

i have in more than 30 years of using X11 never once seen an application that would actually use that tektronix emulation. so i am absolutely clueless in what it can do and how it works. i'd really love to see that and especially learn how it works remotely. apparently telnet has support for it.


> the short answer is that on remote connections graphics is still a performance issue

Wrong answer. Performant remote graphics is a solved problem (streaming video services like Netflix and online graphics-heavy games like Fortnite wouldn't exist otherwise).

Text terminals still exist because text is - currently - the most flexible and powerful method to provide commands, simple to complex. In a GUI you're usually using a mouse/touchpad/etc to navigate menus, click buttons, etc. And the more flexible the app and complex the ask, the more noisy or tedious the GUI will be. I'm unsure if it's still a thing today, but I remember when I was a Windows user and had to click through multiple windows selecting various options to get a regular app installed.

Meanwhile with a CLI, you type in a command with arguments and options, and everything remains relatively very clean and visible regardless of how complex the ask. Like installing something via CLI is maybe 5 elements on average.


streaming video services and Fortnite

those are not remote graphics applications. streaming is one way, and on slow connections it still fails. fortnite is local graphics. like a webbrowser. i already mentioned that. by remote graphics i mean a GUI application that runs 100% on a remote machine, and displays the output locally. like streaming, it depends on a fast connection. unlike streaming the fast connection needs to go both ways and it needs low latency (streaming doesn't need low latency, it just needs bandwidth.

your other example is similar to mine. but, in my opinion there is no reason why we couldn't have better graphical visualization of the commands we type. the browser model seems to be the right approach. local graphics working with remote data structures.


> streaming is one way

But has to be reasonably performant for a decent experience.

> fortnite is local graphics

And commands have to be sent to the server with minimum latency.

Bringing the capabilities of streaming and online gaming together means VNC is a non-issue, as the 2 have far more stringent requirements than the latter. A VNC connection is primarily streaming small diffs for the majority of a session (only occasionally does the full screen need to be sent) and input commands which aren't very latency sensitive; there isn't much to it.

> better graphical visualization of the commands we type

It's possible, but not necessary, and is counterproductive when it harms accessibility, which it often does. The browser is the worse thing out there IMO, because web devs are pushing JavaScript everywhere and hurting the experience for many. Things are supposed to function well for the user, but the focus nowadays is on shoving meaningless animations into things that should just be simple text, and ads into everything, which inevitably leads to far more noise rather than function.


the focus nowadays is on shoving meaningless animations into things that should just be simple text, and ads into everything, which inevitably leads to far more noise rather than function

right, but the same is true for all GUIs to an extent. which is why we still feel that TUI and commandlines are more efficient.

what we really want here (or what i want) is a locked down GUI that is efficient to use and designed to display the data that the commandline tools produce. no fancy graphics but a meaningful graphical interface that is not tied to the app that produces the data.

the problem now is that we have two choices, either we write a commandline tool that just spits out unstructured data, or we design the whole interface ourselves down to the last pixel. there is nothing in between.

think about the window manager. X11 used to work like that. windows would just display minimal frames, and the windowmanager would add the decorations to manipulate the windows. all windows look and work the same. in whatever style the windowmanager offered. that's gone now. the decorations are part of the window. that has some advantages, but also downsides.

the web has the same problem. i can't just send structured data. i have to send the whole interface. there is no separation. data and interface are merged in my app. at least now with javascript i can build apps that allow me to pull structured data from the server and display it, so data and app are kept separate. that's what i want on the commandline too. with the terminal functioning as that app that knows how to display the structured data that my commandline tools produce.


> a locked down GUI that is efficient to use and designed to display the data that the commandline tools produce [...]

You can have all that. There are various data presentation tools out there (one I can think of right now is Streamlit as I tried it out a few months ago, but I'm not really a data person, Python is just my primary language). For a more general GUI framework that's pretty easy to use and still full of features without tying anything you can look at Flet[0]. Heck Jupyter too is built specifically for processing and presenting data, and can keep things as separate or combine as much as you need.

There are many solutions out there that work really well already, particularly in the Python ecosystem. The all-or-nothing is mainly an ecosystem issue IMO, as web devs don't do much data processing that isn't accompanied by immediate presentation; the web browser is primarily a presentation engine after all.

Don't look to TUIs for good presentation as the terminal just isn't the place for fancy views. It's designed strictly for organizing and displaying - preferably streaming - text, not graphics. Also think of it as a relic from the old days when there were only text displays, modernized in many ways but still bound to those roots. Trying to make it behave like a graphics display is like trying to fit a square peg into a round hole, unless the particular terminal has that support specifically implemented.

[0] https://flet.dev/


Don't look to TUIs for good presentation as the terminal just isn't the place for fancy views

yes but the terminal is still the place where most of the sysadmin and dev work happens. it's a relic that we can't get rid of.

unless the particular terminal has that support specifically implemented

which is exactly what i am aiming for, reinventing the terminal to get support for that built in.


Sounds like you'll more likely than not be crafting that terminal yourself; I'm unaware of any that goes the lengths you seem to desire. But that's actually not that big a deal nowadays given the quality of LLM agents.

there are a few projects with interesting ideas already, warp terminal, which was recently released as FOSS is one, ttyphoon is another. both are not yet where i would want them to be in terms of data display, but they show that reinventing the terminal is possible and hopefully these ideas will get more mindshare

I honestly don't get the deal with Warp. Ttyphoon does look interesting, but it's at least 3 years old and still alpha; doesn't inspire much confidence to be used as anything more than a toy. But then again I've been using Horizon[0] since its debut here, despite encountering some alpha edges. Made a few changes, and now working on a port of it to Python.

But again generally I really don't see these projects going the "full" distance as the processing to presentation pipeline is already generally solved.

[0] https://github.com/peters/horizon


ttyphoon is mostly the work of a single person, who is also working on the murex shell. some projects take longer to gain traction. i am mainly interested in the ideas being explored, and hope that more projects pick them up. i haven't yet had a chance to try it myself.

i also didn't try warp yet. it just came out as FOSS and i am waiting for them to implement the option to disable the AI functions which they promised. what i like about warp is that it treats the output of each command as a separate entity that i can work with. a lot of power comes from that. also the separation of commandline and output if i saw that right. wave is another terminal that does that.

i'd like to take that idea even further. having separate output boxes means that each box can be used differently. i could for example run an interactive program in a box, such as an editor, or a filemanager. even a graphical one. heck, even a browser view. so basically, can treat each box as its own window without the clutter of tabs or windows that i would get otherwise. the potential of this interface is massive.


A shell is the environmental manager, the terminal is the display device, and the window is the container. Add in tabs, web panes and sticky notes + make it all agentic, you get Hyperia: https://hyperia.nuts.services

Love this on principle -- set the unstoppable force against the unmovable object and watch the machine grind itself into dust.

If this does not work, use nitter instead

They better fix that today, I need to downgrade my account before the subscription renews.

hopefully their billing server is also available

And we've back to clay tablets! Cuneiform would be fitting.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: