DEV Community

Remo H. Jansen
Remo H. Jansen

Posted on

I have open-sourced a WebGL front-end for your terminal that emulates a CRT monitor

I'm thrilled to announce that I've open sourced cool-retro-term-webgl, a modern WebGL-based recreation of the beloved cool-retro-term terminal emulator!

For years, developers and retro computing enthusiasts have loved cool-retro-term by Filippo Scognamiglio (Swordfish90) β€” a Qt-based terminal that perfectly mimics the look and feel of old cathode ray tube (CRT) monitors, complete with scanlines, glow, and that nostalgic flicker.

I wanted to bring those authentic retro effects to the web and modern applications. The original is built in QML and C++, so I set out to port the shader magic to WebGL, making it usable in browsers, web apps, and even native desktop apps via Electron.

The result? A lightweight, high-performance CRT renderer that integrates seamlessly with XTerm.js.

Key Features

  • Authentic retro CRT effects powered by WebGL:

    • Screen curvature and distortion
    • Phosphor glow and bloom
    • Scanlines and rasterization
    • RGB chromatic aberration
    • Flicker, static noise, and burn-in persistence
    • Horizontal sync jitter
  • Two packages in a monorepo:

    • cool-retro-term-renderer: The core library for adding CRT effects to any XTerm.js instance.
    • cool-retro-term-electron: A full-featured desktop terminal app built with Electron, supporting real shell processes via node-pty.

Here's a glimpse of the retro magic in action:

Preview

Live demo https://remojansen.github.io/

Try the Desktop App

Download the Mac binary

The project is licensed under GPL-3.0, just like the original.

Check out the repo: https://github.com/remojansen/cool-retro-term-webgl

Thanks to Swordfish90 for the original inspiration.

Top comments (0)