finds.dev← search

// the find

sharkdp/pastel

★ 6,426 · Rust · Apache-2.0 · updated May 2026

A command-line tool to generate, analyze, convert and manipulate colors

pastel is a command-line color manipulation tool written in Rust that handles conversion between color spaces (sRGB, HSL, CIELAB, CIELCh, ANSI), color generation, and terminal painting. It's aimed at developers who script terminal output or work with color systems and want something composable via pipes. sharkdp also wrote fd and bat, so the tooling quality bar is high.

The pipe-oriented design is the right call — chaining `random | mix | lighten | format` works naturally because every command reads from stdin or args interchangeably. CIELCh and CIELAB support is rare in CLI tools and matters when you need perceptually uniform color manipulation rather than naive RGB math. The `distinct` command (maximally distinct N colors via actual color difference algorithms, not just hue rotation) is genuinely useful and hard to find elsewhere. `pastel textcolor` for auto-selecting readable foreground on a given background is a small but practical feature most color tools skip.

Low fork count (127 for 6k stars) suggests people use it but don't build on it — the library crate is importable but not well-documented as a public API. The `pick` command for screen color picking relies on platform-specific tools (xdotool/gpick on Linux, no consistent story across OS) so it's effectively Linux-only in practice. No gamma-correct blending by default — `mix` operates in sRGB which gives muddy midpoints for saturated colors; you'd need to manually go through linear light. Development pace has slowed noticeably; the last release was v0.12.0 and the changelog shows gaps of over a year between recent releases.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →