auto-image-editor

Add text overlays to images from the command line. Google Fonts, variable axes, and locale-aware casing — no GUI needed.

bash
$ curl -fsSL https://raw.githubusercontent.com/onurkerem/auto-image-editor/master/install.sh | sh

Core Capabilities

text_fields

Google Fonts

Use any Google Font family by name. Fonts are downloaded and cached automatically — no manual installation required.

tune

Variable Font Axes

Fine-tune weight (100–900) and width axes for precise typographic control. Leverages variable font technology for smooth interpolation.

language

Locale-Aware Casing

Uppercase conversion respects language rules. Turkish dotted-i, German sharp-s, and other locale-specific behavior handled correctly.

Usage

A single command to add perfectly positioned text to any image. Supports PNG, JPEG, and WebP — output format is inferred from the file extension.

check_circle

Text is auto-sized with yellow fill, heavy black outline, and italic slant by default

check_circle

Position with percentage-based insets — responsive to any image dimensions

check_circle

Composable in scripts and CI pipelines — zero interactive prompts

Terminal
# Basic text overlay
$ auto-image-editor add-text \
  --input photo.jpg \
  --output out.jpg \
  --text "Hello World"
# Custom font, weight, and positioning
$ auto-image-editor add-text \
  --input banner.png \
  --output output.png \
  --text "SALE" \
  --font "Oswald" \
  --weight 700 \
  --top 70% \
  --bottom 5%
# Turkish locale with locale-aware uppercase
$ auto-image-editor add-text \
  --input cover.jpg \
  --output cover-out.jpg \
  --text "İstanbul" \
  --lang tr

Options

Every parameter has sensible defaults. Override only what you need.

--input required

Source image path (PNG, JPEG, WebP)

--output required

Output image path — format inferred from extension

--text required

Text to overlay on the image

--font default: Geom

Google Font family name

--color default: #FFE600

Text fill color; black outline is applied automatically

--weight default: 900

Font weight axis (100–900)

--width default: 100

Font width axis percentage

--italic default: true

Apply italic slant to the text

--lang default: tr

Language code for locale-aware casing

--top / --bottom 60% / 6%

Vertical text box edges (percentage or pixels)

--left / --right 10% / 10%

Horizontal text box edges (percentage or pixels)

How It Works

Your image and text go in. A composited image comes out. No temporary files, no GUI, no manual editing.

Input

image photo.jpg
text_fields --text "Hello World"
tune --font, --weight, --color
open_with --top, --bottom, --left, --right

Output

check_circle out.jpg
subdirectory_arrow_right Original image preserved
subdirectory_arrow_right Text rendered as vector SVG, composited via Sharp
subdirectory_arrow_right Format inferred from output extension