A Codex skill for building, recreating, and rendering editable Adobe After
Effects projects from code. It replaces slow manual AE UI work with a
repeatable ExtendScript/JSX workflow, then renders and verifies the result
with aerender and FFmpeg.
Built and tested for Windows with After Effects 2023 and 2025, and designed to work with other installed After Effects releases.
- Code-first AE workflow - Generate ASCII-safe
.jsxscripts that create native AE text, shape, and solid layers. - Faithful reference recreation - Rebuild an animation from native layers instead of importing the reference video.
- Editable deliverables - Keep text, badges, panels, icon strokes, price variants, and animated signs as separate editable layers.
- Multi-version support - Use any installed After Effects release by
passing
-Version, or pin executables with explicit paths. - Compatibility-tested pipeline - Defaults to AE 2023 for building and AE 2025 for rendering.
- Active session safety - Refuse to launch AE or aerender when another session is already running.
- Verified output - Check ffprobe metadata, the aerender log, and extracted frames before claiming success.
- Inspect the reference with FFmpeg frames and identify the independent visual elements and timing.
- Check for active
AfterFXoraerenderprocesses; never terminate a user session or overwrite its project. - Generate an ASCII-only
.jsxthat creates native AE layers, using\uXXXXescapes for CJK strings. - Stage the JSX into
C:\ae_scriptswithscripts/invoke-ae-jsx.ps1; AE command-line scripting is unreliable when the script path contains spaces. - Build the
.aepwith the selected builder version (default AE 2023), then render it with the selected renderer version (default AE 2025) viascripts/render-ae-project.ps1. - Validate the render with
ffprobe, the aerender log, and extracted frames.
- Windows
- Adobe After Effects (any modern installed version; defaults are 2023 for building and 2025 for rendering)
- FFmpeg and ffprobe
- Codex with local skills support
python "<path-to-codex>\skills\.system\skill-installer\scripts\install-skill-from-github.py" --repo zlwrlw66640-netizen/ae-code-control --path ae-code-controlCopy the ae-code-control folder into your Codex skills directory:
Copy-Item -Path ".\ae-code-control" -Destination "$env:USERPROFILE\.codex\skills\ae-code-control" -RecurseRestart Codex, then trigger the skill with a prompt such as:
Use $ae-code-control to build an editable After Effects animation from a reference.
ae-code-control/
|-- README.md
`-- ae-code-control/
|-- SKILL.md
|-- agents/openai.yaml
|-- config/ae-paths.example.json
|-- references/ae-windows-notes.md
`-- scripts/
|-- ae-common.ps1
|-- invoke-ae-jsx.ps1
`-- render-ae-project.ps1
The scripts resolve executables in this order:
- Explicit
-AfterFXPath/-AerenderPath AE_CODE_CONTROL_AFTERFX_<VERSION>/AE_CODE_CONTROL_AERENDER_<VERSION>environment variablesconfig/ae-paths.json- Auto-discovery under common install roots
Copy config/ae-paths.example.json to config/ae-paths.json when a machine
needs pinned paths:
Copy-Item -Path ".\ae-code-control\config\ae-paths.example.json" -Destination ".\ae-code-control\config\ae-paths.json"Examples:
.\ae-code-control\scripts\invoke-ae-jsx.ps1 .\script.jsx -Version 2024
.\ae-code-control\scripts\render-ae-project.ps1 .\project.aep -Version 2026The original machine's install paths were:
F:\Adobe After Effects 2023 v23.1.0.83\Adobe After Effects 2023\Support Files\AfterFX.exeF:\Adobe After Effects 2025 v25.1\Adobe After Effects 2025\Support Files\aerender.exeC:\ae_scriptsstaging directory
Update these paths in the config file or environment variables before using the skill on another machine.
- AE launches but the script does not run - Stage the script under
C:\ae_scriptsand retry with an ASCII, no-space path. - Script error - Read the actual AE error before editing. Common fixes are
no-argument
app.beginSuppressDialogs()and avoiding invalidated shape-property references. - aerender returns a nonzero exit code - This can be inconclusive for converted older projects. Inspect the log for a completed composition and verify the actual output file.
- aerender is idle without log progress - Stop only the renderer you
started, preserve the
.aep, and rerun with the selected renderer version.