HN.zip

WorldTUI: I trained a 360M model to pretend to be a terminal

148 points by alphax314 - 44 comments
nico [3 hidden]5 mins ago
Very very cool! Impressed that it can be done with only fine tuning

On a very similar theme, I recently built a “lossy git”, which stores your code by training a neural network, then it generates the code back to you on checkout

* web demo: https://nicobrenner.github.io/lossy-git/demo.html

* cli version: https://nicobrenner.github.io/lossy-git/

The web demo runs entirely on the browser, both the version control and the neural network training/inference. You can commit and checkout both images or code - you can also paste/“upload” your own images, no server requests (everything clears from the page on reload)

simedw [3 hidden]5 mins ago
That's very cool project. I read this blog post a few days ago about one way to look at memory encoding in models https://alexwang.ai/posts/associative-memory/ that you might find relevant
andai [3 hidden]5 mins ago
>I used Qwen2.5-Coder-0.5B as the starting point. I needed a small model to get close to realtime performance. Being a coding model, it had also already seen plenty of CLI usage.

Interesting. I wanted to ask, how that model compares with the fine-tuned version, but I just saw the author provided benchmarks. Interesting that fine-tuning improved the memory so significantly, wouldn't have expected that.

Though, on second thought, I had an experience where I was able to, as a human, fine-tune my memory beyond what I previously thought was possible!

Reminds me of one of my favorite jokes.

Excuse me, can you tell me how to get to Carnegie Hall?

—Practice, man... Practice...

treetalker [3 hidden]5 mins ago
> … I had an experience where I was able to, as a human, fine-tune my memory beyond what I previously thought was possible!

Please elaborate.

simedw [3 hidden]5 mins ago
I haven’t run extensive tests yet, but larger models also get better at memory.
ohadpr [3 hidden]5 mins ago
Very cool to do this as a Terminal!

I did it for web apps last year, basically a web server that feeds all requests into an LLM.

https://www.ohad.com/blog/voidware/

oilkillsbirds [3 hidden]5 mins ago
Very cool. Fun project. I feel like there’s a wide field to be explored once you understand fine tuning good existing models
__mp [3 hidden]5 mins ago
It would be interesting to expose this on the internet. I wonder what the scrapers etc… would do with it.
Lerc [3 hidden]5 mins ago
I wonder how much a small model could do if it had a tool calling API for a filesystem, an embedded busybox, and a single output token for 'emit what busybox would do here'. Then presumably the model parameters could learn everything that diverges from what busybox can handle.
alex7o [3 hidden]5 mins ago
I think the toolcalling should be system prompts then the agent is the userspace
Lerc [3 hidden]5 mins ago
That's a whole other kettle of trout. Maybe still worth a go mind.

On thin that would be useful is an entirely new permission system for files to allow for users and agents acting for users.

obilgic [3 hidden]5 mins ago
There was a whole fake gui OS with similar concept right
andai [3 hidden]5 mins ago
VibeOS - Fully Hallucinated Operating System

https://www.youtube.com/watch?v=z3pV6FHvcgM

prodigycorp [3 hidden]5 mins ago
athropic had an experiment that did exactly this. we need more experimentation in this space.
psandor [3 hidden]5 mins ago
Reminds me of this project from Microsoft. A Quake II “simulation” model where the whole application was just a model.

https://www.microsoft.com/en-us/research/articles/whamm-real...

soulofmischief [3 hidden]5 mins ago
These are called world models, which is why the project is called WorldTUI. For another example, take a look at Google's recent Genie models. https://deepmind.google/blog/genie-2-a-large-scale-foundatio...
donperignon [3 hidden]5 mins ago
I tried it and is not working remotely as close as the demo gif. It keeps telling me that "test1" folder that I want to create already exists (not true), then letting me do "mkdier test2" (sic) but then the folder is not there when ls. I mean all its expected, this has no state, follow no rules and is making up things from the current context, but is not as "magical" as I thought when watching the demo.
yjftsjthsd-h [3 hidden]5 mins ago
Wait, how did it `sleep 3`? I thought LLMs didn't have a concept of time
peder [3 hidden]5 mins ago
It’s still rendering frames constantly, no? So it just figures the next X frames are all doing nothing?
simedw [3 hidden]5 mins ago
Normal only keypresses invoke the next ”frame”. There is a sleep token that the runner could use to indicate that time is moving.
sprobertson [3 hidden]5 mins ago
from the post:

Time is an input too. If nothing is pressed, the model gets a WAIT token with a duration instead of a key, which is how snake keeps moving on its own.

yjftsjthsd-h [3 hidden]5 mins ago
That seems as likely as anything, but that just moves the problem to counting, doesn't it? The model gets the duration, but I was under the impression LLMs struggled with the arithmetic that would make that useful.
skohan [3 hidden]5 mins ago
Idk about Qwen 2.5 Coder that this is based on, but modern models don't struggle with arithmetic. I see Qwen 3.8 do long-hand math in thinking traces (ie. it outputs 17+35+12=64 in the thinking trace) so I would imagine this is something they train into the model specifically. Sometimes it creates and runs a simple python script to check its work.
gitowiec [3 hidden]5 mins ago
BUG: Running in Firefox makes every keypress a slow motion show. It decodes every keypress instead of sending a command with Enter key
odo1242 [3 hidden]5 mins ago
No, the model is simulating the entire TUI, not just terminal commands. It also actually is that slow (because it's generating a diff for the entire screen each time you make a keypress).
prodigycorp [3 hidden]5 mins ago
Wow! This this reminds me of when we tried doing this with gpt 3 and.. it worked!

The tmux thing had me confused for a moment until i realized it was emulating tmux. Super fun. Is the model window width aware?

serje1480 [3 hidden]5 mins ago
htoz1 [3 hidden]5 mins ago
Where is the point of this project if i have terminal ?
YmFzZTY0ZGFkZHk [3 hidden]5 mins ago
Sometimes it's just fun to do something absurd because you can. This is one of the reasons software is exciting.
wartywhoa23 [3 hidden]5 mins ago
The point is riding the bandwagon that drags a trailer with a couple of power plants, a small lake of water and a gold reserve in it.

Not unlike that American tractor pulling, but for geeks.

Clouds of smoke, weeeeee!

mehmetoguzderin [3 hidden]5 mins ago
Terminal world models have many applications, but empirical observation of successful pretraining or fine-tuning can be significant for encapsulating from rather expensive Bash traces, such as ones obtained from systems with scarce accelerators, etc.
good-idea [3 hidden]5 mins ago
because curiosity is the most fun of virtues!
aghuang [3 hidden]5 mins ago
Was thinking the same thing. I just run my usual terminal and get to work.
antonvs [3 hidden]5 mins ago
This will allow you to delete your terminal app and, eventually, all other binaries in your system!
dotancohen [3 hidden]5 mins ago
Because it was there
thorum [3 hidden]5 mins ago
I regretfully suspect this actually is the future of UI. You just need smart local models running fast enough to keep the framerate high, but that’s inevitable in the long term, isn’t it?
skohan [3 hidden]5 mins ago
We had decades to work on making software more performant, but instead most users' space-age 2nm chips spend most of their time running Javascript because it was faster to make software that way.
winrid [3 hidden]5 mins ago
even my ten year old laptop browses the web fine ^_^

If I had to complain about any site/app it'd be datadog... each tab uses like 1gb in firefox.

gr_norm [3 hidden]5 mins ago
Why would you do that instead of having the model do the task you're using the UI for? It could generate UI widgets on-the-fly as needed to take richer inputs.
skohan [3 hidden]5 mins ago
It might be fine for one-off applications, but it's incredibly inefficient for something that has to be done over and over.

Why would you use a GPU and gigabytes of VRAM running a non-deterministic process for something a program can do on the CPU in milliseconds with kilobytes of memory?

hnlmorg [3 hidden]5 mins ago
Probably for the same reasons most of our desktop applications have become slow Chromium instances consuming multiple GBs of RAM, each:

It’s cheaper to hire developers, and quicker to ship software. The user experience be damned.

skohan [3 hidden]5 mins ago
The logic here is a bit different. Consumer software is slow because it's the user paying for the compute to run those bloated Electron apps. Unless we're all running local inference in the future, it would be the vendor paying for the compute to run the AI-based UI.

Of course they would pass that along to the consumer, but nobody is going to pay token-based pricing for something that used to be free and ad-supported, or a cheap monthly subscription.

antonvs [3 hidden]5 mins ago
I don't really disagree, but... why do we use Javascript for so many UIs? Badly designed web pages with ads can easily use gigabytes of RAM.

Edit: oh, I saw you wrote a related comment after I posted this. So you already know that direct LLMs for UIs are all but inevitable...

latentsea [3 hidden]5 mins ago
What if we're really just living in a world model? How big of a GPU is required to run the universe I wonder?