CRT's a Ridiculous Terminal
A GPU-accelerated terminal that's actually fun to look at.
"This is cool!"
— Mat (6 years old)
Why?
I really like Hyper.js - being able to use CSS to style a terminal just made it fun. But it hasn't been maintained and has been regressing in performance. 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 fast as rio or alacritty, but it's got CSS theming, visual effects, and my 6-year-old thinks it's cool. What more could you want?
What makes it fun
- CSS Theming - Style your terminal like a website. Hot-reload on save.
- Visual Effects - CRT scanlines, matrix rain, particle systems, animated sprites
- 16 Built-in Themes - Synthwave, Matrix, Nyan Cat, Fallout Pip-Boy, and more
- GPU Rendering - Smooth 60fps via wgpu/vello
Install
curl -sSL https://raw.githubusercontent.com/colliery-io/crt/main/scripts/install.sh | sh
Windows support coming Soon™
Quick Start
- Launch CRT from Applications (macOS) or run
crt(Linux) - Edit
~/.config/crt/config.tomlto try different themes:[theme] name = "matrix" # or "nyancat", "synthwave", "minimal", etc. - Save and press
Cmd+Nfor a new window with your theme
Themes
CRT includes 16 built-in themes. See the Theme Gallery for screenshots.
| 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 |
Custom Themes
Create your own at ~/.config/crt/themes/mytheme.css and set name = "mytheme" in config.
Reference
Keyboard Shortcuts
Windows & Tabs
| Shortcut | Action |
|---|---|
| Cmd+N | New window |
| Cmd+T | New tab |
| Cmd+W | Close tab |
| Cmd+Shift+W | Close window |
| Cmd+Shift+R | Rename window |
| Cmd+1-9 | Switch to tab 1-9 |
| Cmd+Shift+[ | Previous tab |
| Cmd+Shift+] | Next tab |
| Double-click tab | Rename tab |
Navigation
| Shortcut | Action |
|---|---|
| Shift+Page Up | Scroll up through history |
| Shift+Page Down | Scroll down through history |
| Shift+Home | Jump to top of scrollback |
| Shift+End | Jump to bottom |
| Cmd+Click | Open URL under cursor |
Search & Font
| Shortcut | Action |
|---|---|
| Cmd+F | Open search |
| Enter | Find next match |
| Escape | Close search |
| Cmd+= | Increase font size |
| Cmd+- | Decrease font size |
| Cmd+0 | Reset font size |
Other
| Shortcut | Action |
|---|---|
| Cmd+C | Copy selection |
| Cmd+V | Paste |
| Cmd+A | Select all |
| Cmd+K | Clear scrollback |
| Cmd+Option+P | Toggle profiling |
| Ctrl+Cmd+F | Toggle fullscreen |
Building from Source
Requires Rust 2024 edition:
git clone https://github.com/colliery-io/crt.git
cd crt
cargo build --release
Configuration
Config lives at ~/.config/crt/config.toml. Themes at ~/.config/crt/themes/.
Accessibility
- Focus indicators: Visual focus rings on active elements
- Keyboard navigation: Full keyboard control for tabs, menus, search
- Calm themes: Use
minimalordraculaif effects are distracting
Known limitation: No screen reader support yet.
Troubleshooting
Fonts look wrong or missing characters
CRT bundles MesloLGS NF (a Nerd Font) at ~/.config/crt/fonts/. If you see boxes, check the font family setting in config.
Theme not loading
- Check the theme file exists at
~/.config/crt/themes/{name}.css - Check terminal output for CSS parsing errors
- Background images and sprites need
Cmd+Nto reload
Performance issues
Themes with multiple effects use more resources. Try minimal or dracula for lightweight options.
Reactive themes not working
See the Troubleshooting Guide for shell integration setup.
Reporting Issues
Enable profiling with Cmd+Option+P, reproduce the issue, then open an issue with the profile log from ~/.config/crt/.
Contributing
License
MIT OR Apache-2.0