I really like Hyper.js, being able to use CSS to style a terminal just made it fun, but it's not been maintained and has been regressing in performance recently. So like anyone who hasn't tried to do the thing before I decided "How hard could it be ?". This is the result, it's not as performant as rio or alacritty, but I'm pretty sure we're eating up less memory than Hyper and I'm not getting weird pinwheels of doom as I use it - and I'm doing way more rendering so I'm taking it as a win.
Also, my 6 year old thinks its cool so what other possible endorsements could you want ?
- GPU Rendering - Hardware-accelerated rendering via wgpu/vello for smooth 60fps performance
- CSS Theming - Fully customizable themes using CSS syntax with hot-reload support
- Visual Effects - CRT scanlines, matrix rain, particle systems, perspective grids, animated sprites
- 256-Color Support - Full ANSI color palette with per-theme overrides for tools like LS_COLORS
- Tabs - Multi-tab support with customizable tab bar styling
- Font Ligatures - Programming ligature support with configurable font variants
curl -sSL https://raw.githubusercontent.com/colliery-io/crt/main/scripts/install.sh | shThis installs crt.app to /Applications and sets up config at ~/.config/crt/.
curl -sSL https://raw.githubusercontent.com/colliery-io/crt/main/scripts/install.sh | shBinary installs to ~/.local/bin/crt with config at ~/.config/crt/.
Requires Rust 2024 edition:
git clone https://github.com/colliery-io/crt.git
cd crt
cargo build --releaseAfter installation:
- Launch CRT from Applications (macOS) or run
crt(Linux) - Try different themes by editing
~/.config/crt/config.toml:[theme] name = "matrix" # or "nyancat", "synthwave", "minimal", etc.
- Save the file and press
Cmd+Nto open a new window with the theme - See all available themes:
ls ~/.config/crt/themes/
Note: Colors and effects hot-reload on save, but background images and sprites require a new window (
Cmd+N) to load.
Configuration lives at ~/.config/crt/config.toml:
CRT includes 16 built-in themes. See the Theme Gallery for screenshots of each.
| Theme | Description |
|---|---|
alien |
Amber phosphor CRT (Weyland-Yutani MU/TH/UR 6000) |
dracula |
Classic Dracula color scheme |
matrix |
Green falling code with CRT effect |
minimal |
Clean, pure black background |
nyancat |
Bouncing Nyan Cat with stars and sparkles |
particles |
Floating particle effect |
rain |
Animated rain drops |
robco |
Fallout Pip-Boy green phosphor CRT |
shape |
Floating geometric shapes |
solarized |
Solarized Dark color scheme |
starfield |
Twinkling stars background |
stress |
All effects at once (for testing) |
synthwave |
80s neon with perspective grid |
tron |
Cyan grid aesthetic |
vaporwave |
Pink and cyan aesthetic with perspective grid |
wh40k |
Warhammer 40K Adeptus Mechanicus with servo skull |
Create custom themes at ~/.config/crt/themes/mytheme.css and set name = "mytheme" in config.
See the Theming Guide for details, or jump to:
| Shortcut | Action |
|---|---|
| Cmd+N | New window |
| Cmd+T | New tab |
| Cmd+W | Close tab |
| Cmd+1-9 | Switch to tab 1-9 |
| Cmd+Shift+[ | Previous tab |
| Cmd+Shift+] | Next tab |
| Double-click tab | Rename tab |
| Shortcut | Action |
|---|---|
| Page Up | Scroll up through history |
| Page Down | Scroll down through history |
| Home | Jump to top of scrollback |
| End | Jump to bottom |
| Cmd+Click | Open URL under cursor |
| Shortcut | Action |
|---|---|
| Cmd+F | Open search |
| Enter | Find next match |
| Escape | Close search |
| Shortcut | Action |
|---|---|
| Cmd+= | Increase font size |
| Cmd+- | Decrease font size |
| Cmd+0 | Reset font size |
| Shortcut | Action |
|---|---|
| Cmd+C | Copy selection |
| Cmd+V | Paste |
| Right-click | Context menu |
| Cmd+Option+P | Toggle profiling |
Fonts look wrong or missing characters
- CRT bundles MesloLGS NF (a Nerd Font) which is installed to
~/.config/crt/fonts/ - If you see boxes or missing glyphs, the font may not be loading - check the config font family setting
Theme not loading
- Check that the theme file exists at
~/.config/crt/themes/{name}.css - Check the terminal output for CSS parsing errors
- Colors and effects hot-reload on save; background images and sprites need a new window (
Cmd+N)
Performance issues
- Themes with multiple backdrop effects (particles + matrix + sprites) use more resources than simpler themes
- Try
minimalordraculaif you want a lightweight option
Found a bug? Enable profiling with Cmd+Option+P, reproduce the issue, then submit a bug report with the profile log from ~/.config/crt/.
MIT