gowall

AchnoMIT活跃维护

用 Go 写的命令行图像处理工具,能转换壁纸配色、提取调色板、OCR 识别、压缩图片和超分辨率放大,适合批量处理壁纸和像素画。

A tool to convert a Wallpaper's color scheme / palette, OCR with VLM's Traditional & Hybrid, Image Compression ,color palette extraction, image upsacling with Adversarial Networks and more image processing features.

v0.2.4发布于 2026-04-09 18:36 UTC2,332star +2 / 7 天38fork同步于 2026-11-10 17:46 UTC

怎么上手

由 README 提炼,执行前请确认
brew install gowall
硬件要求按 README 说明

README 未说明显存或 GPU 型号要求;AI 放大与 VLM OCR 的具体硬件门槛未提及。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

把壁纸和图标重着色到任意配色方案,并顺带做 OCR、压缩、放大等图像处理的命令行工具

用 Go 写的命令行图像处理工具,能转换壁纸配色、提取调色板、OCR 识别、压缩图片和超分辨率放大,适合批量处理壁纸和像素画。

核心能力

  • 按 Catppuccin、Nord 等主题或自定义主题重着色壁纸与 svg/ico 图标
  • 用传统 OCR、视觉语言模型或混合方式从图片和 PDF 提取文字
  • 用对抗网络放大图像分辨率,并压缩 png/jpeg/webp 体积
  • 提取图片主色调、转像素画、换格式、去背景、加边框网格
  • 支持 Unix 管道读写 stdin/stdout,可在终端内预览图片

容易踩的坑

Homebrew 版本目前停留在 v0.2.0,可能落后于 release 最新版;从源码构建在 Windows 上需先安装 zig 并设置 CGO_ENABLED=1 与 CC=zig cc;OCR 与 AI 放大可能依赖额外模型或后端,README 未说明具体获取方式

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v0.2.4
  1. v0.2.4最新正式版2026-04-09 · 2026-04-09 18:36 UTC
    1. Big Features ❗ ❗
    • gowall bg now has access to models for removing the background of an image. [CPU-ONLY] for now. See documentation

      u2net (relatively fast,low resources) -> generally does very good. bria-rmbg (slow, high resources) -> extremely good. Also added --bg-color flag to replace the removed background with any color instead of only transparency.

      onnx runtime only supports CUDA-12 and support will be added in a future release for GPU acceleration, i will also check out AMD ROCm.

      The folders/path for onnx can be configured in ~/.config/gowall/config.yml. This also allows NixOS users to bypass the NixOS cant run dynamically linked executables by downloading onnx runtime themselves and simply pointing the .so library to gowall by the config. If you downloaded bg removal models before you could also simply point their folder path to gowall to avoid making gowall re-download them.

    • The other big feature is all the color theory utilities (gowall color ...) that have been added in this update that help you in generating the colors needed for a custom theme

      I have added a guide on how you can use them to create your custom theme here. Use custom themes, stop relying on the default catppuccin,gruvbox etc.. output.

    1. Features
    • Improved the replace specific color feature gowall convert img.png -r "#EA6254,#F9E2AF,20", making the replacement much smoother by changing the threshold,normalizing it and blending colors see differences here

    • Avif image format support! You can now easily do everything you did with the other formats with avif. gowall convert img.avif -t catppuccin or gowall convert img.png --output img.avif

    • gowall compress now has a new lossyavif method where you can tweak the quality and speed to your liking to compress avif images. here

    • gowall effects tilt command added, it makes really nice 3D isometric tilt/rotate effect to your image. Previously you would have needed something like GIMP to achieve this. Documentation here

    • gowall stack command added, Stack images in any way you want by specifying a grid (ex. 3x3) or horizontally or vertically, seperate them with a border of your color and pixel size. Documentation here

    • Added a --radius -r flag in the border command so now you can add rounded borders to your image: Example : gowall draw border ~/Pictures/Unixporn/rice/1.png -c #ffffff -r 30 -b 3. Documentation here

    • Added gowall resize. Guess what it does lol. Batch resizing icons to 32x32 is useful for me. Documentation here <--

    • Enabled preview support for gifs in the kitty terminal

    1. Quality Features
    • added --preview true/false global flag for all commands, that overrides EnableImagePreviewing from config.yml, closes #73 here

    • added --yes global flag which allows you to auto accept any y/n confirmation prompts, very useful for automation since the first time you download gowall and it wants to download lets say a model it requires confirmation, but with this you can skip it.

      # Example (skips 2 confirmations for the onnx runtime & u2net model)
      gowall bg ~/Pictures/hollow-knight.jpg  --yes
      

      Closes #84 here

    • added ayu theme and all its variants, closes #77

    1. Bug Fixes
    • Fixed gowall -w `Could not fet
  2. v0.2.32025-10-11 · 2025-10-11 20:43 UTC
    查看更新说明
    1. Big Features ❗ ❗
    • Image Compression : Compress png,jpeg,jpg,webp images with various available methods : [pngquant, losslesspng, lossyjpeg, lossyjpg, lossywebp], tweak quality with flags check out the docs

    • OCR : OCR - Extract text from images and pdfs', supporting 9+ providers (Traditional OCR, Visual Language Models and hybrid methods). Integrations with your favorite image screenshot tools :) check out the docs

    1. Bug fixes
    • Fixed #54 config.yml "outputfolder" option does not work expectedly
    • Fixed could not find config.yml issue, by creating the file if it doesn't exist by default
    1. Quality Features
    • Added a spinner for gowall -w and gowall ocr
    • Added melange theme
  3. v0.2.22025-10-11 · 2025-10-11 18:58 UTC

    这个版本没有写更新说明。

  4. v0.2.12025-04-12 · 2025-04-12 14:13 UTC
    查看更新说明
    1. Big Features ❗ ❗
    • Unix pipe/redirection (stdin,stdout) support ,this enables gowall to work with svg and icos and convert icon themes, documentation here and here
    • --dir, --batch, --output flags have been expanded to all* gowall commands and all of future commands will have them as well. --dir processes whole directories, --batch batch-files, --output allows you to put the processed file(s) in whatever path you want.
    • A bunch of important bug fixes : [MacOS not reading config file],[panic when converting whole directories] etc...
    1. Features
    • Gowall is available on the official MacOS repo's : here
    • gowall is now available as a binary instead of building it yourself check the tarballs at the release section.
    • gowall supports the Kitty image protocol directly this means that you don't need external dependencies (like kitty previously) to view images in the terminal in Konsole & Ghostty (You still have to enable a flag). here
    • Image Terminal Preview added for Wezterm see here
    • Chafa as Terminal image preview option : chafa supports sixel, the kitty image protocol as well as ASCII representations for terminals that don't support images (cough* Alacritty) check it out here
    • You can now change the threshold in replace image color see the new docs here
    • You can draw grids to an image or draw the grid in the background of the image docs
    • increased performance in gowall gif check out the new flags here
    1. Quality Features
    • Shell completions for the theme names have been added
    • gowall now respects XDG_PICTURES_DIR for users that dont have an english filesystem.
    • gowall convert now respects transparency.
    • Themes : Added the other catppuccin flavor themes cat-frappe cat-latte due to demand as well as kanagawa
    Thank you to my contributors

    @MillerApps For helping in natively supporting the kitty image protocol without dependencies @0bCdian For helping in the IO refactor and the Unix Pipe and redirection features.

  5. v0.2.02025-02-09 · 2025-02-09 18:34 UTC
    查看更新说明
    1. Big Features ❗ ❗
    • AI image Upscaler documentation here
    • New color correction algorithm : Massive improvements in performance up to 40-60% quicker and fixes all rough color transitions, ensuring a smooth color conversion. Documentation here
    1. Features
    • Image Terminal Preview added for Ghostty & Konsole terminal emulators
    • Dynamically pass a theme.json for color conversion (useful in scripts) see documentation here
    • Create gifs from Images : gowall gif -b <file,file>
    • Effects with gowall effects [effect] you can now flip, mirror ,convert to grayscale & change the brightness of images.
    1. Quality Features
    • Added -o <Outputname> flag for gowall convert and gowall gif since its useful for scipts see documentation here
    • gowall list now shows themes in alphabetical order
    • Added rose-pine theme

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译
    Design By Achno

       Overview       Installation       Contributions   


    Overview :framed_picture:

    Gowall started as a tool to convert an image ( specifically a wallpaper ) to any color-scheme / palette you like! It has now evolved to a swiss army knife of image prosessing offering (OCR,Image upsacling,image compression and a lot more)

    Docs

    Gowall is really well documented with visual examples: Gowall Docs


    Features

    ❗ Although Gowall is a CLI tool, it has an Image preview feature that allows printing images directly in the terminal. See Gowall Terminal Image preview

    • Convert Wallpaper's theme – Recolor an image to match your favorite + (Custom) themes (Catppuccin...).
    • Image compression - Reduce the size of png,jpeg,jpg,webp images.
    • OCR - Extract text from images and pdfs', supporting 9+ providers (Traditional OCR, Visual Language Models and hybrid methods).
    • AI Image Upscaling - Increase the resolution of the image while preserving or improving its quality.
    • Convert Icon's theme (svg,ico) - Recolor your icons to match a theme.
    • Support for Unix pipes/redirection - Read from stdin and write to stdout.
    • 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.
    • Extract 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.


    Themes :art:

    You can check the section here on how to create a Custom Theme.

    The currently supported themes are featured below, if your favourite theme is missing open an issue or a pull request All themes can be shown (both default and user-created via ~/.config/gowall/config.yml) by gowall list.

    • Catppuccin flavors
    • Dracula
    • Everforest
    • Gruvbox
    • Nord
    • Onedark
    • Solarized
    • Tokyo-dark/storm/moon

    Installation :package:

    Make sure to do gowall -v and compare it against the release page version, since the docs only show the commands/flags and capabilities of the latest released version.

    Grab the binary from the release section (Stable Release) 🢀 Prefered Method

    • If the installation options do not cover your package manager of your distro/OS
    • If gowall in your package manager is not up to date as per the release section's latest version
    • If you don't know how to install gowall and don't want to build the project.

    Head over to the release section

    Choose the latest version of gowall. You should see a .tar.gz for your operating system and architecture. Simply Extract the binary inside named gowall and place it inside your $PATH

    sudo cp gowall /usr/local/bin/
    

    MacOS (Homebrew) - currently on v0.2.0

    brew install gowall
    

    Thank you to chenrui333. You can find the ruby formula there.

    Arch linux - AUR

    yay -S gowall
    

    Fedora - COPR

    sudo dnf copr enable achno/gowall
    sudo dnf install gowall
    

    NixOS - ( Maintainer : Emily Trau)

      environment.systemPackages = [
        pkgs.gowall
      ];
    

    More installation options : here

    Void Linux - ( Maintainer : elbachir-one)

    sudo xbps-install -S gowall
    

    Build from source (Cutting Edge)

    If you are a normal user, consider using using the method above for a stable gowall release.

    If you want to contribute to the project

    Or have all the latest features that have not been released yet then

    🔨 Clone the repo, build the project and move it inside your $PATH

    git clone https://github.com/Achno/gowall
    cd gowall
    go build
    sudo cp gowall /usr/local/bin/
    gowall
    

    If this threw any errors while building simply follow the solution below.

    Windows (Or any OS if git cloning and go build did not work)

    For Windows we need to install zig & go to build it. I advise you to use a package manager like scoop to install it. Obviously you can just go the zig website and download the installer, it doesn't really matter, the zig binary needs to be in your $PATH.

    scoop install main/zig # or just go to the website and download zig if you don't want to use a package manager
    
    git clone https://github.com/Achno/gowall
    cd gowall
    
    export CGO_ENABLED=1 # if you are using powershell : $env:CGO_ENABLED=1
    export CC="zig cc" # if you are using powershell : $env:CC="zig cc"
    export CXX="zig c++" # if you are using powershell : $env:CXX="zig c++"
    
    go clean -cache 
    go build -v
    
    # then simply add the binary to your PATH
    

    Contributions :handshake:

    If you wish to contribute by adding a new theme please open an issue I would also be very happy if you can provide the rgb values of your theme as well :) but not required if it's popular

    Feel free to suggest any cool features that would improve gowall even further by opening an issue

    Community

    Community Extensions

    The following are third-party projects built by the community that extend or integrate with gowall.

    [!Warning] These tools are not officially affiliated with the gowall project. Please audit/inspects scripts before running them.

    🔗 Projects

    • tinted-gowall — A bridge between gowall and the tinted-theming ecosystem. This project enables users to apply their base16/base24 themes with gowall, unlocking hundreds of new visual styles.

    Special Thanks

    Special thanks to lutgen for the original implementation of the color correction algorithm which i adapted for this project.