Pry Theme is a plugin for Pry, which helps you to customize your Pry
All you need is to install the gem. The
pry-theme plugin will be detected and
gem install pry-theme
Theme file is a valid YAML file, which has
.prytheme extension (for example,
beautiful.prytheme). In order to set up the desired theme, add the following
line into your
Pry.config.theme = "theme-name"
The default theme is
pry-classic (basically, you won't notice it, because
it copies the default outlook of Pry, just as you didn't install anything).
Let's change it to something more neoteric:
Pry.config.theme = "pry-modern"
That's all! Launch your Pry and you will see the changes.
Pry Theme has a command-line interface available via Pry. Just launch Pry and start working with it. For example, you can temporary change themes on the fly (only for the current session):
 pry(main)> pry-theme pry-classic
This will switch your current theme to
You can find more information about CLI in Pry Theme Wiki.
Creating new themes isn't hard. Check out Pry Theme Wiki article on that.
Adding new themes
Theme files must have
.prytheme extension. Check out Pry Theme Collection,
if you want to find some themes other than default ones.
On GNU/Linux and Mac OS
Put your theme file in
If you don't want to bother with routine operations, you can install a theme
from the Collection with help of
pry-theme -i <name> command. For example, you
can install tomorrow-night theme:
pry-theme -i tomorrow-night.
Oh, and don't forget to adjust your
Basically, it will run on any terminal that is capable of displaying 256 colors, but with a couple of admonishments. They are listed below.
- Mac OS.
I hope it runs on Windows too, but I couldn't find any sane terminal, that would support 256 colors. Sorry, Windows guys. Please, file an issue, if you noticed bugs or something.
Ruby implementations support
- MRI 1.9.3
- MRI 1.9.2
- MRI 1.8.7
- REE 1.8.7-2012.02
- JRuby 1.6.7
- Rubinius 1.2.4
Under the hood
Basically, Pry Theme is nothing but a CodeRay color scheme with a human-readable syntax.
- Thanks to banister for bringing the plugin in masses and contributing a bunch of themes;
- Thanks to Karandashev for "Puzzle" font;
- Thanks to Creatica for "Dited" font;
- Thanks to noprompt for a HEX to ANSI conversion Ruby implementation, which I borrowed from one of his projects.
The project uses Zlib License. See LICENSE file for more information.