How to Install CRT
This guide covers every method for installing CRT Terminal: the one-line install script, building from source, and creating a macOS app bundle. By the end you will have a working CRT installation with its configuration directory set up.
Method 1: One-line install script (recommended)
Section titled “Method 1: One-line install script (recommended)”The install script downloads a pre-built release from GitHub, installs it to the right location for your platform, and sets up ~/.config/crt/ with default themes and fonts.
curl -sSL https://raw.githubusercontent.com/colliery-io/crt/main/scripts/install.sh | shThe script requires curl and tar. It detects your OS and CPU architecture automatically.
What the script does
Section titled “What the script does”On macOS:
- Downloads
crt-VERSION-macos-ARCH.tar.gzfrom GitHub Releases. - Installs
crt.appto/Applications/. - Removes the macOS quarantine attribute (may prompt for your password).
- Copies themes, fonts, and
config.tomlto~/.config/crt/.
On Linux:
- Downloads
crt-VERSION-linux-ARCH.tar.gzfrom GitHub Releases. - Copies the
crtbinary to~/.local/bin/(or your chosen directory). - Makes the binary executable.
- Copies themes, fonts, and
config.tomlto~/.config/crt/.
Customising the install with environment variables
Section titled “Customising the install with environment variables”| Variable | Default | Description |
|---|---|---|
CRT_INSTALL_DIR |
~/.local/bin |
Where to install the binary on Linux |
CRT_VERSION |
latest | Pin to a specific release tag (e.g. 0.1.0) |
Example — install a specific version to a custom path:
CRT_VERSION=0.1.0 CRT_INSTALL_DIR=/usr/local/bin \ curl -sSL https://raw.githubusercontent.com/colliery-io/crt/main/scripts/install.sh | shAdding the binary to your PATH (Linux)
Section titled “Adding the binary to your PATH (Linux)”If ~/.local/bin is not already in your PATH, the script will tell you. Add it permanently:
Bash (~/.bashrc or ~/.bash_profile):
export PATH="$HOME/.local/bin:$PATH"Zsh (~/.zshrc):
export PATH="$HOME/.local/bin:$PATH"Fish:
fish_add_path ~/.local/binThen reload your shell: source ~/.zshrc (or restart the terminal).
Method 2: Build from source
Section titled “Method 2: Build from source”See How to Build from Source for full instructions. The short version:
git clone https://github.com/colliery-io/crt.gitcd crtcargo build --release# Binary is at target/release/crtAfter building, run the config installer to populate ~/.config/crt/:
./scripts/dev.sh installMethod 3: macOS app bundle
Section titled “Method 3: macOS app bundle”If you want to distribute or install a self-contained .app bundle without using the release script:
git clone https://github.com/colliery-io/crt.gitcd crt./installer/macos/build-app.shThis builds target/release/crt.app. Copy it to /Applications/ manually:
cp -r target/release/crt.app /Applications/To build a .pkg installer instead:
./installer/macos/build-pkg.shopen target/release/crt-*.pkgThe .pkg installer places crt.app in /Applications/ and runs a postinstall script that sets up ~/.config/crt/.
Post-install verification
Section titled “Post-install verification”macOS: Launch CRT from Spotlight (Cmd+Space, type crt), Launchpad, or Finder. A window should open with the Synthwave theme.
Linux: Run:
crtIf the command is not found, check that ~/.local/bin is in your PATH (see above).
Verify the config directory was created:
ls ~/.config/crt/You should see:
config.toml ← your settings (edit this)default_config.toml ← reference copy, updated on each installthemes/ ← CSS theme filesfonts/ ← bundled NerdFonts (MesloLGS NF)shell/ ← optional shell integration scriptsConfig directory structure
Section titled “Config directory structure”CRT reads all configuration from ~/.config/crt/ by default. To use a different location, set the CRT_CONFIG_DIR environment variable before launching:
CRT_CONFIG_DIR=/path/to/config crtKey files:
| Path | Purpose |
|---|---|
~/.config/crt/config.toml |
Main configuration file |
~/.config/crt/default_config.toml |
Annotated reference; updated on every install |
~/.config/crt/themes/{name}.css |
Theme files; set [theme] name = "..." in config |
~/.config/crt/fonts/ |
Fonts loaded before system fonts |
~/.config/crt/shell/ |
Shell integration scripts for reactive themes |
Updating
Section titled “Updating”Re-run the install script to update to the latest release. The script preserves your existing config.toml and overwrites default themes to deliver any upstream changes. Your custom theme files (files not matching a built-in name) are left untouched.
curl -sSL https://raw.githubusercontent.com/colliery-io/crt/main/scripts/install.sh | shTo update to a specific version:
CRT_VERSION=0.2.0 curl -sSL https://raw.githubusercontent.com/colliery-io/crt/main/scripts/install.sh | shUninstalling
Section titled “Uninstalling”macOS:
rm -rf /Applications/crt.apprm -rf ~/.config/crtLinux:
rm ~/.local/bin/crtrm -rf ~/.config/crtYour config.toml and any custom themes live in ~/.config/crt/. Delete that directory only if you want to remove all personalisation.