Gogh: A Shell Script That Repaints Your Terminal From a Theme Library
Gogh is a collection of color schemes for various terminal emulators, including Gnome Terminal, Pantheon Terminal, Tilix, and XFCE4 Terminal also compatible with iTerm on macOS. (https://gogh-co.github.io/Gogh/)
At a glance
- What is it?
- Gogh is a collection of terminal color schemes applied by a shell script, covering Gnome Terminal, Alacritty, Ghostty, Foot, Cygwin and more. It is a convenience layer, not a configuration framework, and that distinction decides whether it fits your setup.
- Who is it for?
- Adopt Gogh if you run one of the terminals in its support table and want a palette applied in a single command, or if you provision machines and need the documented non-interactive path. Skip it if your terminal is absent from that table, or if you need the script to manage anything beyond colors.
- Can I use it commercially?
- Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
- Is it still maintained?
- Yes. The repository last received commits 2 days ago.
- What is it written in?
- Mainly Shell, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 29, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The gap Gogh fills between a palette and a working terminal
Picking colors is easy. Getting them into a terminal is not. Every emulator stores its palette differently: Gnome Terminal keeps profiles in dconf, Alacritty and Ghostty read a text config file, Terminator uses a Python configuration, Cygwin and Mintty use yet another format. A color scheme that looks good in a screenshot has to be translated into each of those formats before it does anything.
Gogh's answer is a library of schemes plus a script that knows how to write each format. The README describes it as a collection of color schemes for terminal emulators across Linux and macOS, plus Cygwin/Mintty on Windows, and it links a Terminal Support table where each emulator maps to a specific function such as apply_alacritty(), apply_foot(), apply_ghostty(), apply_gtk() and apply_cygwin() in apply-colors.sh. That mapping is the product. The palettes are the payload.
The audience is narrow and practical: people who already know which terminal they use and want a different look without hand-editing config files, and people who set up machines repeatedly and want that look to be reproducible. It is not aimed at anyone building a theming system of their own.
How the installer decides what to write and where
The entry point is gogh.sh, and the heavy lifting sits in apply-colors.sh. Theme definitions live under themes/, with data/ alongside it, and the repository ships Python helpers (apply-alacritty.py, apply-terminator.py) plus a requirements.txt listing ruamel.yaml, pyyaml, tomli, tomli_w, configobj, rich and unidecode. Those dependencies tell you the script parses structured config formats rather than only appending text, which is what lets it edit Alacritty YAML or TOML-style files without leaving them malformed.
The flow is: fetch or clone the repository, pick a theme, detect or accept the target terminal, then dispatch to the matching apply_* function, which writes the palette in that terminal's native format. On dconf-based terminals the pre-install step installs dconf-cli and uuid-runtime (or dconf and util-linux on Arch), which is the clearest signal that Gnome-family support works by generating a profile and loading it into dconf.
A detail worth noting: the README documents a Color Hash section and a WCAG accessibility contrast section. That means contrast data exists for the schemes, though the README does not spell out how it is computed or whether the installer filters on it.
Installing Gogh and applying your first scheme
Install the prerequisites first. On Debian or Ubuntu the README gives this command, which brings in the dconf tooling and a UUID generator used for profile creation:
sudo apt-get install dconf-cli uuid-runtimeOn Arch the equivalent is pacman with dconf and util-linux. Once those are present, the interactive installer is one line. The README shows the wget form for Linux and the curl form for macOS:
bash -c "$(wget -qO- https://gogh.website/gogh)"Run it and you get a numbered list of themes in the terminal. Selecting one applies it and, on Gnome-family terminals, creates a profile you can switch to.
If you already know the name, pass it after a double dash. The README uses "Aci" as the example:
bash -c "$(wget -qO- https://gogh.website/gogh)" -- "Aci"For scripting, dotfiles or container images, the README points to docs/NON_INTERACTIVE.md, which covers cloning the repo or downloading only the required files, selecting themes by name or slug as CLI arguments, and the environment variables TERMINAL, GOGH_NONINTERACTIVE, GOGH_USE_NEW_THEME and the GOGH_*_SCRIPT path overrides. Set TERMINAL when detection cannot identify your emulator; that variable is the documented escape hatch.
Where Gogh stops being the right tool
Gogh changes colors. It does not manage fonts, cursor shape, keybindings, window opacity or shell prompt. If your goal is a fully reproducible terminal configuration, Gogh covers one slice of it and you still need your own dotfiles for the rest.
The support table is the hard boundary. Terminals absent from that table are not handled, and the README does not describe a generic fallback that writes an arbitrary palette format. If you use an emulator outside the list, the script has nothing to dispatch to.
There is also a re-run question. The README documents installation, specific-theme installation and non-interactive installation, but it does not document rollback or removal. Nothing in the README describes how to undo an applied scheme or restore the previous profile. On a machine where the existing palette matters, that is a real gap: take note of your current settings before running anything, because the project does not tell you how to get them back.
Finally, the install path is a remote script piped into bash from gogh.website. That is convenient and it is also the standard reason people refuse this class of installer. Cloning the repository and running the local script is the alternative the non-interactive guide supports.
Gogh against hand-written dotfiles and base16-style generators
The obvious alternative is writing the palette into your terminal config yourself. For Alacritty or Ghostty that is a handful of hex values in a file you already version. The difference is scope: your dotfile covers one terminal and one machine, while Gogh carries the same scheme across Gnome Terminal, Pantheon, Tilix, XFCE4, Alacritty, Foot, Ghostty, Cygwin and iTerm on macOS. If you only ever use one emulator, the script is an extra dependency between you and a file you could edit directly.
The other family of alternatives is palette generators that derive a full theme from a single source color, producing coordinated values for the terminal and for applications. Gogh does not work that way. It ships fixed schemes authored by contributors, and the README points to docs/CONTRIBUTING.md for adding your own. The trade-off is consistency by curation rather than by algorithm: you get a palette someone designed and checked, and you do not get one tuned to a wallpaper or brand color.
There is a middle path in the repository itself. Because the theme data lives in themes/ and data/, and the apply functions are separate per terminal, you can read a scheme out of the repository and paste it into your own config, using Gogh as a catalog instead of an installer.
Maintenance, licensing and what upgrading costs you
The repository is not archived, and the last push was on 2026-09-18. Releases are frequent and named after theme counts, with v1235 (Themes 1235) on 2026-09-16, v1233 on 2026-09-15 and v1228 on 2026-09-06. That cadence is the shape of the project: themes accumulate, and the installer changes less often than the catalog does.
Upgrade cost is therefore low in the common case. Re-running the installer picks up new schemes. The risk sits in the Python dependencies pinned in requirements.txt (ruamel.yaml==0.17.21 is pinned exactly, the rest are unpinned) and in the config-file writers: if your terminal's format changes, the apply function for that terminal has to change with it. The repository includes tests/docker/ entries per terminal, which is where that compatibility work is exercised.
On licensing, the repository root contains LICENSE, LICENSE-APACHE and LICENSE-MIT, and the GitHub metadata reports the licence as NOASSERTION, meaning GitHub could not classify it automatically. That combination is worth reading before you redistribute the themes inside a product. The README does not explain which licence applies to which part, and this is not legal advice: read the three files yourself.
Editorial conclusion
Adopt Gogh if you run one of the terminals in its support table and want a palette applied in a single command, or if you provision machines and need the documented non-interactive path. Skip it if your terminal is absent from that table, or if you need the script to manage anything beyond colors. Before rolling it out on a fleet, read docs/NON_INTERACTIVE.md and confirm the TERMINAL value for your emulator, then run the installer once on a throwaway profile and check that your existing color settings are the only thing it touched.
Frequently asked questions
What are the Gogh terminal themes?
Gogh is a collection of terminal color schemes, described in the README as designed to improve readability with better contrast and color differentiation. The schemes are stored under themes/ in the repository and applied by the installer to whichever supported terminal you are using.
What are the available color palettes for the GNOME terminal in Gogh?
The README does not enumerate the palettes, but it does document installing a specific one by name, using "Aci" as the example after a double dash. The full list is what the interactive installer prints when you run it.
What is the best terminal theme in Gogh?
The project does not rank its schemes. The README does include a WCAG accessibility contrast section and a Color Hash section, so contrast information exists for the themes, but it does not state how that is calculated or whether any scheme is recommended over another.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/gogh-co-gogh)