Skip to main content
Glama

reverse_frames

Reverses the order of a run of frames in an Aseprite sprite, preserving timing and layers. Useful for creating mirrored animations or reversing a sequence without re-authoring.

Instructions

Reverse the order of a run of frames, keeping their timing with them.

Reversing a walk to get its mirror, or a grow to get a shrink, is a normal move and
otherwise means re-authoring the whole thing. Whole frames move: every layer's cel
travels together, and each frame keeps its own duration.

Args:
    tag: Reverse one tag's frames.
    frames: Reverse these frames instead. They must be one unbroken run, because
        Aseprite reverses everything between the first and the last: a gapped list
        would silently take in the frames in between.

Defaults to the whole sprite when neither is given.

**Tags mark positions, not pictures.** A tag over the reversed frames keeps its own
range and now covers them in their new order, which is usually what was wanted for a
tag that spans the whole run and rarely what was wanted for one that spans part of
it. The result lists every tag that overlapped, so the ones worth revisiting are
named rather than left to be discovered later.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tagNo
framesNo
filenameYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.10.0

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With only readOnlyHint=false and openWorldHint=false available, the description carries the load and does so well: it discloses that whole frames move as units, that each frame keeps its own duration, that a gapped frame list silently absorbs the frames in between, how tags behave (they mark positions, not pictures), and that the result lists every overlapping tag.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, then structured into args and a caveat block. Mostly earns its place, though the aside 'otherwise means re-authoring the whole thing' and the tag paragraph are slightly verbose for the payload they carry.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no output schema, the description covers input semantics, the gapped-list hazard, tag side effects, and even what the result reports. Remaining gaps are minor: no mention of error conditions or whether changes are undoable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains what 'tag' targets, what 'frames' means, the unbroken-run constraint and why it matters, and the no-argument default. Only 'filename' is left undocumented, though it is self-evident as the required target.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Starts with a precise verb+resource+scope: 'Reverse the order of a run of frames, keeping their timing with them.' This clearly separates it from siblings like move_frame, duplicate_frame, or flip_sprite, which do not reorder a run while preserving per-frame durations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete motivating use cases ('reversing a walk to get its mirror, or a grow to get a shrink') and states the default (whole sprite when neither tag nor frames is given). It does not explicitly name alternative tools for those goals, so it stops short of a 5, but the when-to-use context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools