Tool tree
gradeNot graded
get_project_stateAnswer
Read a concise project summary. Set includePixels only when exact cel data is required.
View tool JSON
{
"name": "get_project_state",
"kind": "answer",
"impl": "imperative",
"description": "Read a concise project summary. Set includePixels only when exact cel data is required.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"includePixels": {
"type": "boolean",
"description": "Include every cel pixel. This can be a large response."
}
}
}
}list_projectsAnswer
List every browser-local PixelForge project with its stable id, name, dimensions, frame count, layer count, and last update time.
View tool JSON
{
"name": "list_projects",
"kind": "answer",
"impl": "imperative",
"description": "List every browser-local PixelForge project with its stable id, name, dimensions, frame count, layer count, and last update time.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {}
}
}select_projectAction
Save the current project and switch to another browser-local project by stable id.
View tool JSON
{
"name": "select_project",
"kind": "act",
"impl": "imperative",
"description": "Save the current project and switch to another browser-local project by stable id.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"projectId"
],
"properties": {
"projectId": {
"type": "string",
"minLength": 1,
"maxLength": 160
}
}
}
}duplicate_projectAction
Create and select a new browser-local copy without changing the original project.
View tool JSON
{
"name": "duplicate_project",
"kind": "act",
"impl": "imperative",
"description": "Create and select a new browser-local copy without changing the original project.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {}
}
}delete_projectSensitive Action
Delete one browser-local project by id and select another remaining project.
View tool JSON
{
"name": "delete_project",
"kind": "transact",
"impl": "imperative",
"description": "Delete one browser-local project by id and select another remaining project.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"projectId"
],
"properties": {
"projectId": {
"type": "string",
"minLength": 1,
"maxLength": 160
}
}
}
}list_project_presetsAnswer
List researched sprite, tile, web-game, and classic-system canvas presets.
View tool JSON
{
"name": "list_project_presets",
"kind": "answer",
"impl": "imperative",
"description": "List researched sprite, tile, web-game, and classic-system canvas presets.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {}
}
}create_from_presetAction
Add and select a production-sized project with a matching palette while preserving existing projects.
View tool JSON
{
"name": "create_from_preset",
"kind": "act",
"impl": "imperative",
"description": "Add and select a production-sized project with a matching palette while preserving existing projects.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"presetId"
],
"properties": {
"presetId": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"name": {
"type": "string",
"maxLength": 120
}
}
}
}create_projectAction
Add and select a new transparent pixel project while preserving existing projects.
View tool JSON
{
"name": "create_project",
"kind": "act",
"impl": "imperative",
"description": "Add and select a new transparent pixel project while preserving existing projects.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"width",
"height"
],
"properties": {
"width": {
"type": "integer",
"minimum": 1,
"maximum": 4096,
"description": "Canvas width in pixels."
},
"height": {
"type": "integer",
"minimum": 1,
"maximum": 4096,
"description": "Canvas height in pixels."
},
"name": {
"type": "string",
"maxLength": 120,
"description": "Project name."
}
}
}
}image_to_pixelAction
Create a new editable project from a bounded image. strict-99 is the default: it dynamically preserves the source or transparent-subject ratio, forbids crop/stretch, uses a detail-preserving palette, and returns a measured fidelity report. Use manual only when the user explicitly requests a stylized or lower-fidelity result.
View tool JSON
{
"name": "image_to_pixel",
"kind": "act",
"impl": "imperative",
"description": "Create a new editable project from a bounded image. strict-99 is the default: it dynamically preserves the source or transparent-subject ratio, forbids crop/stretch, uses a detail-preserving palette, and returns a measured fidelity report. Use manual only when the user explicitly requests a stylized or lower-fidelity result.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"imageDataUrl"
],
"properties": {
"imageDataUrl": {
"type": "string",
"pattern": "^data:image/(png|jpeg|webp);base64,",
"maxLength": 22400000,
"description": "Base64 image data URL; arbitrary remote URLs are not accepted."
},
"name": {
"type": "string",
"maxLength": 120
},
"resolutionMode": {
"type": "string",
"enum": [
"source-exact",
"auto-faithful",
"custom"
],
"description": "Defaults to auto-faithful. Custom requires width and height."
},
"fidelityMode": {
"type": "string",
"enum": [
"strict-99",
"balanced",
"manual"
],
"description": "Defaults to strict-99. Manual is an explicit opt-out from the fidelity guardrails."
},
"width": {
"type": "integer",
"minimum": 1,
"maximum": 4096,
"description": "Editable output width for custom mode."
},
"height": {
"type": "integer",
"minimum": 1,
"maximum": 4096,
"description": "Editable output height for custom mode."
},
"maxColors": {
"type": "integer",
"minimum": 2,
"maximum": 256,
"description": "Adaptive palette size; strict-99 enforces at least 128."
},
"dither": {
"type": "string",
"enum": [
"none",
"ordered-4x4",
"floyd-steinberg"
]
},
"fit": {
"type": "string",
"enum": [
"contain",
"cover",
"stretch"
]
},
"sampling": {
"type": "string",
"enum": [
"smooth",
"nearest"
]
},
"alphaThreshold": {
"type": "integer",
"minimum": 0,
"maximum": 255
},
"preserveAlpha": {
"type": "boolean",
"description": "Preserve alpha values above the cutoff."
},
"trimTransparent": {
"type": "boolean",
"description": "Crop transparent source margins before fitting."
},
"targetOccupancy": {
"type": "number",
"minimum": 0.1,
"maximum": 1,
"description": "Share of the canvas occupied by the visible subject."
},
"hardAlpha": {
"type": "boolean",
"description": "Convert retained edge pixels to fully opaque pixels."
}
}
}
}animation_from_imagesAction
Align two or more source images into animation frames with strict-99 proportion and sampling guardrails by default, separate pixels shared by every frame from motion details when memory allows, and add the result as a new project.
View tool JSON
{
"name": "animation_from_images",
"kind": "act",
"impl": "imperative",
"description": "Align two or more source images into animation frames with strict-99 proportion and sampling guardrails by default, separate pixels shared by every frame from motion details when memory allows, and add the result as a new project.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"imageDataUrls"
],
"properties": {
"imageDataUrls": {
"type": "array",
"minItems": 2,
"maxItems": 120,
"items": {
"type": "string",
"pattern": "^data:image/(png|jpeg|webp);base64,",
"maxLength": 22400000
}
},
"sourceNames": {
"type": "array",
"maxItems": 120,
"items": {
"type": "string",
"maxLength": 180
}
},
"name": {
"type": "string",
"maxLength": 120
},
"resolutionMode": {
"type": "string",
"enum": [
"source-exact",
"auto-faithful",
"custom"
]
},
"fidelityMode": {
"type": "string",
"enum": [
"strict-99",
"balanced",
"manual"
]
},
"width": {
"type": "integer",
"minimum": 1,
"maximum": 4096
},
"height": {
"type": "integer",
"minimum": 1,
"maximum": 4096
},
"maxColors": {
"type": "integer",
"minimum": 2,
"maximum": 256
},
"alphaThreshold": {
"type": "integer",
"minimum": 0,
"maximum": 255
},
"targetOccupancy": {
"type": "number",
"minimum": 0.1,
"maximum": 1
},
"fps": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"loopMode": {
"type": "string",
"enum": [
"loop",
"once",
"ping-pong"
]
},
"separateLayers": {
"type": "boolean",
"description": "Separate common pixels from per-frame motion details."
}
}
}
}reference_image.get_stateAnswer
Read the browser-local reference image metadata and every synchronized view setting without returning the image bytes.
View tool JSON
{
"name": "reference_image.get_state",
"kind": "answer",
"impl": "imperative",
"description": "Read the browser-local reference image metadata and every synchronized view setting without returning the image bytes.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {}
}
}reference_image.open_pickerAction
Request the browser file picker for a local PNG, JPEG, or WebP. Browser user-activation rules may require the user to click the visible upload control instead.
View tool JSON
{
"name": "reference_image.open_picker",
"kind": "act",
"impl": "imperative",
"description": "Request the browser file picker for a local PNG, JPEG, or WebP. Browser user-activation rules may require the user to click the visible upload control instead.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {}
}
}reference_image.set_from_data_urlAction
Validate and store a bounded PNG, JPEG, or WebP data URL as the current browser-local reference image. Remote URLs are never accepted.
View tool JSON
{
"name": "reference_image.set_from_data_url",
"kind": "act",
"impl": "imperative",
"description": "Validate and store a bounded PNG, JPEG, or WebP data URL as the current browser-local reference image. Remote URLs are never accepted.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"imageDataUrl"
],
"properties": {
"imageDataUrl": {
"type": "string",
"pattern": "^data:image/(png|jpeg|webp);base64,",
"maxLength": 22400000,
"description": "Base64 image data URL; arbitrary remote URLs are not accepted."
},
"name": {
"type": "string",
"maxLength": 180
}
}
}
}reference_image.clearAction
Remove the current browser-local reference image while preserving the pixel project.
View tool JSON
{
"name": "reference_image.clear",
"kind": "act",
"impl": "imperative",
"description": "Remove the current browser-local reference image while preserving the pixel project.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {}
}
}reference_image.set_modeAction
Switch the desktop reference between split, floating overlay, and hidden modes. Mobile continues to use its dedicated sheet viewer.
View tool JSON
{
"name": "reference_image.set_mode",
"kind": "act",
"impl": "imperative",
"description": "Switch the desktop reference between split, floating overlay, and hidden modes. Mobile continues to use its dedicated sheet viewer.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"mode"
],
"properties": {
"mode": {
"type": "string",
"enum": [
"split",
"overlay",
"hidden"
]
}
}
}
}reference_image.set_zoomAction
Set the reference image scale from 0.1 to 8, where 1 is 100 percent.
View tool JSON
{
"name": "reference_image.set_zoom",
"kind": "act",
"impl": "imperative",
"description": "Set the reference image scale from 0.1 to 8, where 1 is 100 percent.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"zoom"
],
"properties": {
"zoom": {
"type": "number",
"minimum": 0.1,
"maximum": 8,
"description": "Scale multiplier; 1 is 100 percent."
}
}
}
}reference_image.set_opacityAction
Set reference image opacity from 0 to 1.
View tool JSON
{
"name": "reference_image.set_opacity",
"kind": "act",
"impl": "imperative",
"description": "Set reference image opacity from 0 to 1.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"opacity"
],
"properties": {
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Opacity from transparent 0 to opaque 1."
}
}
}
}reference_image.set_flipAction
Set horizontal and/or vertical reference mirroring. At least one field is required.
View tool JSON
{
"name": "reference_image.set_flip",
"kind": "act",
"impl": "imperative",
"description": "Set horizontal and/or vertical reference mirroring. At least one field is required.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"minProperties": 1,
"properties": {
"flipX": {
"type": "boolean",
"description": "Mirror left to right."
},
"flipY": {
"type": "boolean",
"description": "Mirror top to bottom."
}
}
}
}reference_image.set_panel_sizeAction
Set the desktop split reference panel width in pixels.
View tool JSON
{
"name": "reference_image.set_panel_size",
"kind": "act",
"impl": "imperative",
"description": "Set the desktop split reference panel width in pixels.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"panelSize"
],
"properties": {
"panelSize": {
"type": "integer",
"minimum": 220,
"maximum": 720,
"description": "Desktop panel width in pixels."
}
}
}
}reference_image.set_overlay_rectAction
Move and resize the floating reference using workspace-relative pixel bounds.
View tool JSON
{
"name": "reference_image.set_overlay_rect",
"kind": "act",
"impl": "imperative",
"description": "Move and resize the floating reference using workspace-relative pixel bounds.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"x",
"y",
"width",
"height"
],
"properties": {
"x": {
"type": "integer",
"minimum": 0,
"maximum": 4096
},
"y": {
"type": "integer",
"minimum": 0,
"maximum": 4096
},
"width": {
"type": "integer",
"minimum": 260,
"maximum": 1600
},
"height": {
"type": "integer",
"minimum": 220,
"maximum": 1200
}
}
}
}reference_image.fitAction
Fit the entire reference image inside its current panel or floating window.
View tool JSON
{
"name": "reference_image.fit",
"kind": "act",
"impl": "imperative",
"description": "Fit the entire reference image inside its current panel or floating window.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {}
}
}reference_image.set_pinnedAction
Pin or unpin the floating reference so its position and size cannot be changed by pointer input.
View tool JSON
{
"name": "reference_image.set_pinned",
"kind": "act",
"impl": "imperative",
"description": "Pin or unpin the floating reference so its position and size cannot be changed by pointer input.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"pinned"
],
"properties": {
"pinned": {
"type": "boolean"
}
}
}
}reference_image.set_collapsedAction
Collapse or expand the desktop split reference panel without clearing its image.
View tool JSON
{
"name": "reference_image.set_collapsed",
"kind": "act",
"impl": "imperative",
"description": "Collapse or expand the desktop split reference panel without clearing its image.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"collapsed"
],
"properties": {
"collapsed": {
"type": "boolean"
}
}
}
}reference_image.pixelizeAction
Reuse the current browser-local reference as image-to-pixel input. strict-99 is the default and dynamically derives a canvas from transparent content bounds, preserves aspect ratio without cropping or stretching, and returns an auditable measured score.
View tool JSON
{
"name": "reference_image.pixelize",
"kind": "act",
"impl": "imperative",
"description": "Reuse the current browser-local reference as image-to-pixel input. strict-99 is the default and dynamically derives a canvas from transparent content bounds, preserves aspect ratio without cropping or stretching, and returns an auditable measured score.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"maxLength": 120
},
"resolutionMode": {
"type": "string",
"enum": [
"source-exact",
"auto-faithful",
"custom"
],
"description": "Defaults to auto-faithful. Supplying width and height implies custom mode."
},
"fidelityMode": {
"type": "string",
"enum": [
"strict-99",
"balanced",
"manual"
],
"description": "Defaults to strict-99. Manual is an explicit opt-out from guardrails."
},
"width": {
"type": "integer",
"minimum": 1,
"maximum": 4096,
"description": "Editable output width for custom mode."
},
"height": {
"type": "integer",
"minimum": 1,
"maximum": 4096,
"description": "Editable output height for custom mode."
},
"maxColors": {
"type": "integer",
"minimum": 2,
"maximum": 256,
"description": "Adaptive palette size; strict-99 enforces at least 128."
},
"dither": {
"type": "string",
"enum": [
"none",
"ordered-4x4",
"floyd-steinberg"
]
},
"fit": {
"type": "string",
"enum": [
"contain",
"cover",
"stretch"
]
},
"sampling": {
"type": "string",
"enum": [
"smooth",
"nearest"
]
},
"alphaThreshold": {
"type": "integer",
"minimum": 0,
"maximum": 255
},
"preserveAlpha": {
"type": "boolean",
"description": "Preserve alpha values above the cutoff."
},
"trimTransparent": {
"type": "boolean",
"description": "Crop transparent source margins before fitting."
},
"targetOccupancy": {
"type": "number",
"minimum": 0.1,
"maximum": 1
},
"hardAlpha": {
"type": "boolean",
"description": "Convert retained edge pixels to fully opaque pixels."
}
}
}
}reference_image.audit_fidelityAction
Measure the active frame against the browser-local reference after every reference-driven WebMCP workflow. A verified_99 result requires a score of at least 0.990, every metric floor, exact dimensions, and a meaningful reference alpha mask; never describe an unscorable or degraded result as 99% verified.
View tool JSON
{
"name": "reference_image.audit_fidelity",
"kind": "act",
"impl": "imperative",
"description": "Measure the active frame against the browser-local reference after every reference-driven WebMCP workflow. A verified_99 result requires a score of at least 0.990, every metric floor, exact dimensions, and a meaningful reference alpha mask; never describe an unscorable or degraded result as 99% verified.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"alphaThreshold": {
"type": "integer",
"minimum": 0,
"maximum": 255,
"description": "Alpha cutoff used for the silhouette comparison."
},
"trimTransparent": {
"type": "boolean",
"description": "Compare against transparent content bounds."
}
}
}
}import_projectAction
Add and select a complete PixelForge project JSON object while preserving existing projects.
View tool JSON
{
"name": "import_project",
"kind": "act",
"impl": "imperative",
"description": "Add and select a complete PixelForge project JSON object while preserving existing projects.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"project"
],
"properties": {
"project": {
"type": "object",
"description": "PixelForge project object."
}
}
}
}rename_projectAction
Change the current project name.
View tool JSON
{
"name": "rename_project",
"kind": "act",
"impl": "imperative",
"description": "Change the current project name.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 120
}
}
}
}resize_canvasAction
Resize every cel and anchor existing pixels to a chosen edge or the center.
View tool JSON
{
"name": "resize_canvas",
"kind": "act",
"impl": "imperative",
"description": "Resize every cel and anchor existing pixels to a chosen edge or the center.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"width",
"height"
],
"properties": {
"width": {
"type": "integer",
"minimum": 1,
"maximum": 4096
},
"height": {
"type": "integer",
"minimum": 1,
"maximum": 4096
},
"anchor": {
"type": "string",
"enum": [
"top-left",
"top",
"top-right",
"left",
"center",
"right",
"bottom-left",
"bottom",
"bottom-right"
]
}
}
}
}set_active_toolAction
Select pencil, eraser, fill, line, rectangle, ellipse, picker, marquee, or hand.
View tool JSON
{
"name": "set_active_tool",
"kind": "act",
"impl": "imperative",
"description": "Select pencil, eraser, fill, line, rectangle, ellipse, picker, marquee, or hand.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"tool"
],
"properties": {
"tool": {
"type": "string",
"enum": [
"pencil",
"eraser",
"fill",
"line",
"rectangle",
"ellipse",
"picker",
"select",
"hand"
]
}
}
}
}set_primary_colorAction
Set the foreground drawing color.
View tool JSON
{
"name": "set_primary_color",
"kind": "act",
"impl": "imperative",
"description": "Set the foreground drawing color.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"color"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}([0-9a-fA-F]{2})?$",
"description": "Hex color as #RRGGBB or #RRGGBBAA."
}
}
}
}set_secondary_colorAction
Set the right-click background drawing color.
View tool JSON
{
"name": "set_secondary_color",
"kind": "act",
"impl": "imperative",
"description": "Set the right-click background drawing color.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"color"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}([0-9a-fA-F]{2})?$",
"description": "Hex color as #RRGGBB or #RRGGBBAA."
}
}
}
}set_brush_sizeAction
Set the square pixel brush size from 1 to 8.
View tool JSON
{
"name": "set_brush_size",
"kind": "act",
"impl": "imperative",
"description": "Set the square pixel brush size from 1 to 8.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"size"
],
"properties": {
"size": {
"type": "integer",
"minimum": 1,
"maximum": 8
}
}
}
}load_paletteAction
Replace the active palette with named hex colors.
View tool JSON
{
"name": "load_palette",
"kind": "act",
"impl": "imperative",
"description": "Replace the active palette with named hex colors.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"colors"
],
"properties": {
"name": {
"type": "string",
"maxLength": 80
},
"colors": {
"type": "array",
"minItems": 1,
"maxItems": 64,
"items": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}([0-9a-fA-F]{2})?$",
"description": "Hex color as #RRGGBB or #RRGGBBAA."
}
}
}
}
}draw_pixelsAction
Write a bounded batch of exact pixels into the active cel atomically.
View tool JSON
{
"name": "draw_pixels",
"kind": "act",
"impl": "imperative",
"description": "Write a bounded batch of exact pixels into the active cel atomically.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"pixels"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}([0-9a-fA-F]{2})?$",
"description": "Hex color as #RRGGBB or #RRGGBBAA."
},
"pixels": {
"type": "array",
"minItems": 1,
"maxItems": 1048576,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"x",
"y"
],
"properties": {
"x": {
"type": "integer",
"minimum": 0,
"maximum": 4095,
"description": "Zero-based pixel x coordinate."
},
"y": {
"type": "integer",
"minimum": 0,
"maximum": 4095,
"description": "Zero-based pixel y coordinate."
},
"color": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}([0-9a-fA-F]{2})?$",
"description": "Hex color as #RRGGBB or #RRGGBBAA."
}
}
}
}
}
}
}apply_editAction
Run the editor's line, rectangle, ellipse, or flood-fill algorithm on the active cel.
View tool JSON
{
"name": "apply_edit",
"kind": "act",
"impl": "imperative",
"description": "Run the editor's line, rectangle, ellipse, or flood-fill algorithm on the active cel.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"operation",
"start"
],
"properties": {
"operation": {
"type": "string",
"enum": [
"line",
"rectangle",
"ellipse",
"fill"
]
},
"start": {
"type": "object",
"additionalProperties": false,
"required": [
"x",
"y"
],
"properties": {
"x": {
"type": "integer",
"minimum": 0,
"maximum": 4095,
"description": "Zero-based pixel x coordinate."
},
"y": {
"type": "integer",
"minimum": 0,
"maximum": 4095,
"description": "Zero-based pixel y coordinate."
}
}
},
"end": {
"type": "object",
"additionalProperties": false,
"required": [
"x",
"y"
],
"properties": {
"x": {
"type": "integer",
"minimum": 0,
"maximum": 4095,
"description": "Zero-based pixel x coordinate."
},
"y": {
"type": "integer",
"minimum": 0,
"maximum": 4095,
"description": "Zero-based pixel y coordinate."
}
}
},
"color": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}([0-9a-fA-F]{2})?$",
"description": "Hex color as #RRGGBB or #RRGGBBAA."
},
"filled": {
"type": "boolean",
"description": "Fill the interior of rectangles or ellipses."
}
}
}
}clear_active_celAction
Erase all pixels in the active layer and frame unless the layer is locked.
View tool JSON
{
"name": "clear_active_cel",
"kind": "act",
"impl": "imperative",
"description": "Erase all pixels in the active layer and frame unless the layer is locked.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {}
}
}set_selectionAction
Create or clear the rectangular marquee selection.
View tool JSON
{
"name": "set_selection",
"kind": "act",
"impl": "imperative",
"description": "Create or clear the rectangular marquee selection.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"selection": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"x",
"y",
"width",
"height"
],
"properties": {
"x": {
"type": "integer",
"minimum": 0,
"maximum": 4095
},
"y": {
"type": "integer",
"minimum": 0,
"maximum": 4095
},
"width": {
"type": "integer",
"minimum": 1,
"maximum": 4096
},
"height": {
"type": "integer",
"minimum": 1,
"maximum": 4096
}
}
},
{
"type": "null"
}
]
}
}
}
}delete_selectionSensitive Action
Clear pixels inside the current marquee on the active cel.
View tool JSON
{
"name": "delete_selection",
"kind": "transact",
"impl": "imperative",
"description": "Clear pixels inside the current marquee on the active cel.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {}
}
}add_frameAction
Append a blank animation frame.
View tool JSON
{
"name": "add_frame",
"kind": "act",
"impl": "imperative",
"description": "Append a blank animation frame.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {}
}
}duplicate_frameAction
Copy the active frame and every layer cel.
View tool JSON
{
"name": "duplicate_frame",
"kind": "act",
"impl": "imperative",
"description": "Copy the active frame and every layer cel.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {}
}
}delete_frameSensitive Action
Delete the active animation frame.
View tool JSON
{
"name": "delete_frame",
"kind": "transact",
"impl": "imperative",
"description": "Delete the active animation frame.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {}
}
}add_layerAction
Add a transparent layer.
View tool JSON
{
"name": "add_layer",
"kind": "act",
"impl": "imperative",
"description": "Add a transparent layer.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {}
}
}duplicate_layerAction
Copy the active layer and all cels.
View tool JSON
{
"name": "duplicate_layer",
"kind": "act",
"impl": "imperative",
"description": "Copy the active layer and all cels.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {}
}
}delete_layerSensitive Action
Delete the active layer.
View tool JSON
{
"name": "delete_layer",
"kind": "transact",
"impl": "imperative",
"description": "Delete the active layer.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {}
}
}toggle_layer_visibilityAction
Show or hide the active layer.
View tool JSON
{
"name": "toggle_layer_visibility",
"kind": "act",
"impl": "imperative",
"description": "Show or hide the active layer.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {}
}
}undoAction
Undo the latest recorded project edit.
View tool JSON
{
"name": "undo",
"kind": "act",
"impl": "imperative",
"description": "Undo the latest recorded project edit.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {}
}
}redoAction
Redo the next project edit.
View tool JSON
{
"name": "redo",
"kind": "act",
"impl": "imperative",
"description": "Redo the next project edit.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {}
}
}set_active_frameAction
Select an animation frame by zero-based index.
View tool JSON
{
"name": "set_active_frame",
"kind": "act",
"impl": "imperative",
"description": "Select an animation frame by zero-based index.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"index"
],
"properties": {
"index": {
"type": "integer",
"minimum": 0,
"maximum": 9999
}
}
}
}set_frame_durationAction
Set the active frame duration in milliseconds.
View tool JSON
{
"name": "set_frame_duration",
"kind": "act",
"impl": "imperative",
"description": "Set the active frame duration in milliseconds.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"ms"
],
"properties": {
"ms": {
"type": "integer",
"minimum": 20,
"maximum": 10000
}
}
}
}reorder_frameAction
Move the active frame to a zero-based timeline index.
View tool JSON
{
"name": "reorder_frame",
"kind": "act",
"impl": "imperative",
"description": "Move the active frame to a zero-based timeline index.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"to"
],
"properties": {
"to": {
"type": "integer",
"minimum": 0,
"maximum": 9999
}
}
}
}rename_layerAction
Rename the active layer.
View tool JSON
{
"name": "rename_layer",
"kind": "act",
"impl": "imperative",
"description": "Rename the active layer.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 120
}
}
}
}lock_layerAction
Lock, unlock, or toggle the active layer edit lock.
View tool JSON
{
"name": "lock_layer",
"kind": "act",
"impl": "imperative",
"description": "Lock, unlock, or toggle the active layer edit lock.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"locked": {
"type": "boolean",
"description": "Omit to toggle."
}
}
}
}set_layer_opacityAction
Set active layer opacity from 0 to 100 percent.
View tool JSON
{
"name": "set_layer_opacity",
"kind": "act",
"impl": "imperative",
"description": "Set active layer opacity from 0 to 100 percent.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"opacity"
],
"properties": {
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 100
}
}
}
}set_active_layerAction
Select a layer by zero-based index.
View tool JSON
{
"name": "set_active_layer",
"kind": "act",
"impl": "imperative",
"description": "Select a layer by zero-based index.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"index"
],
"properties": {
"index": {
"type": "integer",
"minimum": 0,
"maximum": 9999
}
}
}
}reorder_layerAction
Move the active layer to a zero-based stack index.
View tool JSON
{
"name": "reorder_layer",
"kind": "act",
"impl": "imperative",
"description": "Move the active layer to a zero-based stack index.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"to"
],
"properties": {
"to": {
"type": "integer",
"minimum": 0,
"maximum": 9999
}
}
}
}set_zoomAction
Set the editor's integer pixel zoom multiplier from 1 to 64.
View tool JSON
{
"name": "set_zoom",
"kind": "act",
"impl": "imperative",
"description": "Set the editor's integer pixel zoom multiplier from 1 to 64.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"zoom"
],
"properties": {
"zoom": {
"type": "integer",
"minimum": 1,
"maximum": 64
}
}
}
}toggle_gridAction
Show, hide, or toggle the pixel grid.
View tool JSON
{
"name": "toggle_grid",
"kind": "act",
"impl": "imperative",
"description": "Show, hide, or toggle the pixel grid.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": {
"type": "boolean",
"description": "Omit to toggle the current value."
}
}
}
}toggle_onion_skinAction
Show, hide, or toggle adjacent animation frames.
View tool JSON
{
"name": "toggle_onion_skin",
"kind": "act",
"impl": "imperative",
"description": "Show, hide, or toggle adjacent animation frames.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": {
"type": "boolean",
"description": "Omit to toggle the current value."
}
}
}
}toggle_symmetryAction
Enable, disable, or toggle mirrored drawing on both axes.
View tool JSON
{
"name": "toggle_symmetry",
"kind": "act",
"impl": "imperative",
"description": "Enable, disable, or toggle mirrored drawing on both axes.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": {
"type": "boolean",
"description": "Omit to toggle the current value."
}
}
}
}playbackAction
Play, pause, or stop the frame animation.
View tool JSON
{
"name": "playback",
"kind": "act",
"impl": "imperative",
"description": "Play, pause, or stop the frame animation.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"action"
],
"properties": {
"action": {
"type": "string",
"enum": [
"play",
"pause",
"stop"
]
}
}
}
}export_pngAction
Download the active frame as a crisp PNG.
View tool JSON
{
"name": "export_png",
"kind": "act",
"impl": "imperative",
"description": "Download the active frame as a crisp PNG.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"scale": {
"type": "integer",
"minimum": 1,
"maximum": 16
}
}
}
}export_gifAction
Download all frames as a looping animated GIF.
View tool JSON
{
"name": "export_gif",
"kind": "act",
"impl": "imperative",
"description": "Download all frames as a looping animated GIF.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"scale": {
"type": "integer",
"minimum": 1,
"maximum": 8
},
"loop": {
"type": "boolean"
}
}
}
}export_spritesheetAction
Download a PNG sprite sheet and JSON frame metadata.
View tool JSON
{
"name": "export_spritesheet",
"kind": "act",
"impl": "imperative",
"description": "Download a PNG sprite sheet and JSON frame metadata.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"scale": {
"type": "integer",
"minimum": 1,
"maximum": 16
},
"columns": {
"type": "integer",
"minimum": 1,
"maximum": 9999
},
"gap": {
"type": "integer",
"minimum": 0,
"maximum": 128
},
"layout": {
"type": "string",
"enum": [
"horizontal",
"vertical",
"grid"
]
}
}
}
}export_projectAction
Download the editable PixelForge project file.
View tool JSON
{
"name": "export_project",
"kind": "act",
"impl": "imperative",
"description": "Download the editable PixelForge project file.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {}
}
}export_game_bundleAction
Download a game-ready ZIP with transparent sprite sheets, optional PNG frame sequence, atlas metadata, timing, pivots, engine helpers, and a README.
View tool JSON
{
"name": "export_game_bundle",
"kind": "act",
"impl": "imperative",
"description": "Download a game-ready ZIP with transparent sprite sheets, optional PNG frame sequence, atlas metadata, timing, pivots, engine helpers, and a README.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"engine": {
"type": "string",
"enum": [
"universal",
"unity",
"godot",
"phaser",
"unreal",
"libgdx",
"gamemaker",
"rpg-maker",
"love2d"
]
},
"scale": {
"type": "integer",
"minimum": 1,
"maximum": 16
},
"columns": {
"type": "integer",
"minimum": 1,
"maximum": 9999
},
"gap": {
"type": "integer",
"minimum": 0,
"maximum": 128
},
"includeFrameSequence": {
"type": "boolean"
}
}
}
}