Repository navigation
Releases
v0.14.0
Stable py-aep workflow
Version 0.14.0 promotes the offline-first After Effects workflow to the stable channel.
- Create, inspect and edit AEP projects with pinned py-aep 0.19.0, then verify runtime-dependent results in After Effects.
- Includes upstream fixes for keyframe easing persistence and non-24fps animation timebases.
- Adds asset-free animation reproduction, independent key verification, and a guarded native fallback for exceptional unsupported cases.
- Fixes empty effects/masks compatibility, portable feedback references, and clean-checkout release tests.
- Publication now runs both Python and Node tests.
Migration
The installer replaces the older declarative and mutation skills with aftereffects-py-aep. The live CLI remains available for focused runtime checks. Existing project files and task scripts are not rewritten automatically. To use the older workflow, explicitly install ae-agent-skills@0.13.0; npm latest now points to the py-aep workflow.
Validation
- Python: 150 passed, no xfails, including a clean tracked-file checkout.
- Node: 76 passed.
- AE 2026: 25 and 30000/1001 fps; 9 keys each across Opacity, Position and Scale; initial open plus native save/reopen: 36 checks passed.
- Skill validation, isolated package installation, release preflight and signed ZXP verification passed.
Install: npx --yes ae-agent-skills@latest install --agent codex
v0.14.0-pyaep.5
Highlights
- Upgrade the py-aep preview workflow to
py-aep 0.15.1. - Restore durable
FootageItem.namerenames for solid and placeholder footage after save and reparse. - Add a regression test for forticheprod/py-aep#200 and update the preview guidance to remove the former workaround.
Compatibility
- Preview channel: npm dist-tag
pyaep. - Python 3.10 or newer.
- After Effects file-level edits continue to require a save-to-new-path and reparse validation pass.
Validation
- Python: 121 tests passed.
- Node: 76 tests passed.
- py-aep skill validation passed.
- npm package dry run and repository diff checks passed.
- Versioned ZXP signature verified successfully.
v0.14.0-pyaep.4
Highlights
- Adds a strict
ae-agent-edl/v1export/apply workflow for repeated timing and static reframing edits on simple file-backed layers. - Adds an ffmpeg-based offline editorial proxy with sample frames, contact sheets, a silent H.264 proxy, and a validation manifest.
- Makes
inspect_aep.pycompact by default and adds focused timing, source, transform, comp-ID, and file-output options. - Documents project-panel cleanup, scratch output naming, py-aep API edge cases, and high-risk copy/duplicate boundaries.
Compatibility and validation boundary
- Preview channel for
py-aep 0.15.0; Python package version0.14.0.dev4, CEP version0.14.0.pyaep-4. - EDL v1 updates existing layer IDs only and intentionally rejects parents, mattes, effects, masks, expressions, animated transforms, time remap, 3D layers, rotation, non-file sources, and non-positive stretch.
- An offline editorial pass validates supported source selection, timing, and crop geometry. It is not an After Effects visual pass.
Validation
- Python: 120 tests passed.
- Node: 76 tests passed.
- Skill validator passed.
- npm package dry-run passed with 19 files.
- Signed ZXP verification passed.
- Minimal parented-comp duplicate fixture rendered identically in After Effects 26.3x87 with the original retained and removed.
v0.14.0-pyaep.2
py-aep preview 2
This prerelease incorporates the first production-project feedback from the py-aep workflow.
Highlights
- Adds
ae-cli purgeto clear all After Effects RAM and disk caches before visual validation. - Requires a successful cache purge before claiming a visual pass for offline-derived projects.
- Adds
inspect_aep.py --brieffor low-context layer name, timing, and source inventories. - Fixes
bounds --timeso composition-time-dependent shape transforms are evaluated at the requested time and the prior time is restored. - Adds
--compas an explicit alias for--comp-name. - Shows the exact preview version in the installed skill and feedback template.
- Documents py-aep API discovery notes and separates upstream contribution candidates.
Compatibility and validation
- Uses
py-aep0.15.0. ae-cli purgeusesPurgeTarget.ALL_CACHES; After Effects 24.3 or newer clears RAM and disk caches.- Python: 113 tests passed.
- Node/CEP: 76 tests passed.
- Skill validation passed.
- npm package: 13 files, approximately 12.2 kB; generated Python cache files are excluded.
Install or update on a test machine
npx --yes ae-agent-skills@pyaep install --agent codexThe npm latest channel remains unchanged.
v0.14.0-pyaep.1
py-aep preview 1
This prerelease is an opt-in field test of a smaller, file-first After Effects workflow.
What changed
- Uses
py-aep0.15.0 as the primary parser and editor for.aepfiles. - Installs one focused
aftereffects-py-aepskill instead of the stable declarative and CLI skills. - Keeps the AE bridge only for runtime-only observation such as snapshots, expression errors, visual bounds, fonts, and health checks.
- Includes a compact project inventory helper and a Japanese feedback template.
- Pins Python and ZXP installation to this immutable release tag.
Install on a test machine
npx --yes ae-agent-skills@pyaep install --agent codexThis preview replaces the installed stable After Effects skills and CEP extension on that machine. Use a dedicated test endpoint. The npm latest channel is unchanged.
What to evaluate
- Agent context/token use and elapsed time on real editing jobs
- Fidelity of parse/edit/save/reparse workflows
- Operations that still require After Effects or the bridge
- Failure recovery and confidence compared with the stable workflow
Record observations in ~/ae-agent-skills-preview/py-aep-preview-feedback.ja.md.
v0.13.0
Highlights
- Added project identity reporting and
apply-scene --expect-projectguards to prevent edits to the wrong After Effects project. - Added verified transaction rollback for failed scene applies, including CLI rollback diagnostics and conservative Undo handling.
- Added optional explicit composition selectors to mutation commands, with active-composition restoration;
add-comp-layernow supports explicit--target-comp-id/--target-comp-name. - Improved inspection with compact layer output, property filtering and exact paths, opt-in expression/disabled-property data, and composition-aware text-style reads.
- Expanded declarative Range Selector coverage, relative/environment asset paths, apply action reporting, and empty-keyframe convergence.
Compatibility notes
- Existing active-composition mutation behavior remains available when no composition selector is supplied.
- Rollback restores scene content, but After Effects may leave a previously clean project marked dirty; the CLI reports this and does not auto-save.
- Core behavior and rollback were verified with After Effects 2026 (26.3), Japanese locale.
Validation
- Python: 105 tests passed.
- Node: 78 tests passed.
- Both bundled skills passed validation.
- npm package contents passed preflight packaging checks.
- Signed ZXP signature verified successfully.
- ZXP SHA-256:
1a10b794700e107b2262596a521ae052c1d3c2eb6555033840c6b023ef8cc4d5.
v0.12.1
Highlights
- Streamlines Claude Code installation by relying on the canonical skills, which are directly invocable as slash commands, and removes the redundant legacy command templates.
- Reduces the npm package from 57 files / 508 KB unpacked to 19 files / 100.3 KB unpacked by excluding extension sources already delivered in the signed ZXP.
- Adds the MIT license and third-party notices for Adobe CEP
CSInterface.jsand public-domain JSON-jsjson2.js. - Includes the third-party notice in the signed extension payload.
Compatibility notes
- No After Effects editing, CLI, schema, or scene behavior changes are included.
- Existing Claude Code skill invocations such as
/aftereffects-declarativeand/aftereffects-clicontinue to work. - Previously installed files under
~/.claude/commands/may remain, but the same-named skills take precedence.
Validation
- Python: 94 tests passed
- Node.js: 53 tests passed
- Both bundled skills passed the skill validator
- npm package: 19 files, 27.7 KB compressed, 100.3 KB unpacked
- Signed
ae-agent-skill-0.12.1.zxpverification completed successfully before tag and Release creation
v0.12.0
Highlights
- Adds declarative text animators with Range Selector controls, Position, Scale, Opacity, Rotation, keyframe interpolation, and temporal ease.
- Adds character-range font, size, fill, stroke, and tracking styles through
textStyleRangeson After Effects 24.3 or newer. - Adds
visual-centerfor moving anchors to visual-bounds centers while preserving composition-space appearance. - Adds
examples/gen_telop.py, a higher-level DSL example that generates repeatable Japanese telop scenes. - Fixes After Effects hidden text-animator placeholders by explicitly activating properties and resolving invalidated property references.
Compatibility notes
- Restart the After Effects panel after updating so the new text and layout bridge handlers are loaded.
- Character-range styles require After Effects 24.3 or newer.
- The telop generator defaults to the macOS Japanese-capable PostScript font
HiraginoSans-W6; use--fontwith another installed Japanese font when needed.
Validation
- Python: 94 tests passed
- Node.js: 53 tests passed
- Both bundled skills passed the skill validator
npm pack --dry-runcompleted successfully- After Effects field tests passed for all four animator properties, selector keyframes/ease, range-style apply/clear, animator upsert, visual-center bounds preservation, generated telop apply/reapply, and zero expression errors
- Signed ZXP verification completed successfully before tag and Release creation
v0.11.0
Highlights
- Adds explicit composition selectors to
layers,expression-errors,properties, and the newboundscommand so agents can inspect non-active comps without changing the viewer. - Adds keyframe inspection, including time, value, interpolation, and temporal ease, plus reliable
isNullidentification. - Adds composition-space visual bounds for text, shape, footage, and precomp layers, including supported 2D parent transforms.
- Adds
snapshotfor full-size or scaled PNG output at an arbitrary comp time, with atomic finalization, no-overwrite protection, and cleanup of partial files and temporary comps. - Fixes declarative writes to non-active comps by temporarily activating the target during legacy mutations and restoring the previous active comp afterward.
- Expands CLI and skill documentation, field-feedback tracking, and automated coverage.
Compatibility notes
- This beta release includes the previously unreleased v0.10 inspection work together with v0.11 visual validation.
- Restart the After Effects panel after updating so the new snapshot bridge handler is loaded.
- Scaled snapshots use a temporary wrapper comp that is removed after output. Its effect on Project dirty state and Undo history has not been isolated through the current API.
Validation
- Python: 90 tests passed
- Node.js: 46 tests passed
- Both bundled skills passed the official skill validator
npm pack --dry-runcompleted successfully- After Effects field tests passed for comp-layer upsert and source replacement, composition setting convergence, keyframe replace/merge/clear, cross-comp inspection, visual bounds, and 1080x1920 / 540x960 snapshot output
v0.9.0
Highlights
- Secures the local After Effects bridge with a per-session authentication token, loopback host validation, and browser-origin rejection.
- Adds existing compositions as layers through
add-comp-layerand declarativetype: "comp"scene assets. - Applies declared composition width, height, pixel aspect, frame rate, and duration to existing compositions.
- Makes animation keyframes declarative by default:
keyframeMode: "replace"replaces the complete key set, while explicit"merge"preserves undeclared keys. - Expands scene validation, CLI documentation, examples, and automated coverage.
Compatibility notes
- This is a beta release and intentionally changes the default animation keyframe behavior from merge to replace.
- The CLI now requires the bridge token created when the updated After Effects panel starts. Restart the panel after updating the extension.
Validation
- Python: 85 tests passed
- Node.js: 29 tests passed
- Both bundled skills passed the official skill validator
- Signed ZXP signature verified successfully