I've dug around the TempleOS codebase a bit, and while it certainly is impressive for a single guy's work, I think there's been an overcorrection where people act like Terry was some hyper genius instead of "a pretty smart guy".
I kind of got the impression that whenever Terry didn't know how to do something, he would just convince himself that that's not what God wanted anyway and stop doing it.
Given that Terry described the manic episodes as "a revelation from God" I think theopneustos is an accurate description. It just means "God Breathed" or "Inspired by God"
The announcement blog post (https://blog.orhun.dev/introducing-ratty/), which would've been a better submission URL, unsurprisingly says that TempleOS was the direct inspiration of the project.
It's very interesting to learn about the newly proposed glyph protocol [1] in the linked blog post.
I was bemoaning the lack of exactly this here about 6 months ago [2]!
Oh hey, that's a nice idea! Unlike some of the terminal projects I've seen recently, it addresses a problem without entirely reinventing the idea of what terminals can do.
I like this. No reason the terminal should only support text. Data science notebooks show one way the terminal can evolve. Lots of interesting stuff happening in this space, with Kitty probably being the most aggressive innovator here [1]. I'm not sure there is an overall vision, though.
No evolution necessary! With my project, euporie [1], you can have use your data science notebooks with graphical image outputs, HTML, LaTeX, etc, all in the terminal.
I managed to get `pyvista` to render arbitrary 3D shapes directly to the terminal using kitty graphics.
It's a giant hack, only way to make it performant is using shm.
Joking apart, the whole thing was both an exercise in madness and genius. Sometimes I wonder what he would have done if he had not gone crazy. We will never know...
> Sometimes I wonder what he would have done if he had not gone crazy.
At what point do you consider he had "gone crazy" relative to the development of TempleOS? Only when he committed suicide? Shortly before then? Last ____ years of his life?
Without trying to sound insensitive, I'd personally argue the entire OS was the byproduct of a "crazy" individual.
The inspiration may have been all "crazy" but the implementation was still really neat, and it takes a lot of effort and skill to get to the point he did before his death. The thing about people who lose touch with reality is that their efforts to create or express something often make no sense to the rest of us. TempleOS, however, works. Terry create an OS from scratch, an entire new language (or variant of a language) in the form of HolyC, and not only does it all work together in a way that requires no disconnect from reality, it works well for his goals and philosophy.
The entire thing may be the result of a person suffering from schizoaffective disorder, but that person still held a great deal of skill to implement that idea and enough of a touch with the reality of computer hardware to make it happen.
I wonder if something like this could work for thumbnails in the terminal; I prefer to browse my filesystem from a terminal rather than the point and click file manager typically, and it would be really useful if I could have a grid-style `ls` with terminal based renders of the 3d models (thinking STL/STEP, 3D printing) in that directory. Bonus points if I could preview/rotate the model to inspect it.
as a compromise i started using nemo/nautilus with a plugin that puts a terminal at the bottom of each tab. so i have a graphical view of the terminal but a commandline in the same folder right next to it. the two don't interact other than being able drag and drop filenames from the filemanager into the terminal, so it is far from what we really want, but it's a small start.
Do you mind sharing a little more about the plugin you use? A quick online search wasn't very helpful to me but I've also been hoping for something like this.
Mix this 3d graphics, with data science notebooks, with local LLMs, and perhaps an integrated coding harness, with visibility over your personal data and you’d have something absurdly good.
This might overtake “a haiku+macOS mashup” as my idealised computing future.
Greenspun’s Tenth Rule of Programming states that any sufficiently complicated C or Fortran program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp.
well, almost. if emacs offers a graphical file manager i'll consider using it. this seems to be a start: https://github.com/emacs-eaf/eaf-file-manager. the file manager needs to also integrate with a terminal though so i can run unix commands in the same directory. and it needs to support mouse-based operations too. finally, and that's the real kicker, i'd like a better integration of the terminal output and the graphical display by supporting the passing of structured data that the display knows how to handle without terminal escape codes. those need to go away. (which is why sixels are not a solution either)
What's overlooked here are the insane political and economic forces that were required to get anywhere close to the (sort of!) consistent implementation of plain text we have today. These projects try to piggyback off that success yet only contribute back harm. We have standards for a reason.
I'm not saying people can't have fun, but don't try to start a cyberpunk-inspired revolution and then blame the side effects of groupthink and software rot on everyone else when it goes sideways.
This is kinda possible already today with the Kitty graphics protocol, I made a demo here of rendering 3D graphics[1] with kitty. The actual important missing thing (and which ratty seems to also not include) is vsync.
If rendering is not aligned then it's possible for the terminal emulator to read the framebuffer while the application is writing to it, causing visual artifacts.
This is pure Hollywood OS - hackers feverishly entering obscure incantations like “upload virus”…but now with the terminal twisted into a Moebius strip!
- rendering capabilities of this seem like it should also be able to handle 2d well, or am I mistaken? every solution I see for getting high quality 2d images or rasterization in terminal is all pretty bad. Could this do better than other solutions or is there a fundamental limit being hit somewhere?
- What happens with ssh given that this is gpu accelerated?
Always has been meme incoming. Also, more seriously, the purpose of a tool is to do a job. The question becomes whether this tool can be made useful. I.. honestly don't know, but I will be finding out soon:D
The terminal is keystroke-driven. It's character-selectable. It's reliable in a way that the GUI is not. When I drop frames, I can still enter the commands to rescue myself with some assurance they'll be interpreted, eventually.
I agree, a REPL isn't Unixy in the streams of text kind of way... or is it?
It's a bit more abstract and useful than "character-selectable" when viewed at the byte-level abstraction.
The ability to chain together utilities with no complicated data structures is extremely flexible. One of my favorite current use-cases is using FFmpeg to process RTSP streams that send output (e.g. high quality stream for recording, low quality low FPS for processing, max quality low FPS for stills, etc) to separate file descriptors. FFmpeg doesn't care whats on the other end (e.g. redirect to file, read via Python, etc) due to these lovely abstractions.
Reliability translates directly to scriptability. Yes, you can create monsters, but through the use of sub-shells and pipes I think it's the fastest, cheapest, most concise way to pull off some really cool multiprocessing tricks.
Lack of imagination doesn't mean this isn't innovation.
It's the ability to convey more information in less space.
Top-of-my-head notion: The cursor spins (or changes in another way) to reflect CPU use, or bandwidth use, instead of taking up space elsewhere on the screen.
there was a project that rendered firefox to the terminal through box drawing characters. When libweb is more complete I kinda want to do something similar
I have wobbly windows on whenever I use KDE. I like how it gives the movements more momentum, though I have it turned down by a lot so it isn't distracting
Seriously, though, when are we going to see the convergence of terminals and GUI remoting protocols? People have already departed far from Unix pipeline utilities. "TUI" programs are already GUIs in disguise. Why keep pretending that the terminal (as used by TUI programs) is a different kind of thing?
I was going to comment how it reminded me of TempleOS and the author should look into that, but the accompanying blog post explains how it was inspired by it https://blog.orhun.dev/introducing-ratty/
He constantly used the N word to describe black people and always was warning people about how evil black people were. I’m not making this up, go watch his streams.
Mental illness is no excuse for vile white Christian nationalism and hate against blacks. Miss me with that ignorance.
It’s clear how hateful he is from just watching his streams. It’s not a tick or a symptom of a clinical issue, it’s a deep seated belief that was only exposed to us because of his schizophrenia.
Yes I have empathy for him and I also recognize that he is a menace and probably is better unknown. We are spoiled for choice anyways.
So just to be clear, a human being can't think properly / straight anymore, has issues forming a coherent worldview, has regularly crazy maniac phases were he would drive like 100 miles, dismantle his car, throw away his keys but you do not accept any of this as a reasonable excuse that that particular human is not able to break out or even manifests stereotypical thoughts?
The mental base mode you are born, is a community of christians, parents forming your mind etc. and you have to break out of this, formulate your own independet worldview. A lot of people can't do that today. All religios people in fact.
Plenty of woman can't break out of absuve relationships, familys protecting someone inside the family even if they are rapists due to "family is family; what would others think of us" etc. and thats were you draw the line for that Human being?
> Plenty of woman can't break out of absuve relationships, familys protecting someone inside the family even if they are rapists due to "family is family; what would others think of us" etc. and thats were you draw the line for that Human being?
I think you're being fair overall, but I would also say that OP in this thread reply is highlighting something worthwhile. If Terry were a misogynist, I don't think this thread would have taken as long to recall his abnormal behavior. But that's just, like, my opinion.
> When I first got introduced to [TempleOS], I was shocked and impressed by the flashy colors, graphical sprites and uncomprehensible UI. There are so many things that makes it so unique, weird and fascinating at the same time, somehow.... Basically, the command line becomes the direct interface for everything. You can write code, interact with the system and render graphics all in the same place, which is why TempleOS feels so unusual compared to conventional operating systems.
I think this could be a really cool approach. I enjoy tools like Chafa, imgcat, etc but something always feels a little clunky about the separation between text and images. Paradoxically having text and non-text all jumbled up like this feels better somehow.
Really fun project! Dude, I spent the last week implementing Kitty Graphics and Clipboard protocols in ghostty-web in the Canvas render.
Then I added WebGL and WebGPU renderers [1], including support for Kitty.
Then I see this this project on a Monday morning... so now I have to implement Ratty Graphics Protocol?!?! [2].
ETA: I looked into this; Ghostty would need patched to support Ratty since Ghostty-Web now defers APC handling there. It would also require pulling in a 3D engine like three.js or otherwise implementing file parsing, lighting, etc. Finally, since local filenames are part of the protocol, a browser would need some file resolver helper, either to get the data over the APC channel or via a URL.
Has anyone tried to create 3D fonts? It sounds like a ton of work but might look cool if done correctly.
You could also do really cool text highlights by working with light sources and shader effects
Another feature I'm looking for is smooth scrolling when you hit enter. I've had debates before where they claim it's not possible, that the text must jump one line. But I think it's possible, by shifting the frame buffer up.
Excited to see others equally inspired by TempleOS’ 3D feature :)
I tried something similar a few months ago that acts more as a library to ratatui than a separate terminal emulator [0].
Was surprised how far one can get using some off the shelf characters like half-block when rasterizing.
The Glyph protocol mentioned in the blog post is interesting … perhaps custom glyphs could help smooth some of the (literal) rough edges from the low effective resolution of a terminals character grid.
This is a great idea. I always wanted KDE konsole to e. g. show images inlined as is. This is possible via magick six:-, but I wanted this to be natively. I want the terminal to be able to work with any data and display it in any way. No need to simulate the 1980s era anymore (except for backwards/legacy support). So great idea here really.
- Compile tut, it just requires Go, it will run on any modern OS.
- Login with tut
- Set a 'tview' shell (sh) script as
#/bin/sh
chafa -f sixel --fit-width "$@" | less -r"
reset
- Configure tut, set program=tview in the [media.image] section.
- Then launch XTerm as 'xterm -ti 340'. Edit ~/.Xresources so you have nice fonts:
xterm*background: black
xterm*foreground: white
xterm*loginShell: true
xterm*faceName: Monospace
xterm*faceSize: 10
xterm*geometry: 100x32
xterm*metaSendsEscape: true
xterm*decTerminalID: vt340
xterm*numColorRegisters: 256
xterm*sixelScrolling: 1
xterm*sixelScrollsRight: 1
Done. Edit the facesize value to a bigger font if you have a big resolution. Run "xrdb ~/.Xdefaults" to get the changes.
Also, you can run chafa locally with images such as "chafa -f sixel --fit-with foo.img', no need to login into a VPS, of course, it just was a proof of concept that you could see images over SSH. This can be really useful for instance to read graph/plots with Gnuplot or similar tools.
If any, subscribe to T3X's news letter and get some books, as these small tools will pay a lot in near future. No AI crap, small enough to run on some sets, from Statistics to semi-advanced math (even Zenlisp being crap can do complex numbers, and you can adapt the code for instance for S9 so that interpreter Scheme understand complex numbers and a much faster speed).
Yeah, Python+SAGEMATH, CUDA with number crunching and the like. How much are the GPU's, CPU's and SSD's going nowadays in dollars?
> inserted 3D objects in the demo above are actually from the TempleOS codebase itself
Brilliant. The dream lives on! This is the best form of paying respects.
It's walking a fine line between madness and genius, and who knows if it'll ever be practical, but more important is the sense of wonder and "fuck yeah" as King Terry expressed so eloquently.
Inline graphics from 1981,
https://youtu.be/o4-YnLpLgtk?t=376
Here is another video, this time with S-PACKAGE used to develop Nintendo 64.
https://www.youtube.com/watch?v=gV5obrYaogU
Which given the REPL capabilities, you can easily embedd them on it, just like the other video.
I kind of got the impression that whenever Terry didn't know how to do something, he would just convince himself that that's not what God wanted anyway and stop doing it.
also smalltalk
we used oberon in one class in university. i don't remember much unfortunately.
more like theopneustos
[1] https://rapha.land/introducing-glyph-protocol-for-terminals/
[2] https://news.ycombinator.com/item?id=45805072
That had me in stitches.
[1]: https://sw.kovidgoyal.net/kitty/protocol-extensions/
[1] https://github.com/joouha/euporie
https://git.theresno.cloud/panki/kglobe
https://www.youtube.com/watch?v=o48KzPa42_o
Joking apart, the whole thing was both an exercise in madness and genius. Sometimes I wonder what he would have done if he had not gone crazy. We will never know...
At what point do you consider he had "gone crazy" relative to the development of TempleOS? Only when he committed suicide? Shortly before then? Last ____ years of his life?
Without trying to sound insensitive, I'd personally argue the entire OS was the byproduct of a "crazy" individual.
The entire thing may be the result of a person suffering from schizoaffective disorder, but that person still held a great deal of skill to implement that idea and enough of a touch with the reality of computer hardware to make it happen.
[1]: github.com/eza-community/eza
This might overtake “a haiku+macOS mashup” as my idealised computing future.
What's overlooked here are the insane political and economic forces that were required to get anywhere close to the (sort of!) consistent implementation of plain text we have today. These projects try to piggyback off that success yet only contribute back harm. We have standards for a reason.
I'm not saying people can't have fun, but don't try to start a cyberpunk-inspired revolution and then blame the side effects of groupthink and software rot on everyone else when it goes sideways.
If rendering is not aligned then it's possible for the terminal emulator to read the framebuffer while the application is writing to it, causing visual artifacts.
[1] https://x.com/zack_overflow/status/2035921425341763756?s=20
Still giving me goosebumps
Questions:
- rendering capabilities of this seem like it should also be able to handle 2d well, or am I mistaken? every solution I see for getting high quality 2d images or rasterization in terminal is all pretty bad. Could this do better than other solutions or is there a fundamental limit being hit somewhere?
- What happens with ssh given that this is gpu accelerated?
Is that what you're looking for?
https://github.com/fathyb/carbonyl
https://hyper.is/
Super slow, but I guess thats what web devs want.
https://github.com/vadimdemedes/ink
Which is what Claude Code CLI uses (or was using?) and it caused many issues such as flickering, thrashing, and latency.
edit: But your spirit lives on ( based on the project:D )
I agree, a REPL isn't Unixy in the streams of text kind of way... or is it?
It's a bit more abstract and useful than "character-selectable" when viewed at the byte-level abstraction.
The ability to chain together utilities with no complicated data structures is extremely flexible. One of my favorite current use-cases is using FFmpeg to process RTSP streams that send output (e.g. high quality stream for recording, low quality low FPS for processing, max quality low FPS for stills, etc) to separate file descriptors. FFmpeg doesn't care whats on the other end (e.g. redirect to file, read via Python, etc) due to these lovely abstractions.
Reliability translates directly to scriptability. Yes, you can create monsters, but through the use of sub-shells and pipes I think it's the fastest, cheapest, most concise way to pull off some really cool multiprocessing tricks.
Compiz 3d effects were ultimately a useless gimmick and I predict this is too.
It's the ability to convey more information in less space.
Top-of-my-head notion: The cursor spins (or changes in another way) to reflect CPU use, or bandwidth use, instead of taking up space elsewhere on the screen.
Then spend their tokens on abominations like this
Make it make sense
It's not hypocrisy when different people do different things.
Seriously, though, when are we going to see the convergence of terminals and GUI remoting protocols? People have already departed far from Unix pipeline utilities. "TUI" programs are already GUIs in disguise. Why keep pretending that the terminal (as used by TUI programs) is a different kind of thing?
https://youtu.be/dFUlAQZB9Ng?si=3fE-vE8xF5rSVhRR
[0]https://news.ycombinator.com/item?id=45341683
Any technical reason for such a strong opinion?
Why are you so invested in TempleOS?
It’s clear how hateful he is from just watching his streams. It’s not a tick or a symptom of a clinical issue, it’s a deep seated belief that was only exposed to us because of his schizophrenia.
Yes I have empathy for him and I also recognize that he is a menace and probably is better unknown. We are spoiled for choice anyways.
The mental base mode you are born, is a community of christians, parents forming your mind etc. and you have to break out of this, formulate your own independet worldview. A lot of people can't do that today. All religios people in fact.
Plenty of woman can't break out of absuve relationships, familys protecting someone inside the family even if they are rapists due to "family is family; what would others think of us" etc. and thats were you draw the line for that Human being?
I think you're being fair overall, but I would also say that OP in this thread reply is highlighting something worthwhile. If Terry were a misogynist, I don't think this thread would have taken as long to recall his abnormal behavior. But that's just, like, my opinion.
> When I first got introduced to [TempleOS], I was shocked and impressed by the flashy colors, graphical sprites and uncomprehensible UI. There are so many things that makes it so unique, weird and fascinating at the same time, somehow.... Basically, the command line becomes the direct interface for everything. You can write code, interact with the system and render graphics all in the same place, which is why TempleOS feels so unusual compared to conventional operating systems.
I think this could be a really cool approach. I enjoy tools like Chafa, imgcat, etc but something always feels a little clunky about the separation between text and images. Paradoxically having text and non-text all jumbled up like this feels better somehow.
Then I added WebGL and WebGPU renderers [1], including support for Kitty.
Then I see this this project on a Monday morning... so now I have to implement Ratty Graphics Protocol?!?! [2].
ETA: I looked into this; Ghostty would need patched to support Ratty since Ghostty-Web now defers APC handling there. It would also require pulling in a 3D engine like three.js or otherwise implementing file parsing, lighting, etc. Finally, since local filenames are part of the protocol, a browser would need some file resolver helper, either to get the data over the APC channel or via a URL.
[1] https://github.com/NimbleMarkets/ghostty-web/tree/nm-webgpu
[2] https://github.com/orhun/ratty/blob/main/protocols/graphics....
[0]https://en.wikipedia.org/wiki/File_System_Visualizer
You could also do really cool text highlights by working with light sources and shader effects
Another feature I'm looking for is smooth scrolling when you hit enter. I've had debates before where they claim it's not possible, that the text must jump one line. But I think it's possible, by shifting the frame buffer up.
My second reaction: "Oh wait is that TempleOS being cited? This is either awesome or terrible."
You'll soon may be able to implement overlapping graphics windows in TUI within GUI.
This is stupid af.
I tried something similar a few months ago that acts more as a library to ratatui than a separate terminal emulator [0].
Was surprised how far one can get using some off the shelf characters like half-block when rasterizing.
The Glyph protocol mentioned in the blog post is interesting … perhaps custom glyphs could help smooth some of the (literal) rough edges from the low effective resolution of a terminals character grid.
[0] https://github.com/limlabs/ratatui-3d
That's how I read images under a remote pubnix with tut using a Mastodon account over plain SSH.
Chafa and XTerm. It works.
Also, you can run chafa locally with images such as "chafa -f sixel --fit-with foo.img', no need to login into a VPS, of course, it just was a proof of concept that you could see images over SSH. This can be really useful for instance to read graph/plots with Gnuplot or similar tools.
If any, subscribe to T3X's news letter and get some books, as these small tools will pay a lot in near future. No AI crap, small enough to run on some sets, from Statistics to semi-advanced math (even Zenlisp being crap can do complex numbers, and you can adapt the code for instance for S9 so that interpreter Scheme understand complex numbers and a much faster speed).
Yeah, Python+SAGEMATH, CUDA with number crunching and the like. How much are the GPU's, CPU's and SSD's going nowadays in dollars?
Brilliant. The dream lives on! This is the best form of paying respects.
It's walking a fine line between madness and genius, and who knows if it'll ever be practical, but more important is the sense of wonder and "fuck yeah" as King Terry expressed so eloquently.
2. 3D rat: +100 points.
3. Outdated 80s UI paradigm: +100 points.
4. Uses Rust: +100 points.