
CLI for GIMP
FreePowerful command-line image editing for GIMP users.
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 source1. Install with the skills CLI
npx skills add hkuds/cli-anything/skills --agent claude-code2. 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 hkudscli-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
drawoperations 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.
| Command | Description |
|---|---|
new | Create a new project |
open | Open an existing project |
save | Save the current project |
info | Show project information |
profiles | List available canvas profiles |
json | Print raw project JSON |
Layer
Layer management commands.
| Command | Description |
|---|---|
new | Create a new blank layer |
add-from-file | Add a layer from an image file |
list | List all layers |
remove | Remove a layer by index |
duplicate | Duplicate a layer |
move | Move a layer to a new position |
set | Set a layer property (name, opacity, visible, mode, offset_x, offset_y); negative offsets are accepted naturally |
flatten | Flatten all visible layers |
merge-down | Merge a layer with the one below it |
Canvas
Canvas operations.
| Command | Description |
|---|---|
info | Show canvas information |
resize | Resize the canvas (without scaling content) |
scale | Scale the canvas and all content proportionally |
crop | Crop the canvas to a rectangle |
mode | Set the canvas color mode |
dpi | Set the canvas DPI |
Filter Group
Filter management commands.
| Command | Description |
|---|---|
list-available | List all available filters |
info | Show details about a filter |
add | Add a filter to a layer |
remove | Remove a filter by index |
set | Set a filter parameter |
list | List filters on a layer |
Media
Media file operations.
| Command | Description |
|---|---|
probe | Analyze an image file |
list | List media files referenced in the project |
check | Check that all referenced media files exist |
histogram | Show histogram analysis of an image |
Export Group
Export/render commands.
| Command | Description |
|---|---|
presets | List export presets |
preset-info | Show preset details |
render | Render the project to an image file; deferred draw ops are applied at render time |
Session
Session management commands.
| Command | Description |
|---|---|
status | Show session status |
undo | Undo the last operation |
redo | Redo the last undone operation |
history | Show undo history |
Draw
Drawing operations (applied at render time).
| Command | Description |
|---|---|
text | Draw text on a layer (by converting it to a text layer) |
rect | Draw 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 setnow accepts negativeoffset_xandoffset_yvalues in both command mode and REPL mode.draw textanddraw rectare 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 (
--jsonflag): 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:
- Always use
--jsonflag for parseable output - Check return codes - 0 for success, non-zero for errors
- Parse stderr for error messages on failure
- Use absolute paths for all file operations
- Verify outputs exist after export operations
- 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
Nano Banana Pro OpenRouter
Generate and edit images with OpenRouter's Gemini 3 Pro.
Image Manipulation with ImageMagick
Efficiently process and manipulate images with ease.
Generate Image
Create and edit images using AI models.
MuAPI Media Editing
AI-powered image and video editing made simple.
Nano Banana 2
Generate and edit images with ease using AI.
Image Enhancer
Enhance image quality for professional use.
