Skip to content
COEY
Capabilities

Design and render

Build an overlay from a spec, save a page to disk, render it to video, keep an approved look as a kit, and keep a character consistent.

Graphics and render

Build an animated overlay page from a short spec, ready for render_html. No framework or npm needed

Save an HTML page you wrote to a path on your Mac and get the path back. render_html, render_composition, preview_html and check_fonts all need a saved html_path

Render an HTML page to a video file. No framework or npm needed

Render an HTML or GSAP composition to video with Chromium and ffmpeg. The picture comes from the page, not from library clips

Join rendered segments, with optional audio, into one file

Run an ffmpeg render from the ffmpeg_argv that make_reframe, make_highlights, make_highlights_vertical or make_captions returned. Start the argv at the flags (-y, -i, …); GroundSlate adds the ffmpeg binary

Build a page film: several scenes of your own media joined by the page transition kit, as one HTML page for render_html

Generate a short video on your Mac with LTX 2.5 through MLX, from a prompt and optionally a starting still, and give it a spoken line as audio so the picture speaks it. quality="preview" auditions a shot for less, and finish_of turns that preview into the finished clip

The looks you can apply to a clip, by category: light, color, blur, emulsion, print, lenses, camera, glitch (category= shows one)

Apply a named look to one clip and save a new file, using ffmpeg on your Mac

The AI effects, each with its own settings

Try an AI effect on one frame with up to six settings, before spending minutes applying it to a whole clip

Apply an AI effect to one clip and save a new file

See a page you are still writing at the times you name, without rendering it. Returns pictures

One frame of a page at t, as fast as possible

See frames from a finished video or image, as pictures. Use it to check your own renders or any library clip

Check that your Mac can render pages to video (Playwright, headless Chromium and ffmpeg), and what a page can use there: which browser draws, WebGL and WebGPU and their limits, and the frame formats

Save HTML as a named kit in this profile: a reusable brand or style reference, not a finished render

Get a kit's HTML to read or adapt before you build a page. Works for your saved kits and the built-in ones: get_kit("measurement kit"), get_kit("transition kit") and get_kit("draw kit")

This profile's saved kits, such as a lower third, a title card layout or a brand kit. collection=groundslate lists the built-in ones

Copy an .html or .htm file into this profile's kits. The name defaults to the filename

Delete a saved kit by name

Redraw a kit's preview.png at t and its preview-motion.mp4, and mark the preview as current

Render a kit large into Scratch Outputs, without changing it: its main page or one named sheet, at any width from 1280 to 3840. Use it to look closely at a puppet turnaround or a style kit's sheet

The collections this profile's kits are grouped into, with a count for each. These are kit collections (Toolkit then Code Kits), not Library or People collections

Create or update a kit collection. kind is looks (the default), engine, puppets, sets, props or style_kit

Change a kit collection's kind to looks, engine, puppets, sets, props or style_kit. Older collections read as looks until you set one

Delete a kit collection. Refuses if it still holds kits, and says how many, unless you pass force=True

Export a kit collection as one shareable .gskit file, with checksums and the fonts it needs

Build a look profile, a prompt suffix and reference stills

Cut the subject out of a still image and save it as a transparent PNG

The fonts render_html can use right now, each with its files, weights and styles

Check a page's fonts without rendering: which are available and which are missing

Add one font file (.woff2, .woff, .ttf or .otf) so render_html can use family, with no silent fallback to a system font

Add every font file in a folder, or a single file, in one call

Remove a font family or one of its styles. GroundSlate deletes its own copy; your original file is never touched

Puppets and style kits

Start a show's style kit from a working template. Writes a complete starter kit called name into collection and checks it, so your first edit starts from a kit that passes

Check a style kit before drawing a puppet to it. kit is its name or kit_… id; each show has one style kit collection. Returns a list of problems, even for a half-finished kit

See a style kit. Renders its swatches page (palette, line weights, shading, and sample mouths, eyes and brows) or its mouths page, and returns the picture with any problems found

Turn a hand-written puppet-<name>.js rig into a puppet kit, once: separate parts, face shapes, a preview sheet and the built-in engine, saved as one kit in collection. The engine is GroundSlate's own (gs-tween.js, gs-morph.js, gs-puppet.js), with no GSAP

Check a puppet against the rules before using it in a scene: structure, mouth chart, line and silhouette. Instant, and changes nothing

See a puppet. Renders a sheet and returns the picture: turnaround (six views), expressions (twelve), mouths, hands, chart:<joint>, or a costume (costume="flannel")

Rebuild the character file puppet-<id>.js from the puppet kit, plus one file per extra costume. This is the character, not the engine

Add, change, rename, remove or choose a puppet's costume, from SVG you write. A costume replaces body parts, so a shirt or coat moves with the joints. Renames and removals carry over to every avatar wearing it

Name a set of poses on a puppet, face included, so a scene's emote can ask for it in one word. Unknown charts or states are refused, and the puppet is rebuilt and checked

Remove a named preset from a puppet. If it replaced a built-in one, the built-in comes back

Build a prop or a set without editing kit files. A prop has states (poses a scene cuts to), triggers (how it moves between them over time), idle loops and parts. A set has marks, planes, a background and a ground

Move a project's copied rigs and engines into the kit store and update its pages. Runs as a dry run by default

Mouth-shape keyframes for 2D lip sync from a spoken line (mp3, wav or m4a), computed on your Mac, as Rhubarb Lip Sync does

The web

Screenshot a web page, rendered by WebKit on your Mac

Save the proportions the user chose for capturing a site. Call it with no proportions to get the options and the site's latest capture to show them, then again with their choice

Record a web page to an mp4, rendered by WebKit on your Mac

Open a visible browser window on your Mac, at a set size and on a chosen screen. The agent can then work in it with the tools below, and you can too

Your Mac's screens, with their sizes and scale. The index is what open_browser_window takes to open a window on a given screen

Look at a browser window the agent opened: its elements and where they are, its text, or a screenshot. It can read just what is under the pointer, to find a control that only appears on hover

Act in a browser window the agent opened: move the pointer, click, type, press keys, scroll, drag, go to an address, zoom and pan the page, and point things out with a spotlight, a highlight or a ring on each click. Each action is shown in the window as it happens

Run a whole timed sequence of actions in a browser window and record it as one mp4 with the pointer's path. A step can wait for words, an element or an address before it runs

Hide parts of a page, or change the words on a button, for a recording. Only what is drawn changes, the change is logged, and the window then refuses to press anything it touched

Record a browser window the agent opened to an mp4 while it works in it, for up to half an hour

Stop a record_browser_window recording early. The file keeps what was recorded

List open browser windows and whether each is still running

Close a window opened with open_browser_window

Avatars

Create an avatar, a reusable identity kit. Add its reference media afterwards with set_avatar_media, one call per slot

Archive an avatar. It leaves the lists, but everything generated with it still links back to it

One avatar's full kit, everything needed to generate it consistently, in one call

Every avatar, for real people or fictional characters, with reference views, voice and key facts

Update an avatar's details. Keys you leave out stay the same; an empty value clears that field

Fill one of an avatar's reference slots with a library clip. The avatar points at the clip and does not copy it

Attach the provider identity an avatar performs as: your HeyGen avatar id, a D-ID presenter or a Synthesia avatar

Add or remove one tag on an avatar, to help find it

Tag an avatar as appearing in a library clip, as tag_person does for people, or remove=true to untag. Different from set_avatar_tag, which labels the avatar itself

Set or remove one fact about an avatar that an AI reads when building a shot ("species": "anthropomorphic lobster", "silhouette": "round, stocky")

Attach a provider voice you own (ElevenLabs or any other) to an avatar, so the character always sounds the same

Give an avatar a body by pointing it at a puppet kit, by name or kit_ id. The avatar stores the link, not the drawings

Remove an avatar's puppet link. The kit stays in its collection. Returns cleared: false if there was no link

Add a reference beyond an avatar's five main slots: another angle, an outfit, a second sample video, another voice read

Remove one of an avatar's extra references, by extra_id (from get_avatar) or by the clip it uses

Add a note to an avatar. Title optional, body is the text, and you are listed as the author

Update a generated clip's history: add lineage entries, merge params, set provider_job_id, change project_id, or correct avatar_ids

Add an AI-generated file you made with a provider (fal.ai, ElevenLabs, …) and downloaded, as a searchable clip with its history saved

Reject a generated take. The file is deleted to free space (or kept with keep_file=true), but the clip keeps its poster, its history, and who rejected it, when and why (reason, such as "off-brief lighting")

Shows and episodes

Create or change a show, except its cast. A blank show_id creates one and needs name. When changing a show, blank fields are left alone; use clear to empty one

One show and its bible, or every show. Read the bible before writing for a show, or episodes drift from it

Add one avatar or real person to a show's cast, or remove one. A character can be cast by name alone, without an avatar

Archive a show. Nothing is deleted, and its episodes, cast and kits are untouched

Turn one scene spec into a rendered scene. Finds each character's puppet, speaks every line in that character's voice, syncs the mouths and renders the scene

Turn a script into an animatic in one call. Compiles every scene in order, lays each line on the voice track, checks and renders the cut, and sends it for review so the person can watch it

This list follows the current release. Something missing, or a description that is out of date? Tell us.