Installs into .claude/skills of the current project.
Are you the author of Sandbox Gif?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/nodetool-ai-sandbox-gif)
---
name: sandbox-gif
description: Encode an animated GIF from RGBA frames inside a Code node or CodeAct action, with gifenc running in the guest
---
# GIF encoding in the sandbox
Specifier: `@nodetool-ai/sandbox-gif`. One module, gifenc. Import it at the top of the body.
## Frames to a GIF
```js
import { GIFEncoder, quantize, applyPalette } from "@nodetool-ai/sandbox-gif";
const gif = GIFEncoder();
for (const frame of inputs.frames) {
const palette = quantize(frame.rgba, 256);
const index = applyPalette(frame.rgba, palette);
gif.writeFrame(index, inputs.width, inputs.height, {
palette,
delay: frame.delay ?? 100
});
}
gif.finish();
return { bytes: gif.bytes() };
```
Each `frame.rgba` is a `Uint8Array` of length `width * height * 4`.
`delay` is milliseconds.
## Gotchas
- **You supply RGBA.** Decode a still with `image.bytes` / canvas, then
pack frames yourself.
- **`gif.bytes()` is a `Uint8Array`.** Write it with
`workspace.writeBytes`.