cli-anything-gimp
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
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
More from hkuds/cli-anything
cli-anything
Use when the user wants Codex to build, refine, test, or validate a CLI-Anything harness for a GUI application or source repository. Adapts the CLI-Anything methodology to Codex without changing the generated Python harness format.
1.1Kcli-hub-meta-skill
>-
493cli-anything-blender
>-
172cli-anything-obsidian
>-
159cli-anything-drawio
>-
148cli-anything-browser
Browser automation CLI using DOMShell MCP server. Maps Chrome's Accessibility Tree to a virtual filesystem for agent-native navigation.
135