Full visual profile manager for Ghostty terminal — beyond just colors.
Project description
🍚 ghostty-rice
Full visual profile manager for Ghostty — beyond just colors.
English • 简体中文
Beyond just colors — total visual control for your Ghostty terminal.
One command. Entire visual transformation. Ghostty reloads instantly.
Profile Gallery (click to expand)
| Catppuccin Mocha | One Dark Pro | Cyber |
|---|---|---|
| Nord | Dracula | Frosted |
|---|---|---|
| Gruvbox | ||
|---|---|---|
| Minimal | ||
|---|---|---|
Color themes only change 16 ANSI colors. ghostty-rice manages complete visual profiles — colors, opacity, blur, titlebar, cursor, padding, icons — and switches them with a single command.
rice switch # Interactive live switch with instant preview + reload
Why ghostty-rice?
Projects like catppuccin/ghostty and iTerm2-Color-Schemes are color palettes. A terminal's look is more than 16 colors:
| Other Color Schemes | 🍚 ghostty-rice |
|---|---|
| ✅ Foreground & Background | ✅ Everything they do, plus: |
| ✅ 16 ANSI Palette Colors | ✅ Window Opacity & Blur Effects |
| ❌ Titlebar Style | ✅ Titlebar Style (tabs, transparent, hidden) |
| ❌ Cursor Customization | ✅ Cursor Shape, Color & Animation |
| ❌ Window Spacing | ✅ Window Padding & Spacing |
| ❌ App Icon | ✅ App Icon Variant |
Install
pipx install ghostty-rice
Other methods
# With pip
pip install ghostty-rice
# From source
git clone https://github.com/jayleonc/ghostty-rice.git
cd ghostty-rice
pip install -e .
Quick Start
# List available profiles
rice list
# Interactive switch (Themes / Appearance / Fonts / Prompt — 4-tab live preview)
rice switch
# Interactive font picker (quality fonts only, +/- to resize live)
rice font
# Interactive zsh prompt picker + one-shot install to ~/.zshrc
rice prompt --install
# Preview without switching
rice preview "Cyber"
# Check setup
rice doctor
# Install safe fixes (recommended once, macOS terminfo for Vim/Neovim)
rice doctor --fix
# See current profile
rice current
Built-in Profiles (10)
| Profile | Style |
|---|---|
| Catppuccin Mocha | Late-night café warmth — fully opaque, steady bar cursor, cozy |
| One Dark Pro | Studio baseline — high-adoption One Dark family, stable contrast |
| Codex | Graphite focus — Codex-like dark chrome, warm accent, low-glare text |
| Everforest | Soft woodland dark — muted contrast for long sessions |
| Cyber | Blade Runner HUD — translucent glass on neon wallpapers, hidden chrome |
| Minimal | The typewriter — zero decoration, generous margins, Dieter Rams simplicity |
| Frosted | Morning studio — frosted light mode with deeper ink and near-opaque glass |
| Nord | Scandinavian clarity — fully opaque cool precision, Arrival-grade calm |
| Gruvbox | Analog warmth — fully opaque, earth tones, Wes Anderson palette |
| Dracula | Gothic cinema — fully opaque purple-grey, bold accents, Tim Burton drama |
Rice Switch
rice switch opens a bordered, Mason/Lazy-style panel with 4 tabs:
| Tab | What it does |
|---|---|
| 1 Themes | Browse 14 dark theme families with live preview and color swatches |
| 2 Appearance | Accent / Background / Foreground colors, Contrast, Translucent glass |
| 3 Fonts | Font family picker + font size adjustment |
| 4 Prompt | Shell prompt presets with sample preview (applied on confirm) |
Keyboard flow:
1/2/3/4: switch tabsj/kor↑/↓: move selectionh/lor←/→or+/-: adjust values / font size/: search in current list tabi: apply current selected item immediatelyu: reset to selected theme defaultsEnter: confirm and apply allq: cancel and rollback
Shell Prompt Presets (zsh)
8 built-in prompt presets — from ultra-minimal to two-line with git branch:
| Preset | Sample | Style |
|---|---|---|
| Zen | ❯ |
Status arrow only |
| Minimal Arrow | ghostty-rice › |
Repo name + arrow |
| Lambda | λ ghostty-rice › |
Lambda accent |
| Dev Compact | (.venv) repo/subdir » |
Virtualenv + short path |
| Starship | ~/project main ⏎ ❯ |
Two-line with git branch |
| Boxed | ┌ ~/project (main) ⏎ └ ❯ |
Box-drawn frame + git |
| Deep Path | (.venv) ~/Dev/project ❯ |
Full path |
| Context Rich | [.venv] jay@mbp project # |
user@host + path |
Prompts can be selected inside rice switch (Tab 4) or standalone:
rice prompt --install
First install requires one reload:
source ~/.zshrc
After that, changing preset via rice prompt or rice switch is applied on the next prompt automatically in Ghostty zsh.
The bootstrap also sets a subtle default for zsh-autosuggestions (fg=#555555, theme-safe hex) and exports COLORTERM=truecolor.
If you use Oh My Zsh / Starship / Powerlevel10k, keep the rice bootstrap near the end of ~/.zshrc so it takes effect after other prompt initializers.
Custom Profiles
Profile files follow Ghostty's own format — plain key = value, no file extension, filename is the profile name.
1. Create from an existing profile:
rice create "My Theme" --from "Catppuccin Mocha"
2. Or write one from scratch:
Create a file in the rice profiles directory:
~/.config/ghostty/rice/profiles/
theme = Catppuccin Mocha
background-opacity = 0.90
background-blur = macos-glass-regular
macos-titlebar-style = transparent
window-padding-x = 12
window-padding-y = 8
cursor-style = block
cursor-style-blink = true
3. Add metadata (optional) in manifest.toml alongside your profiles:
[profiles."My Theme"]
description = "My custom visual profile"
author = "me"
tags = ["dark", "custom"]
4. Use it:
rice switch # then pick "My Theme"
Diagnostics
rice doctor
Checks Ghostty installation, version, running state, automation permissions, xterm-ghostty terminfo, config directory, and profile status in one command.
If Vim/Neovim colors or key behavior look wrong, run rice doctor --fix once.
How It Works
ghostty-rice preserves your base Ghostty config (shell, fonts, keybinds) and only manages the visual profile section. When you switch profiles:
- Your base config stays untouched
- The profile section is replaced
- Ghostty is auto-reloaded (macOS: native AppleScript API, Linux: xdotool)
Platform Support
| Platform | Profile switching | Auto-reload |
|---|---|---|
| macOS | Full | Native AppleScript API |
| Linux | Full | Via xdotool (optional) |
Call for Themes
We're building a collection of stunning Ghostty visual profiles — and your profile could be next.
If you've crafted a look you love, submit it as a PR:
- Add your profile file to
ghostty_rice/presets/ - Add metadata in
ghostty_rice/presets/manifest.toml - (Bonus) Include a screenshot in
docs/screenshots/
All contributors are credited in the manifest. See Contributing below for dev setup.
Contributing
Contributions welcome — especially new profiles, platform support, and shader management.
git clone https://github.com/jayleonc/ghostty-rice.git
cd ghostty-rice
uv venv .venv && source .venv/bin/activate
uv pip install -e ".[dev]"
pytest
License
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ghostty_rice-0.2.1.tar.gz.
File metadata
- Download URL: ghostty_rice-0.2.1.tar.gz
- Upload date:
- Size: 80.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ae47f0dd0e7efa8212f19326230447699098a78c4e68094b9ef13edaf84feb3d
|
|
| MD5 |
532376fe2ecc69525287c1a33144ff20
|
|
| BLAKE2b-256 |
a41691acbd712bf444e48849a1147ee07862ed353be34f3c25acd8709b582929
|
Provenance
The following attestation bundles were made for ghostty_rice-0.2.1.tar.gz:
Publisher:
publish.yml on Jayleonc/ghostty-rice
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ghostty_rice-0.2.1.tar.gz -
Subject digest:
ae47f0dd0e7efa8212f19326230447699098a78c4e68094b9ef13edaf84feb3d - Sigstore transparency entry: 1155156474
- Sigstore integration time:
-
Permalink:
Jayleonc/ghostty-rice@1c28f8e08d8126cb7188caa4309438b3e63bea42 -
Branch / Tag:
refs/tags/v0.2.1 - Owner: https://github.com/Jayleonc
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1c28f8e08d8126cb7188caa4309438b3e63bea42 -
Trigger Event:
release
-
Statement type:
File details
Details for the file ghostty_rice-0.2.1-py3-none-any.whl.
File metadata
- Download URL: ghostty_rice-0.2.1-py3-none-any.whl
- Upload date:
- Size: 46.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c8b6a4aad1deecf5061ecbe142da16564e6cc8bfe1de04936f8f4c9e92c57c2a
|
|
| MD5 |
031942289db30ee17b2b7e1bd64d40c6
|
|
| BLAKE2b-256 |
c348ca67509480260cce8628824230b35b9b6e172ec121676b71d2c1d1442bad
|
Provenance
The following attestation bundles were made for ghostty_rice-0.2.1-py3-none-any.whl:
Publisher:
publish.yml on Jayleonc/ghostty-rice
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ghostty_rice-0.2.1-py3-none-any.whl -
Subject digest:
c8b6a4aad1deecf5061ecbe142da16564e6cc8bfe1de04936f8f4c9e92c57c2a - Sigstore transparency entry: 1155156479
- Sigstore integration time:
-
Permalink:
Jayleonc/ghostty-rice@1c28f8e08d8126cb7188caa4309438b3e63bea42 -
Branch / Tag:
refs/tags/v0.2.1 - Owner: https://github.com/Jayleonc
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1c28f8e08d8126cb7188caa4309438b3e63bea42 -
Trigger Event:
release
-
Statement type: