sharkdp/pastel
{ "createdAt": "2019-06-02T16:04:32Z", "defaultBranch": "master", "description": "A command-line tool to generate, analyze, convert and manipulate colors", "fullName": "sharkdp/pastel", "homepage": "", "language": "Rust", "name": "pastel", "pushedAt": "2025-11-09T21:36:42Z", "stargazersCount": 6059, "topics": [ "cli", "color-converter", "color-space", "colors", "command-line", "rust", "terminal", "tool" ], "updatedAt": "2025-11-25T15:56:47Z", "url": "https://github.com/sharkdp/pastel"}pastel
Section titled “pastel”pastel is a command-line tool to generate, analyze, convert and manipulate colors. It supports many different color formats and color spaces like RGB (sRGB), HSL, CIELAB, CIELCh as well as ANSI 8-bit and 24-bit representations.
In action
Section titled “In action”![pastel in action]!(doc/pastel.gif)
Tutorial
Section titled “Tutorial”Getting help
Section titled “Getting help”pastel provides a number of commands like saturate, mix or paint. To see a complete list, you can simply run
pastelTo get more information about a specific subcommand (say mix), you can call pastel mix -h or pastel help mix.
Composition
Section titled “Composition”Many pastel commands can be composed by piping the output of one command to another, for example:
pastel random | pastel mix red | pastel lighten 0.2 | pastel format hexSpecifying colors
Section titled “Specifying colors”Colors can be specified in many different formats:
lightslategray'#778899'778899789'rgb(119, 136, 153)''119,136,153''hsl(210, 14.3%, 53.3%)'Colors can be passed as positional arguments, for example:
pastel lighten 0.2 orchid orange lawngreenThey can also be read from standard input. So this is equivalent:
printf "%s\n" orchid orange lawngreen | pastel lighten 0.2You can also explicitly specify which colors you want to read from the input. For example, this mixes red (which is read from STDIN) with blue (which is passed on the command line):
pastel color red | pastel mix - blueUse cases and demo
Section titled “Use cases and demo”Converting colors from one format to another
Section titled “Converting colors from one format to another”pastel format hsl ff8000Show and analyze colors on the terminal
Section titled “Show and analyze colors on the terminal”pastel color "rgb(255,50,127)"
pastel color 556270 4ecdc4 c7f484 ff6b6b c44d58Pick a color from somewhere on the screen
Section titled “Pick a color from somewhere on the screen”pastel pickGenerate a set of N visually distinct colors
Section titled “Generate a set of N visually distinct colors”pastel distinct 8Get a list of all X11 / CSS color names
Section titled “Get a list of all X11 / CSS color names”pastel listName a given color
Section titled “Name a given color”pastel format name 44cc11Print colorized text from a shell script
Section titled “Print colorized text from a shell script”bg="hotpink"fg="$(pastel textcolor "$bg")"
pastel paint "$fg" --on "$bg" "well readable text"pastel paint -n black --on red --bold " ERROR! "echo " A serious error"
pastel paint -n black --on yellow --bold " WARNING! "echo " A warning message"
pastel paint -n black --on limegreen --bold " INFO "echo -n " Informational message with a "echo -n "highlighted" | pastel paint -n default --underlineecho " word"Installation
Section titled “Installation”On Debian-based systems
Section titled “On Debian-based systems”You can download the latest Debian package from the release page and install it via dpkg:
wget "https://github.com/sharkdp/pastel/releases/download/v0.11.0/pastel_0.11.0_amd64.deb"sudo dpkg -i pastel_0.11.0_amd64.debAlternatively, pastel is available in the official Debian repositories (currently in testing and unstable):
sudo apt updatesudo apt install pastelOn Arch Linux
Section titled “On Arch Linux”You can install pastel from the Extra repositories:
sudo pacman -S pastelOn Nix
Section titled “On Nix”You can install pastel from the Nix package:
nix-env --install pastelOn MacOS
Section titled “On MacOS”You can install pastel via Homebrew
brew install pastelOn Windows
Section titled “On Windows”You can install pastel via Scoop
scoop install pastelWith Winget
Section titled “With Winget”You can install pastel via Winget:
winget install sharkdp.pastelVia snap package
Section titled “Via snap package”sudo snap install pastelOn NetBSD
Section titled “On NetBSD”Using the package manager:
pkgin install pastelFrom source:
cd /usr/pkgsrc/graphics/pastelmake installOn other distributions
Section titled “On other distributions”Check out the release page for binary builds.
Via cargo (source)
Section titled “Via cargo (source)”If you do not have cargo, install using rust’s installation documentation.
If you have Rust 1.83 or higher, you can install pastel from source via cargo:
cargo install pastelAlternatively, you can install pastel directly from this repository by using
git clone https://github.com/sharkdp/pastelcargo install --path ./pastelResources
Section titled “Resources”Interesting Wikipedia pages:
- Color difference
- CIE 1931 color space
- CIELAB color space
- Line of purples
- Impossible color
- sRGB
- Color theory
- Eigengrau
Color names:
- XKCD Color Survey Results
- Peachpuffs and Lemonchiffons - talk about named colors
- List of CSS color keywords
Maximally distinct colors:
- How to automatically generate N “distinct” colors?
- Publication on two algorithms to generate (maximally) distinct colors
Other articles and videos:
License
Section titled “License”Licensed under either of
- Apache License, Version 2.0, ([LICENSE-APACHE]!(LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license ([LICENSE-MIT]!(LICENSE-MIT) or http://opensource.org/licenses/MIT)
at your option.