Getting Started with CRT Terminal
CRT Terminal (“CRT’s a Ridiculous Terminal”) is a GPU-accelerated terminal emulator with CSS-based theming and visual effects. This tutorial walks you from a fresh install to a working, customized terminal. You will install CRT, explore its built-in themes, change your font and window size, and see live hot reload in action by editing a theme file.
No prior experience with CRT is required. You need a macOS or Linux system and a text editor.
Prerequisites
Section titled “Prerequisites”- macOS 12+ or a modern Linux distribution
curlavailable in your current shell- A text editor (any editor works; examples use
nano)
Step 1: Install CRT Terminal
Section titled “Step 1: Install CRT Terminal”Run the one-line installer:
curl -sSL https://raw.githubusercontent.com/colliery-io/crt/main/scripts/install.sh | shThe installer detects your platform automatically:
- macOS: CRT is installed to
/Applications/crt.app - Linux: CRT is installed to
~/.local/bin/crt
After installation finishes, the installer prints the path and any first-run instructions.
Verify the installation:
On macOS, open Finder and look for crt.app in your Applications folder, or launch it from Spotlight with Cmd+Space then type crt.
On Linux, verify the binary is on your PATH:
which crt# Expected: /home/yourname/.local/bin/crtIf which crt returns nothing, add ~/.local/bin to your PATH:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrcsource ~/.bashrcStep 2: Launch CRT Terminal
Section titled “Step 2: Launch CRT Terminal”macOS: Double-click crt.app in Applications, or launch it with:
open /Applications/crt.appLinux:
crtCRT opens with the default synthwave theme — a deep purple background with cyan text and a neon perspective grid in the backdrop. You should see a working shell prompt.
Step 3: Explore Themes with the Context Menu
Section titled “Step 3: Explore Themes with the Context Menu”CRT ships with 19 built-in themes. The fastest way to browse them is the right-click context menu.
- Right-click anywhere in the terminal window.
- A context menu appears. Look for the Theme submenu.
- Click any theme name to switch to it immediately.
Try a few themes to get a feel for the range of visual styles:
| Theme | Style |
|---|---|
dracula |
Classic dark purple with bright pastels |
matrix |
Green-on-black cascading characters |
tron |
Electric cyan on deep black |
vaporwave |
Pink and purple pastel gradients |
rain |
Animated rainfall backdrop |
particles |
Floating particle backdrop |
pokemon |
Animated Pikachu sprite with an indigo night background |
minimal |
Clean, no-effects, distraction-free |
Theme switching is instant — no restart required.
Step 4: Understand the Config Directory
Section titled “Step 4: Understand the Config Directory”CRT reads its configuration from ~/.config/crt/. The directory structure looks like this:
~/.config/crt/├── config.toml # Main configuration file└── themes/ # Theme CSS files live here ├── mytheme.css # (you will create this later) └── images/ # Images used by themesThe main config file uses TOML format. If it does not exist yet, CRT creates it with defaults on first run.
Open the config file in your editor:
nano ~/.config/crt/config.tomlIf the file is empty or does not exist, create it:
mkdir -p ~/.config/crtnano ~/.config/crt/config.tomlStep 5: Change the Active Theme
Section titled “Step 5: Change the Active Theme”Inside config.toml, find or add the [theme] section:
[theme]name = "tron"Save the file. CRT detects the change and reloads immediately — you do not need to restart.
Switch back to synthwave (the default release theme):
[theme]name = "synthwave"The name value matches the filename of the CSS file, without the .css extension. Built-in themes are always available by name. Custom themes go in ~/.config/crt/themes/ and are referenced the same way.
Step 6: Adjust Font and Window Size
Section titled “Step 6: Adjust Font and Window Size”Still in config.toml, add [font] and [window] sections. Here is a complete example with common customizations:
[theme]name = "synthwave"
[font]family = ["JetBrains Mono", "Fira Code", "SF Mono", "Menlo"]size = 16.0line_height = 1.4
[window]columns = 120rows = 36title = "My Terminal"Font settings explained:
family— An ordered list of font names. CRT tries each in order and uses the first one installed on your system. The default list is["MesloLGS NF", "JetBrains Mono", "Fira Code", "SF Mono", "Menlo"].size— Font size in points. Default is14.0.line_height— Line spacing multiplier. Default is1.5. Values between1.2and1.6are common.
Window settings explained:
columns— Terminal width in character columns. Default is80.rows— Terminal height in rows. Default is24.title— The window title bar text.
Save the file. Font size and window title update immediately via hot reload. Window dimensions apply on next launch.
Font size keyboard shortcuts:
You can also adjust font size interactively without editing the config:
| Shortcut | Action |
|---|---|
Cmd+= |
Increase font size |
Cmd+- |
Decrease font size |
Cmd+0 |
Reset font to configured size |
Step 7: Configure the Cursor
Section titled “Step 7: Configure the Cursor”Add a [cursor] section to customize the cursor style and blink behavior:
[cursor]style = "bar"blink = trueblink_interval_ms = 530Available cursor styles:
| Style | Appearance |
|---|---|
block |
Full character cell (default) |
bar |
Thin vertical bar |
underline |
Horizontal line under character |
Save the file to apply the change immediately.
Step 8: Experience Hot Reload by Editing a Theme File
Section titled “Step 8: Experience Hot Reload by Editing a Theme File”Hot reload is one of CRT’s most useful features for theme development. Any time you save a theme CSS file, CRT reloads it instantly — no restart, no flicker.
Let’s create a minimal custom theme to see this in action.
Create the theme file:
touch ~/.config/crt/themes/mytest.cssSet it as the active theme in config.toml:
[theme]name = "mytest"Save config.toml. The terminal will appear blank or use default colors because mytest.css is empty.
Open the theme file in your editor (use a second terminal window, or your graphical editor):
nano ~/.config/crt/themes/mytest.cssAdd some initial styling:
:terminal { color: #e0e0e0; background: #1a1a2e; font-size: 14; line-height: 1.5;}
:terminal::cursor { background: #e94560;}Save the file. Watch the CRT window — it should update immediately with a dark blue background, light gray text, and a red cursor.
Now change the background color while CRT is still open:
:terminal { color: #e0e0e0; background: #0f3460; font-size: 14; line-height: 1.5;}Save again. The background updates in real time — this is hot reload working. You can iterate on your theme as quickly as you can save the file.
Step 9: Learn the Essential Keyboard Shortcuts
Section titled “Step 9: Learn the Essential Keyboard Shortcuts”Get familiar with these shortcuts before moving on:
| Shortcut | Action |
|---|---|
Cmd+T |
New tab |
Cmd+W |
Close current tab |
Cmd+1 through Cmd+9 |
Switch to tab by number |
Cmd+Shift+[ |
Switch to previous tab |
Cmd+Shift+] |
Switch to next tab |
Cmd+N |
New window |
Cmd+C |
Copy selection |
Cmd+V |
Paste |
Cmd+F |
Search |
Cmd+Q |
Quit |
On Linux, substitute Ctrl for Cmd.
Next Steps
Section titled “Next Steps”You now have CRT installed, configured with a custom font size and window size, and know how to use hot reload to iterate on themes in real time.
Where to go next:
- Build a complete theme from scratch — Build Your First Theme
- Add animated sprites to a theme — Add Animated Sprites to Your Theme
- All CSS properties available in themes — Theme CSS Properties Reference
- All config.toml options — Configuration Reference
- Backdrop effects in detail — Theme CSS Properties Reference