GoWall
Achno/gowall: A tool to convert a Wallpaper’s color scheme / palette, image to pixel art, color palette extraction, image upsacling with Adversarial Networks and more image processing features
- Convert Wallpaper’s theme 👾 – Recolor an image to match your favorite + (Custom) themes (Catppuccin…)
- AI Image Upscaling - Increase the resolution of the image while preserving or improving its quality.
- Support for Unix pipes/redirection - Read from stdin and write to stdout
- Convert Icon’s theme (svg,ico) - Recolor your icons to match a theme
- Image to pixel art - Transforms your image to the typical blocky appearance of pixel art.
- Replace a specific color in an image - pretty self explanatory.
- Create a gif from images - use the images as frames and specify a delay and the number of loops.
- Extact color palette - Extracts all the dominant colors in an image (like pywal)
- Change Image format - Ex. change format from .webp to .png.
- Invert image colors - pretty self explanatory.
- Draw on the Image - Draw borders,grids on the image
- Remove the background of the image - pretty self explanatory.
- Effects - Mirror,Flip,Grayscale,change brightness and more to come!
- Daily wallpapers - Explore community-voted wallpapers that reset daily.

Image conversion for svg is not currently supported, so you need to convert the format yourself.
SVG to PNG Converter - FreeConvert.com
Installation
Refer to the documentation below to complete the installation.
Taking macOS as an example, I recommend downloading the v0.2.1 binary from GitHub Releases. The latest Homebrew version at the time (2025.6.20) is v0.2.0, which has some bugs.
Scripts
I often use GoWall to convert an image’s color scheme. Before committing it to a repo or image bed, I usually convert it to webp. The command is:gowall convert ./img/cover.jpg -t catppuccin --output ./cover.webp
Typing the command repeatedly is annoying, and Nushell does not currently have autocompletion for gowall, so here is a script to simplify the workflow.#!/bin/bash# Ref: [installation | Gowall Docs](https://achno.github.io/gowall-docs/installation)# Check the number of argumentsif [ $# -ne 1 ]; then echo "用法: $0 <图片文件路径>" echo "示例: $0 ./img/cover.jpg" exit 1fi# Get the input file pathinput_file="$1"# Check whether the file existsif [ ! -f "$input_file" ]; then echo "错误: 文件 '$input_file' 不存在" exit 1fi# Get the filename without path and extensionfilename=$(basename "$input_file")filename_no_ext="${filename%.*}"# Build the output file path: current working directory + filename + .webpoutput_file="$(pwd)/${filename_no_ext}.webp"# Execute the gowall commandecho "正在转换: $input_file -> $output_file"gowall convert "$input_file" -t catppuccin --output "$output_file"# Check the command resultif [ $? -eq 0 ]; then echo "✅ 转换成功: $output_file"else echo "❌ 转换失败" exit 1fi
Usage# Grant execute permission to the scriptchmod +x mocha_it# Put the script in PATH, for example ~/bin/mocha_it. I store it under `~/dotfiles/bin/`export PATH="$PATH:~/dotfiles/bin"# Run the scriptmocha_it ./img/cover.jpg

