Tool tree
gradeNot graded
get_editor_stateAnswer
Inspect the PixelForge pixel-art editor: canvas size, frames, layers, active selections, palette, and per-layer pixel counts. Call this first before any editing to understand the current artwork.
View tool JSON
{
"name": "get_editor_state",
"kind": "answer",
"impl": "imperative",
"description": "Inspect the PixelForge pixel-art editor: canvas size, frames, layers, active selections, palette, and per-layer pixel counts. Call this first before any editing to understand the current artwork.",
"inputSchema": {
"type": "object",
"properties": {}
}
}get_regionAnswer
Read the pixel colors of a rectangular region of the active frame. Returns a compact legend + row grid of palette indexes (0 = transparent). Use this to inspect existing artwork before modifying it.
View tool JSON
{
"name": "get_region",
"kind": "answer",
"impl": "imperative",
"description": "Read the pixel colors of a rectangular region of the active frame. Returns a compact legend + row grid of palette indexes (0 = transparent). Use this to inspect existing artwork before modifying it.",
"inputSchema": {
"type": "object",
"properties": {
"x": {
"type": "integer",
"description": "Left edge (0-based)"
},
"y": {
"type": "integer",
"description": "Top edge (0-based)"
},
"width": {
"type": "integer",
"description": "Width in pixels"
},
"height": {
"type": "integer",
"description": "Height in pixels"
},
"layer": {
"type": "string",
"description": "Target layer. Accepts the layer id (e.g. \"layer-ab12cd\") OR the layer name (e.g. \"Eyes\", case-insensitive). Defaults to the active layer."
},
"frame": {
"type": "integer",
"description": "Target frame as a 1-based frame number (1 = first frame). Defaults to the active frame."
}
},
"required": [
"x",
"y",
"width",
"height"
]
}
}draw_pixelsAction
Draw one or many pixels at once on the pixel canvas. Each pixel is {x, y, color} where color is a hex string like '#38b764'. Coordinates outside the canvas are rejected. Batch all pixels of a shape into one call.
View tool JSON
{
"name": "draw_pixels",
"kind": "act",
"impl": "imperative",
"description": "Draw one or many pixels at once on the pixel canvas. Each pixel is {x, y, color} where color is a hex string like '#38b764'. Coordinates outside the canvas are rejected. Batch all pixels of a shape into one call.",
"inputSchema": {
"type": "object",
"properties": {
"pixels": {
"type": "array",
"description": "Pixels to draw (batch in one call)",
"items": {
"type": "object",
"properties": {
"x": {
"type": "integer"
},
"y": {
"type": "integer"
},
"color": {
"type": "string",
"description": "Hex color, e.g. '#38b764'"
}
},
"required": [
"x",
"y",
"color"
]
}
},
"layer": {
"type": "string",
"description": "Target layer. Accepts the layer id (e.g. \"layer-ab12cd\") OR the layer name (e.g. \"Eyes\", case-insensitive). Defaults to the active layer."
},
"frame": {
"type": "integer",
"description": "Target frame as a 1-based frame number (1 = first frame). Defaults to the active frame."
}
},
"required": [
"pixels"
]
}
}erase_pixelsAction
Erase (make transparent) one or many pixels at once. Each point is {x, y}.
View tool JSON
{
"name": "erase_pixels",
"kind": "act",
"impl": "imperative",
"description": "Erase (make transparent) one or many pixels at once. Each point is {x, y}.",
"inputSchema": {
"type": "object",
"properties": {
"pixels": {
"type": "array",
"description": "Pixels to erase",
"items": {
"type": "object",
"properties": {
"x": {
"type": "integer"
},
"y": {
"type": "integer"
}
},
"required": [
"x",
"y"
]
}
},
"layer": {
"type": "string",
"description": "Target layer. Accepts the layer id (e.g. \"layer-ab12cd\") OR the layer name (e.g. \"Eyes\", case-insensitive). Defaults to the active layer."
},
"frame": {
"type": "integer",
"description": "Target frame as a 1-based frame number (1 = first frame). Defaults to the active frame."
}
},
"required": [
"pixels"
]
}
}fill_regionAction
Flood fill: starting at (x, y), replace the contiguous region of identical color with the given hex color (like the paint-bucket tool).
View tool JSON
{
"name": "fill_region",
"kind": "act",
"impl": "imperative",
"description": "Flood fill: starting at (x, y), replace the contiguous region of identical color with the given hex color (like the paint-bucket tool).",
"inputSchema": {
"type": "object",
"properties": {
"x": {
"type": "integer",
"description": "Start pixel x"
},
"y": {
"type": "integer",
"description": "Start pixel y"
},
"color": {
"type": "string",
"description": "Hex fill color, e.g. '#38b764'"
},
"layer": {
"type": "string",
"description": "Target layer. Accepts the layer id (e.g. \"layer-ab12cd\") OR the layer name (e.g. \"Eyes\", case-insensitive). Defaults to the active layer."
},
"frame": {
"type": "integer",
"description": "Target frame as a 1-based frame number (1 = first frame). Defaults to the active frame."
}
},
"required": [
"x",
"y",
"color"
]
}
}replace_colorAction
Recolor existing artwork: replace every pixel of hex color `from` with hex color `to`. Defaults to the active layer; use scope 'all-layers' for the whole frame or 'all-frames' to recolor an animation at once. Idempotent — repeating the call affects zero pixels.
View tool JSON
{
"name": "replace_color",
"kind": "act",
"impl": "imperative",
"description": "Recolor existing artwork: replace every pixel of hex color `from` with hex color `to`. Defaults to the active layer; use scope 'all-layers' for the whole frame or 'all-frames' to recolor an animation at once. Idempotent — repeating the call affects zero pixels.",
"inputSchema": {
"type": "object",
"properties": {
"from": {
"type": "string",
"description": "Hex color to replace"
},
"to": {
"type": "string",
"description": "Replacement hex color"
},
"scope": {
"type": "string",
"enum": [
"active-layer",
"all-layers",
"all-frames"
],
"description": "How far the replacement reaches (default: active layer)"
}
},
"required": [
"from",
"to"
]
}
}create_layerAction
Create a new empty layer on the active frame (e.g. 'Eyes', 'Outline') and make it active. New layers stack on top.
View tool JSON
{
"name": "create_layer",
"kind": "act",
"impl": "imperative",
"description": "Create a new empty layer on the active frame (e.g. 'Eyes', 'Outline') and make it active. New layers stack on top.",
"inputSchema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Layer name, e.g. 'Eyes'"
}
}
}
}select_layerAction
Make a layer active by id or exact name (case-insensitive). Subsequent pixel operations default to this layer.
View tool JSON
{
"name": "select_layer",
"kind": "act",
"impl": "imperative",
"description": "Make a layer active by id or exact name (case-insensitive). Subsequent pixel operations default to this layer.",
"inputSchema": {
"type": "object",
"properties": {
"layer": {
"type": "string",
"description": "Target layer. Accepts the layer id (e.g. \"layer-ab12cd\") OR the layer name (e.g. \"Eyes\", case-insensitive). Defaults to the active layer."
}
},
"required": [
"layer"
]
}
}set_layer_visibilityAction
Show or hide a layer by id or name, on the active frame.
View tool JSON
{
"name": "set_layer_visibility",
"kind": "act",
"impl": "imperative",
"description": "Show or hide a layer by id or name, on the active frame.",
"inputSchema": {
"type": "object",
"properties": {
"layer": {
"type": "string",
"description": "Target layer. Accepts the layer id (e.g. \"layer-ab12cd\") OR the layer name (e.g. \"Eyes\", case-insensitive). Defaults to the active layer."
},
"visible": {
"type": "boolean",
"description": "true to show, false to hide"
}
},
"required": [
"layer",
"visible"
]
}
}create_frameAction
Append a new empty frame to the animation timeline (same layer structure) and make it active.
View tool JSON
{
"name": "create_frame",
"kind": "act",
"impl": "imperative",
"description": "Append a new empty frame to the animation timeline (same layer structure) and make it active.",
"inputSchema": {
"type": "object",
"properties": {}
}
}duplicate_frameAction
Duplicate a frame (copying all of its artwork) and insert the copy right after it. Target defaults to the active frame.
View tool JSON
{
"name": "duplicate_frame",
"kind": "act",
"impl": "imperative",
"description": "Duplicate a frame (copying all of its artwork) and insert the copy right after it. Target defaults to the active frame.",
"inputSchema": {
"type": "object",
"properties": {
"frame": {
"type": "integer",
"description": "Target frame as a 1-based frame number (1 = first frame). Defaults to the active frame."
}
}
}
}select_frameAction
Make a frame active by 1-based number or id. Subsequent operations default to this frame.
View tool JSON
{
"name": "select_frame",
"kind": "act",
"impl": "imperative",
"description": "Make a frame active by 1-based number or id. Subsequent operations default to this frame.",
"inputSchema": {
"type": "object",
"properties": {
"frame": {
"type": "integer",
"description": "Target frame as a 1-based frame number (1 = first frame). Defaults to the active frame."
}
},
"required": [
"frame"
]
}
}select_regionAction
Select a rectangular region on the active layer. The selection is used by move_region, flip_region and clear_region.
View tool JSON
{
"name": "select_region",
"kind": "act",
"impl": "imperative",
"description": "Select a rectangular region on the active layer. The selection is used by move_region, flip_region and clear_region.",
"inputSchema": {
"type": "object",
"properties": {
"x": {
"type": "integer",
"description": "Left edge, pixels, 0-based from top-left"
},
"y": {
"type": "integer",
"description": "Top edge, pixels, 0-based from top-left"
},
"width": {
"type": "integer",
"description": "Width in pixels (min 1)"
},
"height": {
"type": "integer",
"description": "Height in pixels (min 1)"
}
},
"required": [
"x",
"y",
"width",
"height"
]
}
}move_regionAction
Shift the selected region's pixels by (dx, dy) on the active layer. Select a region with select_region first.
View tool JSON
{
"name": "move_region",
"kind": "act",
"impl": "imperative",
"description": "Shift the selected region's pixels by (dx, dy) on the active layer. Select a region with select_region first.",
"inputSchema": {
"type": "object",
"properties": {
"dx": {
"type": "integer",
"description": "Horizontal shift (+right / -left)"
},
"dy": {
"type": "integer",
"description": "Vertical shift (+down / -up)"
}
},
"required": [
"dx",
"dy"
]
}
}flip_regionAction
Mirror the selected region horizontally or vertically on the active layer. Select a region with select_region first.
View tool JSON
{
"name": "flip_region",
"kind": "act",
"impl": "imperative",
"description": "Mirror the selected region horizontally or vertically on the active layer. Select a region with select_region first.",
"inputSchema": {
"type": "object",
"properties": {
"direction": {
"type": "string",
"enum": [
"horizontal",
"vertical"
]
}
},
"required": [
"direction"
]
}
}clear_regionAction
Erase every pixel inside the selected region on the active layer (make them transparent). Select a region with select_region first.
View tool JSON
{
"name": "clear_region",
"kind": "act",
"impl": "imperative",
"description": "Erase every pixel inside the selected region on the active layer (make them transparent). Select a region with select_region first.",
"inputSchema": {
"type": "object",
"properties": {}
}
}set_paletteAction
Replace the editor's color palette with a list of hex colors. Also updates the palette swatches shown to the human.
View tool JSON
{
"name": "set_palette",
"kind": "act",
"impl": "imperative",
"description": "Replace the editor's color palette with a list of hex colors. Also updates the palette swatches shown to the human.",
"inputSchema": {
"type": "object",
"properties": {
"colors": {
"type": "array",
"description": "Hex colors, e.g. ['#1a1c2c', '#38b764']",
"items": {
"type": "string"
}
}
},
"required": [
"colors"
]
}
}export_sprite_sheetAction
Export all animation frames as a single sprite-sheet PNG (row-major, N columns) and trigger a browser download. Returns sheet metadata and a data URL of the generated image.
View tool JSON
{
"name": "export_sprite_sheet",
"kind": "act",
"impl": "imperative",
"description": "Export all animation frames as a single sprite-sheet PNG (row-major, N columns) and trigger a browser download. Returns sheet metadata and a data URL of the generated image.",
"inputSchema": {
"type": "object",
"properties": {
"columns": {
"type": "integer",
"description": "Frames per row in the sheet (default: all frames in one row)"
},
"scale": {
"type": "integer",
"description": "Output scale factor per pixel (default 8)"
}
}
}
}export_animation_gifAction
Export the whole animation as an animated GIF file and trigger a browser download. Frames play at their configured durations. Returns file metadata.
View tool JSON
{
"name": "export_animation_gif",
"kind": "act",
"impl": "imperative",
"description": "Export the whole animation as an animated GIF file and trigger a browser download. Frames play at their configured durations. Returns file metadata.",
"inputSchema": {
"type": "object",
"properties": {
"scale": {
"type": "integer",
"description": "Output scale factor per pixel (default 4)"
},
"background": {
"type": "string",
"description": "Hex background color the animation is flattened onto (default '#ffffff')"
}
}
}
}