Peachy
A delightful TUI for creating terminal color themes from images
Extract beautiful 16-color palettes from your wallpapers, fine-tune every color, and export to colors.toml
---
## Why Peachy?
Ever found the perfect wallpaper but couldn't get your terminal colors to match? Peachy extracts dominant colors from any image using ImageMagick, intelligently assigns them to ANSI color roles, and lets you tweak each one until it's *just right*.
## Features
- **Smart Color Extraction** - Uses ImageMagick to extract 16 dominant colors and auto-assigns them to ANSI roles
- **Multiple Extraction Modes** - Normal, Material, Pastel, Monochromatic, or Analogous algorithms
- **Image Preview in Terminal** - See wallpapers using Unicode half-block rendering
- **Precision Color Tuning** - Adjust colors via HSL sliders or direct hex input
- **Vim-style Navigation** - Navigate with `j/k`, edit with `Enter`, quit with `q`
## Installation
### Quick Install (Recommended)
```bash
curl -fsSL https://raw.githubusercontent.com/bjarneo/peachy/main/install.sh | bash
```
### Prerequisites
- **ImageMagick** (for color extraction)
```bash
# Arch Linux
sudo pacman -S imagemagick
# Ubuntu/Debian
sudo apt install imagemagick
# macOS
brew install imagemagick
```
### Build from Source
Requires **Go 1.21+**
```bash
git clone https://github.com/bjarneo/peachy.git
cd peachy
go build -o peachy .
# Optional: Install to PATH
sudo mv peachy /usr/local/bin/
```
## Quick Start
```bash
# Launch the TUI
peachy
# Open TUI with an image
peachy ~/Pictures/wallpaper.png
# Generate theme from command line (no TUI)
peachy generate wallpaper.jpg
# Apply a saved theme
peachy apply mytheme
```
Press `o` to open the file picker, select an image, and watch the magic happen.
## Basic Usage
```bash
peachy [image] # Launch TUI (optionally with image)
peachy generate # Generate theme from image
peachy apply # Apply a saved theme
peachy list # List saved themes
peachy export # Export theme to folder
```
### Key TUI Shortcuts
| Key | Action |
|-----|--------|
| `j` / `k` | Navigate up/down |
| `Enter` | Edit selected color |
| `o` | Open file picker |
| `s` | Save theme |
| `a` | Apply palette to system |
| `m` | Cycle extraction mode |
| `t` | Toggle light/dark mode |
| `q` | Quit |
## Documentation
- [CLI Reference](docs/cli-reference.md) - Full command documentation
- [TUI Usage](docs/tui-usage.md) - Complete keyboard shortcuts
- [Extraction Modes](docs/extraction-modes.md) - Color extraction algorithms
- [Theme Management](docs/theme-management.md) - Saving and applying themes
- [Configuration](docs/configuration.md) - File locations and colors.toml format
- [Custom Templates](docs/custom-templates.md) - Create templates for any app
- [Template Variables](docs/template-variables.md) - Color variables and modifiers
## Custom Templates
Generate config files for any application when applying themes:
```bash
# Install templates interactively
curl -fsSL https://raw.githubusercontent.com/bjarneo/peachy/main/docs/install-templates.sh | bash
# List available templates
peachy templates list
```
Supports: alacritty, btop, cava, dunst, foot, ghostty, gtk, hyprland, iterm2, kitty, mako, neovim, rofi, waybar, wofi, and more.
## Related Projects
- [Aether](https://github.com/bjarneo/aether) - GTK theme creator (Peachy's big sibling)
## License
MIT
---
Made with 🍑 by @iamdothash