Convert Images to WebP with a Finder Quick Action (macOS)

September 19, 2026

Most images on a website do not need to be JPEGs anymore. WebP is supported by every current browser and typically produces noticeably smaller files at comparable quality. The friction was never the format — it was the extra step: opening a terminal or an app for every batch of screenshots.

So I built the smallest tool that removes that step: a Finder Quick Action. Select images, right-click, Quick Actions → ConvertImages (WebP), and a .webp file appears next to the original.

It is open source: github.com/Livvux/webp-conv

What it does

Under the hood it is a single Automator "Run AppleScript" action that shells out to cwebp, Google's WebP encoder. The defaults:

  • Quality 82 — in my tests a good balance between file size and visible artifacts for screenshots and photos. 80–85 is a reasonable range to explore.
  • Method 6 — the slowest, best-compression encoder setting. For a right-click action, the extra seconds are worth it.
  • Metadata kept — EXIF, ICC color profiles, and XMP survive the conversion. Set keepMetadata to false if you want stripped files.
  • Never overwrites — if the .webp target already exists, the file is skipped and a note goes to the log.
  • Same folder — output lands next to the original, no dialog, no moved files.

Install

You need Homebrew and cwebp:

brew install webp

Then grab the workflow — either from the repo or as a direct download — and run the included installer:

unzip convertimages-webp.workflow.zip cp -R "ConvertImages (WebP).workflow" ~/Library/Services/

(The repo also ships a ./install.sh that does the same with a cwebp check.)

The copied workflow appears in the Finder context menu — if it does not show up right away: log out and back in, or enable it under right-click → Quick Actions → Customize…

Changing the settings

Double-click the workflow in ~/Library/Services/ (it opens in Automator), open the Run AppleScript action, and edit the top of the script:

set quality to 82 -- 0–100 (80–85 is a good starting point) set method to 6 -- 0–6 (6 = best compression, slower) set keepMetadata to true -- true = keep EXIF/ICC/XMP, false = strip set overwriteExisting to false -- false = skip target if it already exists set addSuffix to "" -- "" = plain .webp extension, or e.g. "-webp"

addSuffix is useful if you want to keep both files with recognizable names, for example photo-webp.webp — though I recommend leaving it empty for clean URLs.

When something goes wrong

The action is deliberately silent on success. If a conversion fails, everything lands in /tmp/convert-to-webp.log. The two most common cases:

  • cwebp not found — the script runs through /bin/zsh -lc, so Homebrew paths on Apple Silicon (/opt/homebrew/bin) resolve automatically. If you installed cwebp somewhere else, make sure it is on the login shell's PATH.
  • Quick Action missing from the menu — System Settings → General → Login Items, or right-click → Quick Actions → Customize…, and tick „ConvertImages (WebP)".

Why cwebp instead of sips

macOS ships sips, which gained WebP support in recent versions. I still prefer cwebp for this job: it exposes the quality and effort settings that matter for predictable results, it is the reference encoder, and its behavior is identical across machines — which matters once you publish a tool other people install. sips remains a fine fallback if you refuse to install anything.

Worth it?

This is maybe an hour of setup for a task that used to cost minutes every time it came up. It follows the rule I keep coming back to: the best automation is the kind that removes a step, not one that adds a dashboard.

The workflow, the installer, and the full script are in the repo: github.com/Livvux/webp-conv. PRs and issue reports welcome.

GitHub
LinkedIn
X
youtube