New to Claude Skills? Learn how to install them →

hkuds on GitHub

CLI for GIMP

Free

Powerful command-line image editing for GIMP users.

by hkuds46.9k stars on hkuds/cli-anything
4 views
Updated Aug 3, 2026
Get this skill

Free · Opens the source repo

What CLI for GIMP does

The CLI for GIMP provides a stateful command-line interface that allows users to create and manipulate images without the need for a graphical user interface. Built on the Pillow library, this tool is particularly useful for AI agents and power users who prefer a scriptable approach to image editing. It offers a comprehensive set of commands for project management, layer manipulation, canvas operations, and media file handling, making it a versatile option for various image editing tasks.

Users can easily install the CLI using pip, and it requires Python 3.10 or higher. While having GIMP installed is recommended for batch rendering, the CLI can still function effectively using Pillow for layered compositions. The interactive REPL mode enhances user experience by providing command history and tab-completion, facilitating a smoother workflow for users who prefer command-line interactions.

The CLI includes a wide range of command groups, such as project management, layer management, canvas operations, and export options. Each command is designed to be intuitive, allowing users to create new projects, manage layers, apply filters, and export final images with ease. The ability to output results in both human-readable and machine-readable formats makes it suitable for integration with other tools and workflows.

This skill is ideal for developers and designers looking to automate image editing tasks, streamline their workflows, or integrate image manipulation capabilities into larger scripts or applications. Its focus on command-line operations makes it a powerful alternative to traditional GUI-based tools, catering to users who appreciate the efficiency of command-line interfaces.

When to use it

Use this tool when you need to perform image editing tasks programmatically or in a batch process without relying on a GUI.

When not to use it

This skill may not be suitable for users who prefer visual editing tools or those unfamiliar with command-line interfaces.

What you can build with it

Automating Image Processing

Use the CLI to automate repetitive image editing tasks, such as batch resizing or applying filters to multiple images.

Scriptable Image Manipulation

Integrate the CLI into scripts for dynamic image creation, allowing for real-time adjustments and rendering.

Interactive Image Editing

Leverage the REPL mode for an interactive experience, where you can quickly test commands and see results immediately.

How to install CLI for GIMP

View source

1. Install with the skills CLI

npx skills add hkuds/cli-anything/skills --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by hkuds

cli-anything-gimp

A stateful command-line interface for image editing, built on Pillow. Designed for AI agents and power users who need to create and manipulate images without a GUI.

Installation

This CLI is installed as part of the cli-anything-gimp package:

pip install cli-anything-gimp

Prerequisites:

  • Python 3.10+
  • gimp is recommended for native batch rendering, but layered compositions can still render through the built-in Pillow path when GIMP is unavailable or when deferred draw operations are present

Usage

Basic Commands

# Show help
cli-anything-gimp --help

# Start interactive REPL mode
cli-anything-gimp

# Create a new project
cli-anything-gimp project new -o project.json

# Run with JSON output (for agent consumption)
cli-anything-gimp --json project info -p project.json

REPL Mode

When invoked without a subcommand, the CLI enters an interactive REPL session:

cli-anything-gimp
# Enter commands interactively with tab-completion and history

Command Groups

Project

Project management commands.

CommandDescription
newCreate a new project
openOpen an existing project
saveSave the current project
infoShow project information
profilesList available canvas profiles
jsonPrint raw project JSON

Layer

Layer management commands.

CommandDescription
newCreate a new blank layer
add-from-fileAdd a layer from an image file
listList all layers
removeRemove a layer by index
duplicateDuplicate a layer
moveMove a layer to a new position
setSet a layer property (name, opacity, visible, mode, offset_x, offset_y); negative offsets are accepted naturally
flattenFlatten all visible layers
merge-downMerge a layer with the one below it

Canvas

Canvas operations.

CommandDescription
infoShow canvas information
resizeResize the canvas (without scaling content)
scaleScale the canvas and all content proportionally
cropCrop the canvas to a rectangle
modeSet the canvas color mode
dpiSet the canvas DPI

Filter Group

Filter management commands.

CommandDescription
list-availableList all available filters
infoShow details about a filter
addAdd a filter to a layer
removeRemove a filter by index
setSet a filter parameter
listList filters on a layer

Media

Media file operations.

CommandDescription
probeAnalyze an image file
listList media files referenced in the project
checkCheck that all referenced media files exist
histogramShow histogram analysis of an image

Export Group

Export/render commands.

CommandDescription
presetsList export presets
preset-infoShow preset details
renderRender the project to an image file; deferred draw ops are applied at render time

Session

Session management commands.

CommandDescription
statusShow session status
undoUndo the last operation
redoRedo the last undone operation
historyShow undo history

Draw

Drawing operations (applied at render time).

CommandDescription
textDraw text on a layer (by converting it to a text layer)
rectDraw a rectangle (stored as drawing operation)

Examples

Create a New Project

Create a new gimp project file.

cli-anything-gimp project new -o myproject.json
# Or with JSON output for programmatic use
cli-anything-gimp --json project new -o myproject.json

Interactive REPL Session

Start an interactive session with undo/redo support.

cli-anything-gimp
# Enter commands interactively
# Use 'help' to see available commands
# Use 'undo' and 'redo' for history navigation

Export Project

Export the project to a final output format.

cli-anything-gimp --project myproject.json export render output.png --overwrite

Layered Composition Workflow

For overlay-heavy compositions:

cli-anything-gimp --project poster.gimp-cli.json layer set 0 offset_x -48
cli-anything-gimp --project poster.gimp-cli.json layer set 0 offset_y 24
cli-anything-gimp --project poster.gimp-cli.json draw text --layer 0 --text "Launch Night" --x 96 --y 120 --size 72 --color "#f6f1e8"
cli-anything-gimp --project poster.gimp-cli.json export render output.png --overwrite

Notes:

  • layer set now accepts negative offset_x and offset_y values in both command mode and REPL mode.
  • draw text and draw rect are render-time operations. Treat the exported image, not only the project JSON, as the thing to review.
  • For projects with deferred draw ops, expect the Pillow render path to be the stable default even if GIMP is installed.

State Management

The CLI maintains session state with:

  • Undo/Redo: Up to 50 levels of history
  • Project persistence: Save/load project state as JSON
  • Session tracking: Track modifications and changes

Output Formats

All commands support dual output modes:

  • Human-readable (default): Tables, colors, formatted text
  • Machine-readable (--json flag): Structured JSON for agent consumption
# Human output
cli-anything-gimp project info -p project.json

# JSON output for agents
cli-anything-gimp --json project info -p project.json

For AI Agents

When using this CLI programmatically:

  1. Always use --json flag for parseable output
  2. Check return codes - 0 for success, non-zero for errors
  3. Parse stderr for error messages on failure
  4. Use absolute paths for all file operations
  5. Verify outputs exist after export operations
  6. Review rendered outputs after offset, draw, blend-mode, or filter changes instead of trusting saved project state alone

More Information

  • Full documentation: See README.md in the package
  • Test coverage: See TEST.md in the package
  • Methodology: See HARNESS.md in the cli-anything-plugin

Version

1.0.0

Frequently asked questions about CLI for GIMP

Similar skills