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
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
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
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
Link a real person's avatar to their entry in People, or remove the link with unlink=true
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