Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/aseprite/aseprite/llms.txt

Use this file to discover all available pages before exploring further.

Aseprite’s CLI allows you to batch process multiple files, applying transformations and conversions efficiently.

Basic Batch Conversion

The simplest form of batch conversion is to convert a single file to another format:
aseprite --batch input.ase --save-as output.png

Processing Multiple Files

You can process multiple files in a single command:
aseprite --batch file1.ase file2.ase file3.ase --save-as {title}.png
This will create:
  • file1.png
  • file2.png
  • file3.png

Filename Templates

Use template variables in the output filename to customize the naming:
aseprite --batch *.ase --save-as converted/{title}-{frame}.png

Available Template Variables

  • {title} - File title (without extension)
  • {frame} - Frame number
  • {tag} - Tag name
  • {layer} - Layer name
  • {group} - Group name
  • {slice} - Slice name

Scaling Sprites

Resize sprites during conversion:
# Scale by factor
aseprite --batch input.ase --scale 2 --save-as output.png

# Scale to maximum dimensions (maintains aspect ratio)
aseprite --batch *.ase --shrink-to 128,128 --save-as {title}-small.png

Color Mode Conversion

Convert between different color modes:
# Convert to RGB
aseprite --batch indexed.ase --color-mode rgb --save-as rgb.png

# Convert to Grayscale
aseprite --batch color.ase --color-mode grayscale --save-as gray.png

# Convert to Indexed with dithering
aseprite --batch rgb.ase \
  --color-mode indexed \
  --dithering-algorithm ordered \
  --dithering-matrix bayer8x8 \
  --save-as indexed.png

Dithering Algorithms

When converting to indexed color mode:
  • none - No dithering
  • ordered - Ordered dithering (requires matrix)
  • old - Legacy dithering algorithm
  • error-diffusion - Error diffusion dithering

Dithering Matrices

For ordered dithering:
  • bayer2x2 - 2×2 Bayer matrix
  • bayer4x4 - 4×4 Bayer matrix
  • bayer8x8 - 8×8 Bayer matrix
  • filename.png - Custom matrix from PNG file

Palette Management

Change the palette of sprites:
aseprite --batch input.ase --palette custom-palette.ase --save-as output.png

Cropping and Trimming

Crop to Specific Rectangle

aseprite --batch input.ase --crop 10,10,64,64 --save-as cropped.png
Format: --crop x,y,width,height

Trim Transparent Pixels

# Trim the entire sprite
aseprite --batch input.ase --trim --save-as trimmed.png

# Trim by grid boundaries
aseprite --batch input.ase --trim-by-grid --save-as trimmed.png

Crop to Slice

aseprite --batch input.ase --slice "character" --save-as character.png

Layer Filtering

Export Specific Layers

# Export only a specific layer
aseprite --batch input.ase --layer "Background" --save-as bg.png

# Export multiple layers
aseprite --batch input.ase --layer "Layer1" --layer "Layer2" --save-as output.png

Ignore Layers

aseprite --batch input.ase --ignore-layer "Draft" --save-as final.png

Make All Layers Visible

aseprite --batch input.ase --all-layers --save-as all-layers.png

Layer Wildcards

Use wildcards for layer matching:
# Match all layers in a group
aseprite --batch input.ase --layer "Group/*" --save-as grouped.png

Tag-Based Export

Export specific animation tags:
# Export specific tag
aseprite --batch animation.ase --tag "walk" --save-as walk-{frame}.png

# Play subtags when exporting
aseprite --batch animation.ase --tag "main" --play-subtags --save-as anim-{frame}.png

Frame Range Export

Export only specific frames:
# Export frames 0 to 9
aseprite --batch animation.ase --frame-range 0,9 --save-as frame-{frame}.png

# Export frame range within a tag
aseprite --batch animation.ase --tag "walk" --frame-range 0,5 --save-as walk-{frame}.png

Automatic Template Detection

When you use templates in the filename, Aseprite automatically enables splitting:
# Automatically splits layers because {layer} is used
aseprite --batch input.ase --save-as output-{layer}.png

# Automatically splits tags because {tag} is used
aseprite --batch animation.ase --save-as anim-{tag}-{frame}.png

Advanced Examples

Convert all ASE files to PNG with scaling

aseprite --batch *.ase --scale 2 --save-as converted/{title}.png

Export only visible layers from multiple files

aseprite --batch *.ase --ignore-layer "Draft" --save-as final/{title}.png

Convert to indexed color with custom palette

aseprite --batch *.ase \
  --palette my-palette.gpl \
  --color-mode indexed \
  --dithering-algorithm ordered \
  --dithering-matrix bayer4x4 \
  --save-as indexed/{title}.png

Process and trim sprites

aseprite --batch *.ase --trim --save-as trimmed/{title}.png

Loading Options

Load Only First Frame

For faster processing when you only need the first frame:
aseprite --batch animation.ase --oneframe --save-as first-frame.png

Scripting Integration

Execute Lua scripts during batch processing:
# Run a script on files
aseprite --batch input.ase --script process.lua --save-as output.png

# Pass parameters to the script
aseprite --batch input.ase \
  --script process.lua \
  --script-param mode=export \
  --script-param quality=high \
  --save-as output.png
In your Lua script, access parameters via app.params:
local mode = app.params["mode"]  -- "export"
local quality = app.params["quality"]  -- "high"

Error Handling

Aseprite will:
  • Print error messages to stderr
  • Return a non-zero exit code on failure
  • Continue processing other files if one fails (when processing multiple files)
Use --verbose or --debug flags to get more information about errors:
aseprite --batch --verbose input.ase --save-as output.png

Build docs developers (and LLMs) love