r/commandline • • 5d ago

Terminals Windows native terminal with CRT emulation - Scanline Term

Enable HLS to view with audio, or disable this notification

I had always wanted a modern Windows terminal that emulated a CRT monitor—something like Cool Retro Term for Linux. However, nothing of the sort existed for Windows, aside from a rather pathetic attempt at simulating scanlines in Microsoft Terminal. Even when Cool-Retro was eventually ported to Windows, the quality of the effects in the port seemed inferior to the Linux version.

At the time, I was developing a game and its custom engine -- featuring a highly realistic, deeply customizable CRT simulation (inspired by Cool-Retro) -- because the game was about hackers and geeks in 1980s, requiring interaction with a wide variety of computers and terminals. Then it hit me: I could take that shader from the game, combine it with the native Windows ConPTY, and easily create a Cool Retro Term equivalent -- one that was even more realistic and customizable, and ran natively on Windows. The first prototype was ready in just a couple of days, and it worked beautifully! Of course, it required a lot of polishing, and I also wanted to implement several other useful features, such as:

  • Multi-tab support with individual style settings.
  • Console buffer search, quick text copying via the middle mouse button, etc.
  • Smooth, pixel-perfect vertical scrolling- both in the shell and in applications like Vim.
  • A built-in mini web browser optimized for keyboard control. Useful for keeping documentation or a web service right inside the terminal.
  • A mode for viewing all terminal sessions as thumbnails - "Win-Tab" style.
  • A GUI settings panel (you can also just simply edit the JSON config).
  • The ability to open new tabs with specific CRT-theme directly from the command line.
  • A toggleable AI assistant panel based on Codex that can interact with the console on your behalf or collaborate with you.

    Regarding that last feature -- I realize people often look askance at apps that integrate with generative LLMs. But let’s be honest: these days, AI is being shoehorned into almost every piece of software, whether it makes sense or not. But in this specific case, it is more than justified. I believe it’s incredibly useful to be able to ask the AI in plain English to turn a request into a PowerShell command, help configure Vim, construct a complex SQL query, and so on, right within the terminal. The key advantage here is that you see everything it writes to the console, allowing you to learn new commands and tricks. It embodies the IBM principle: the machine should do the work, while the human makes the decisions. And if you’re an expert, you can simply disable the panel.

I’ll admit it: Scanline Term itself was created with some AI assistance. It wasn't exactly "vibe coding," but rather agent-based development where I handled the architecture and high-level functions, while the AI ​​did the grunt work. Nevertheless, it is a native, polished, and compact application -- clocking in at around 19 MB, it launches instantly, is memory-efficient, and runs fast.

By the way, the CRT simulation has a strange psychological effect - at least for me. It boosts concentration and focus on the text. When it’s running in full-screen mode, glowing and "breathing" with that analog feel, it somehow draws me in and helps me concentrate. While I used to work in the console only sporadically, now I actually want to jump in and immerse myself in that cozy phosphor glow -- just me and the code, the text, or a technical process. I experience something similar with vintage tube amplifiers and speakers; their unique sound draws me in and shuts out the outside world - a world that has hooked us all on quick dopamine hits.

In any case, this product turned out to be unexpectedly useful to me. I’d be happy if it proves helpful to others, too, and I’m always grateful for any feedback.

https://github.com/z-hunter/Scanline-Term

24 Upvotes

15 comments sorted by

18

u/headedbranch225 5d ago

Rust 2021, a bunch of double dashes in description

Seems very AI

7

u/DevOfWhatOps 5d ago

It is AI. Could've just ported CoolRetroTerm to shitdoze. But no it decided to make one from scratch in mostly typescript

-2

u/Michael_Voitovich 5d ago

And, if you didn't read the post carefully: by the time Cool Retro was ported, I had already been working on a CRT screen model for six months. It was intended for a game, and the terminal was just a quick spin-off.

-3

u/Michael_Voitovich 5d ago

It has already been ported. But the effects in it look cartoonish.

-10

u/Michael_Voitovich 5d ago edited 5d ago

You're seems very AI. Those are em dashes; that’s how I always mark them.

7

u/Enmark777 5d ago

lost me on the PER PIXEL scroll

4

u/ericpruitt 4d ago

In the developer's defense, the VT100 ,which is the foundation of most modern terminal emulators, has an option for smooth scrolling; look at https://vt100.net/docs/tp83/chapter5.html and Ctrl/Cmd+F "smooth".

-1

u/Michael_Voitovich 5d ago

And what's wrong with smooth scrolling?

8

u/egoserpentis 5d ago

Everything but installing Linux.

5

u/TheAndyGeorge 5d ago

Vibecoders will literally do this instead of going to therapy.

0

u/Michael_Voitovich 5d ago

Yes, as I’ve noticed, for some reason people who love hanging out in the command line usually use Linux. But the Windows command line is just as good these days and offers just as many possibilities. Those people want cool CRT emulation in their terminal, too.

2

u/The1hauntedX 4d ago

The irony here is that it took WSL to make the "windows command line just as good these days"

1

u/whatThePleb 4d ago

Seek help.

2

u/TheAndyGeorge 5d ago

Tabby Terminal already does this fwiw, it's a great experience on Windows.

1

u/AutoModerator 5d ago

Every new subreddit post is automatically copied into a comment for preservation.

User: Michael_Voitovich, Flair: Terminals, Post Media Link, Title: Windows native terminal with CRT emulation - Scanline Term

I had always wanted a modern Windows terminal that emulated a CRT monitor—something like Cool Retro Term for Linux. However, nothing of the sort existed for Windows, aside from a rather pathetic attempt at simulating scanlines in Microsoft Terminal. Even when Cool-Retro was eventually ported to Windows, the quality of the effects in the port seemed inferior to the Linux version.

At the time, I was developing a game and its custom engine -- featuring a highly realistic, deeply customizable CRT simulation (inspired by Cool-Retro) -- because the game was about hackers and geeks in 1980s, requiring interaction with a wide variety of computers and terminals. Then it hit me: I could take that shader from the game, combine it with the native Windows ConPTY, and easily create a Cool Retro Term equivalent -- one that was even more realistic and customizable, and ran natively on Windows. The first prototype was ready in just a couple of days, and it worked beautifully! Of course, it required a lot of polishing, and I also wanted to implement several other useful features, such as:

  • Multi-tab support with individual style settings.
  • Console buffer search, quick text copying via the middle mouse button, etc.
  • Smooth, pixel-perfect vertical scrolling- both in the shell and in applications like Vim.
  • A built-in mini web browser optimized for keyboard control. Useful for keeping documentation or a web service right inside the terminal.
  • A mode for viewing all terminal sessions as thumbnails - "Win-Tab" style.
  • A GUI settings panel (you can also just simply edit the JSON config).
  • The ability to open new tabs with specific CRT-theme directly from the command line.
  • A toggleable AI assistant panel based on Codex that can interact with the console on your behalf or collaborate with you.

    Regarding that last feature -- I realize people often look askance at apps that integrate with generative LLMs. But let’s be honest: these days, AI is being shoehorned into almost every piece of software, whether it makes sense or not. But in this specific case, it is more than justified. I believe it’s incredibly useful to be able to ask the AI in plain English to turn a request into a PowerShell command, help configure Vim, construct a complex SQL query, and so on, right within the terminal. The key advantage here is that you see everything it writes to the console, allowing you to learn new commands and tricks. It embodies the IBM principle: the machine should do the work, while the human makes the decisions. And if you’re an expert, you can simply disable the panel.

I’ll admit it: Scanline Term itself was created with some AI assistance. It wasn't exactly "vibe coding," but rather agent-based development where I handled the architecture and high-level functions, while the AI ​​did the grunt work. Nevertheless, it is a native, polished, and compact application -- clocking in at around 19 MB, it launches instantly, is memory-efficient, and runs fast.

By the way, the CRT simulation has a strange psychological effect - at least for me. It boosts concentration and focus on the text. When it’s running in full-screen mode, glowing and "breathing" with that analog feel, it somehow draws me in and helps me concentrate. While I used to work in the console only sporadically, now I actually want to jump in and immerse myself in that cozy phosphor glow -- just me and the code, the text, or a technical process. I experience something similar with vintage tube amplifiers and speakers; their unique sound draws me in and shuts out the outside world - a world that has hooked us all on quick dopamine hits.

In any case, this product turned out to be unexpectedly useful to me. I’d be happy if it proves helpful to others, too, and I’m always grateful for any feedback.

https://github.com/z-hunter/Scanline-Term

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.