
Episode 2.3 · Claude in Premiere
The 60-second version of this post, with the three Episode 2.3 prompts pinned in the comments.
My Premiere Pro is version 22, from 2022. My After Effects is version 17, from 2020. I'm not upgrading; they work, and the laptop has 16 GB of RAM. The problem is that every public MCP server for Adobe apps wants Premiere 2023+ or After Effects 2022+. So for the last part of the workflow, the tools part, I asked Claude to build its own connector. It did, in an afternoon. Then came the thing that actually changed how I work: a review loop where Claude checks its own edit before I see a single frame.
Part 1 gave Claude eyes and ears. Part 2 gave it hands. This is the one where it gets to touch my software, and where I stop being the first reviewer.
No MCP for your version? Claude writes one
An MCP server is a connector: a small program that gives Claude a list of tools and runs them when asked. The public ones for Premiere and After Effects use APIs my versions don't have. But the old way of scripting Adobe apps, ExtendScript, has been there for twenty years, and both of my versions speak it. So the prompt was: find out what I have, look for a maintained server, and if there isn't one, build a small local one around what the old versions can do.
Prompt 1Find which versions of Premiere Pro and After Effects I have. If a well-maintained MCP server supports them, show me where it comes from (repo, last update) and install it only after I say yes. If none does, build a small local MCP server: • After Effects: run .jsx scripts in the open app + render with aerender • Premiere Pro: a small CEP panel that runs ExtendScript, timelines built as FCP7 XML and imported List every click I have to do myself. Test: a 5-second After Effects comp with my logo rendered to MP4, and a 3-clip Premiere sequence.
"List every click I have to do myself." Old Adobe apps throw modal dialogs, and a script can't close them. The prompt makes Claude say up front what's manual (opening the panel once, clicking OK on a first-run alert) instead of hanging silently on a dialog I can't see. The two tests at the end are small on purpose: a logo comp and three clips prove the whole chain works before any real footage goes near it.
Prompt 2Update edit-my-video: before you show me anything, review your own edit. Check a frame every second against your plan: • every word readable and on screen long enough to read • nothing off the edge • captions in sync with my voice Fix what you find, then send me ONE preview.mp4 (max 1080 px wide). Render in 2-second chunks, so when I send a note like "0:12 caption late" you re-render only those seconds. After every round, add my notes to my-style as rules, so the same mistake never comes back.
This is the game changer. Not the connector. Three checks, one file, chunked renders, and notes that turn into rules. The rest of this post is about why each line is there.
Prompt 3/edit-my-video <your clip> Cut in Premiere Pro (best takes, no fillers, no dead air). Graphics + captions in After Effects. Keep both projects editable. Review, then send me the preview.
"Keep both projects editable." Claude's edit is a starting point I can open and nudge, not a rendered file I have to live with. A real .prproj with my footage on V1 and the graphics on V2+, a real .aep with one comp per graphic. If I don't like a title, I open the comp.
What Claude built
Here's the connector it came back with. Tap each hop to see what it does and why it's shaped that way. The design decision that made everything else simple: the edit is decided on disk, as an XML timeline and a JSX script that my builders write. The apps only import, render and export. Premiere is for review and hand tweaks, never for making the edit.
Claude never talks to Adobe directly. It calls tools with names like premiere_import_xml and ae_run_jsx, the same way it calls any MCP tool, and it gets JSON back. From its side, Premiere is just another API.
This is also why the skill from Part 2 didn't change much: edit-my-video still plans the cut from the transcript; it just has a second place to send it.
A small Node program over stdio. It knows where the apps are installed, holds the bridge config, and exposes about twenty tools: project open/save/new, import XML, import files, read a sequence's tracks and clips, read and key Motion / Opacity / Crop, export with a preset, plus the After Effects pair below.
Shell escape hatch for debugging: node scripts/call.js <tool> '<json>'. When something hangs, I can poke one tool by hand.
Premiere 2022 can't be driven from outside, but it can host a panel. So the server talks over HTTP to a tiny CEP panel that lives inside Premiere ("Social Studio Bridge", under Window → Extensions), and the panel runs ExtendScript. Localhost only, every request carries a random token written by the installer, so another local web page can't drive my timeline blindly.
One-time setup is a PowerShell script: write the token, flip the unsigned-panel flag, link the panel folder. No admin rights. The things Premiere's scripting can't do (titles, adjustment layers) are exactly the things I moved to After Effects.
After Effects will run a .jsx file against the open app from the command line. The script builds one comp per graphic from the same brand file as the HyperFrames kit, queues them, saves the project, and writes its return value to a JSON file the server reads back. Text animators, source-text keys, blur, glow, grain and image sequences all script fine on version 17.
The gotcha that cost me a day: AE 2020 has no multi-frame rendering, so it renders graphics (transparent comps), never footage. The footage stays in Premiere.
The headless renderer that ships with After Effects. It renders a saved project's queue in the background while Claude keeps working; a watcher converts the TIFF frames to ProRes 4444 per comp and deletes them as it goes, because an uncompressed 4K alpha frame is 25 MB.
Memory rule on a 16 GB laptop: one app at a time. Close the AE GUI before aerender; Premiere, AE and a HyperFrames render do not fit together.
The tool list, for the curious. Nothing exotic; the value is that every one of these is now a sentence Claude can say.
| Tool | Does |
|---|---|
adobe_info | install paths, bridge config, default export preset |
premiere_status · premiere_eval | version, open project, sequences; any ExtendScript, returned as JSON |
premiere_new_project · premiere_open_project · premiere_save | project files |
premiere_import_xml · premiere_import_files | FCP7 XML / EDL → sequences; media into a bin |
premiere_sequence_info · premiere_clip_params · premiere_keys · premiere_set_param | read tracks and clips; read and key Motion, Opacity, Crop |
premiere_export | export with an .epr preset (H.264, Match Source, High bitrate), no Media Encoder |
ae_status · ae_run_jsx | ExtendScript in After Effects, code or a file; the return value comes back |
ae_render · ae_render_status | aerender a saved project in the background; poll it |
The review loop
Here's the honest version of why Episode 1 took six rounds. It wasn't that Claude made bad cuts. It's that I was the first person to look at the render, so every obvious problem (a word hidden behind my head, a caption that lagged my voice by 300 ms, a title cut off at the edge) cost a full round trip: I watch, I write notes, Claude re-renders the whole thing, I watch again. Prompt 2 moves that first look to Claude. Here's the loop as it runs now.
- Plan the edit from the transcript. Cuts on word boundaries, scenes where my words call for them, captions chunked 2–4 words. This part existed since Part 2.
- Render in 2-second chunks. Not one file: thirty small ones, stitched. The reason comes in step 6.
- Check a frame every second against the plan. Three questions per frame: is every word readable and on screen long enough (≥ 0.5 s + 0.15 s per extra word)? Is anything off the edge? Are captions in sync with my voice?
- Fix what it finds, re-check what changed. A caption that's late gets its chunk times shifted; a title that's clipped drops one type-scale step. Then those seconds render again.
- Send me ONE preview.mp4, max 1080 px wide. Not a master, a share copy and a preview. One file I can scrub on my phone.
- My notes go back as rules. "0:12 caption late" re-renders seconds 12–14 only. And the note itself is appended to
my-styleas a rule, so the same mistake never comes back in the next edit.
What a review round looks like in practice is less glamorous than it sounds: a folder called qa/ with a strip showing the last frame before and the first frame after every cut, a sheet of the hero moments, and a render-report.json with the duration against the EDL, loudness, and any silence longer than it should be. Claude reads those before I do. By the time the preview reaches me, the things a machine can catch are already caught, and my notes are about taste. Which is the part I actually want to be doing.
What broke, and what fixed it
I promised the honest version. Driving two apps that predate MCP by years means a gotchas table, and the table is the most useful artefact of the whole episode, because every row is a thing Claude now knows not to do. The skill reads it before every Adobe session.
Gotchas, calibrated on Premiere 22.0 / After Effects 17.0
| Symptom | Fix |
|---|---|
| A call hangs or times out | A modal dialog is open. A person closes it; never send more scripts meanwhile. |
| Red "Media offline" frames in the export; AE says "Could not read from source" | An H.264 file declaring a non-square pixel aspect (a crop + scale in ffmpeg leaves one). Bake with setsar=1; the import tool now refuses anything offline. |
| A split panel shifted 360 px with a black strip at the edge | XML <center> is a fraction of the clip's width, not the frame's. Divide by the clip width. |
| AE stuck at "Adobe After Effects" with no project after launch | A startup alert nobody can see with the screen locked. Its default button is safe at startup: post Enter to that window. |
| Export has black or frozen stretches exactly where re-rendered MOVs sit, though they play fine | Premiere caches the old files' importers even across closing the project. Restart Premiere before exporting; the QA report's black- and freeze-detect catches it. |
| aerender: "Directory does not exist" | The render-queue output folder must exist. Never delete the empty per-comp folders before rendering. |
| Shape-layer motion renders 2–5 s per 4K frame | Motion blur samples: 8 per frame, adaptive limit 24 (defaults 16 / 128). |
| Fonts substituted in After Effects | Per-user fonts need an AE restart; read back textDocument.fontFamily to confirm. |
| Everything is slow | Premiere + AE + a HyperFrames render do not fit in 16 GB. One at a time; close the AE GUI before aerender. |
My favourite row is the "Media offline" one, because it's a bug three layers down (a sample-aspect-ratio flag that ffmpeg leaves on a cropped file) that showed up as red frames in a Premiere export, and the fix is one ffmpeg argument. Claude found it by reading the export, not by guessing. That's the loop working on itself.
Eyes + ears, hands, tools
That's the whole workflow. Three parts, three skills, one folder:
my-template: a brand kit, reusable scenes and the edit-my-video skill, so every edit shares the same bones. Part 2Now I can edit any video, in any style, for any platform, and the second edit is always a little better than the first because the first one's notes are rules now.
Try it yourself
The three prompts as pinned under the reel. If you don't use Adobe, skip the first: the HyperFrames template from Part 2 renders on its own, and the review loop in Prompt 2 works on any renderer.
⬇ ep2-3-adobe-mcp-review-loop.md 2 KB · the three prompts⬇ edl.example.json 2 KB · what Claude checks the render against⬇ sources.template.html 4 KB · the citations page every reel ships withThree warnings from someone who's been through it:
- Say yes before anything installs. The prompt asks Claude to show the repo and last-update date of any server it finds, and to wait. Keep that line. A connector that can drive your editing software is worth a minute of reading.
- Expect manual clicks on old versions. A first-run alert, a panel to open once, a Windows Security prompt. The prompt asks for the list up front; read it.
- One preview, every time. If Claude ever hands you three files, something in the skill drifted. The whole point is one file per round.
What I learned
- The connector wasn't the hard part. Twenty years of ExtendScript meant Claude had plenty to work with. The review loop was the hard part, and the valuable one.
- Move the first look. Every check a machine can run before I watch is a round of notes I don't have to write. Six rounds became one, and the one is about taste.
- Chunked renders change the economics of notes. "0:12 caption late" costing two seconds of render instead of a full film is the difference between fixing it and letting it slide.
- Notes that become rules compound. This is the same lesson as Part 1, from the other side. The style file writes itself from reviews; the reviews get shorter because of the style file.
That's the series. The next one on the channel is MCP, explained properly, which I've already written up long-form here: The Why, The What and The How. And the 60-second versions of all of this are on Instagram, prompts pinned.

