Natural Language Control
Forget ExtendScript syntax. Describe the task — "rename all 'Shape' layers to 'Element_##'" — and the AI returns clean, runnable code.
Generate, run and save ExtendScript inside After Effects from a single sentence in plain English. No coding required, no subscription, no copy-pasting from a chatbot.
Seven pieces that turn natural language into reliable, repeatable After Effects automation.
Forget ExtendScript syntax. Describe the task — "rename all 'Shape' layers to 'Element_##'" — and the AI returns clean, runnable code.
Scripts run inside After Effects — not in a browser. Wrap-in undoGroups means a single Ctrl+Z reverts everything.
Save any generated script as a one-click button. Build a personal toolkit that grows with every project.
Pay LLM providers directly. No middleman markup, no monthly fee — usually $1-3/mo for typical use.
Pick the brain that fits the task: Claude (Anthropic), GPT (OpenAI), Gemini (Google), or Grok (xAI).
Connect Ollama or LM Studio. Total privacy, zero API cost, full offline operation.
Iterate without starting from scratch. Tweak any saved script manually, or ask the AI to refine it — "make it 30% faster", "add a fade-in", "support multiple comps".
Each prompt is parsed, generated, executed inside After Effects — and your timeline reflects it instantly.
"Create a square layer 50×50 that rotates faster and faster."
Wrapped in undoGroup · production-ready · syntactically valid.
Layer added · expression set · square rotates inside your composition.
Reusable across every future project as a one-click button.
Claude Scripter excels at the housekeeping you'd rather not do. Here are the prompts our users run on repeat.
Rename all layers containing "Shape" to "Element_01" and color them blue.
Remove all unused solids and group every comp into a "Comps" folder.
Distribute all selected layers seamlessly across the screen width.
Apply a loopOut() expression to the rotation of selected layers.
Create a square 50×50 that rotates faster and faster.
Find every layer with opacity below 50% and set it back to 100%.
Real prompts, real ExtendScript output. Drop any of these into Claude Scripter and watch your timeline update in seconds.
Rename all layers containing "Shape" to "Element_##" and color them blue.
// Rename + color shape layersvar comp = app.project.activeItem;app.beginUndoGroup("Rename");var n = 1;for (var i = 1; i <= comp.layers.length; i++) { var l = comp.layer(i); if (l.name.indexOf("Shape") >= 0) { l.name = "Element_" + (n++).toString(); l.label = 9; // blue }}app.endUndoGroup();
Remove every unused solid and group all comps into a "Comps" folder.
// Cleanup project treeapp.beginUndoGroup("Cleanup");var folder = app.project.items.addFolder("Comps");for (var i = app.project.items.length; i >= 1; i--) { var it = app.project.items[i]; if (it instanceof FootageItem && !it.usedIn.length) it.remove(); else if (it instanceof CompItem) it.parentFolder = folder;}app.endUndoGroup();
Apply ease-in-out to every keyframe on selected layers.
// Smooth all keyframesvar comp = app.project.activeItem;app.beginUndoGroup("Smooth keys");var ease = new KeyframeEase(0, 66);var sel = comp.selectedLayers;for (var i = 0; i < sel.length; i++) { var props = sel[i].selectedProperties; for (var p = 0; p < props.length; p++) { var pr = props[p]; if (pr.numKeys < 2) continue; for (var k = 1; k <= pr.numKeys; k++) pr.setTemporalEaseAtKey(k, [ease], [ease]); }}
Stagger the start time of selected layers by 4 frames each.
// Frame-stagger selected layersvar comp = app.project.activeItem;app.beginUndoGroup("Stagger");var sel = comp.selectedLayers;var step = comp.frameDuration * 4;for (var i = 0; i < sel.length; i++) { sel[i].startTime = i * step;}app.endUndoGroup();
Apply loopOut('cycle') to the rotation of selected layers.
// Loop rotation cyclicallyvar comp = app.project.activeItem;app.beginUndoGroup("Loop rotation");var sel = comp.selectedLayers;for (var i = 0; i < sel.length; i++) { sel[i].transform.rotation.expression = "loopOut('cycle')";}app.endUndoGroup();
Duplicate "BG_circle" 12 times, arrange in a circle of radius 400.
// 12 copies in a circlevar comp = app.project.activeItem;app.beginUndoGroup("Circle of 12");var src = comp.layer("BG_circle");var cx = comp.width/2, cy = comp.height/2;for (var n = 0; n < 12; n++) { var d = src.duplicate(); var a = (n / 12) * 2 * Math.PI; d.transform.position.setValue([ cx + 400 * Math.cos(a), cy + 400 * Math.sin(a) ]);}
One transparent price. No subscription, no recurring fees, no upgrade tiers.
CC 2020 and later, on both macOS and
Windows. The extension installs as a standard CEP panel via aescripts' ZXP installer.
Ollama
or LM Studio, the cost is $0.Ctrl/⌘+Z reverts the entire operation. We still recommend saving your project before running
any new script — same as with any aescripts tool.
Ollama or
LM Studio. Your prompts never leave your machine, and you can keep working on a plane.
I'm a motion-focused technical developer building tools to remove friction from the After Effects workflow. Claude Scripter is the first thing I'm shipping publicly — built because I was tired of context-switching to a chatbot every time I needed a 10-line script. If you have ideas, bug reports, or just want to chat motion design and AI, write me directly.
Get Claude Scripter and transform the way you work in After Effects.