Skip to main content
Glama

KYNEM

Code-defined motion. Editable After Effects layers.

KYNEM connects Codex to native After Effects on your Mac. Inspect a project, batch a scoped edit, or revise a 2D scene description. Keep the text, shapes and keyframes editable in AE; work on a copy of your saved project.

Prompt → inspect → typed edit → native AE → review.

Demo

Watch the KYNEM native motion demo

Watch/download the film · What was verified

An agent authored and revised native AE graphics with human art direction. The command cards and timeline are illustrative; this retimed promotional animation is not a live agent execution recording.

Related MCP server: fnf-local-pluging-bridge-mcp

What it does

  • Scoped edits: inspect relevant targets, batch typed changes, checkpoint and read the results back.

  • Revisable scenes: stable element IDs, explicit frame timing and property diffs support bounded 2D updates; conflict checks detect manual changes before an update can overwrite them.

  • Native output: text, shapes, parenting, keyframes and supported effects stay editable in AE.

  • Contextual review: comments bind to a video version, frame/range or storyboard revision. In a supported Codex browser, open the feedback in the native composer and submit it to the current chat.

Storyboard and review tools are experimental supporting workflows. Native annotation availability depends on the host browser; ordinary browsers retain the local inbox/export. Opening the composer does not confirm delivery or start work. Scenes · Review · Storyboard

Best fits: retime or restyle existing compositions, make text/layout variants, and build small UI/title animations.

Prerequisites

Recorded native checks cover one Mac with After Effects 2026 (26.5). Other versions, hosts and fresh-machine installation need separate validation.

  • Codex desktop or a configured Codex CLI; After Effects 2026 installed.

  • AE Preferences → Scripting & Expressions → Allow Scripts to Write Files and Access Network enabled.

  • A saved .aep and its local footage, fonts and required third-party plugins.

  • Node.js 24+ for the source route; the installer can download a private runtime.

macOS may request launcher and AE automation permissions. This is an experimental alpha; inspect the copied project and actual output before delivery.

Quickstart

Mac installer

Download KYNEM alpha.7 for Mac. Extract the whole ZIP and double-click Install KYNEM.command. It includes the compiled bridge and dependencies; downloading a missing Node runtime requires internet.

Open a new Codex chat, select KYNEM with @ or invoke $kynem, and give it your saved project path plus one specific edit. The skill starts an isolated worker on a copied project. Italian installation guide.

From source

Keep the checkout in a stable folder. From its root:

npm ci --ignore-scripts
npm run build
npm run connect:codex
npm run demo:start
npm run demo:status

Use the copied project path and prompt printed by the named demo session. Finish with npm run demo:stop. Start Demo.command and Stop Demo.command provide the same route. Setup and diagnostics.

Reproduce a bounded task

The MOVE fixture describes a title and underline. With KYNEM active and a disposable saved project supplied, ask:

On a managed copy of my saved project, build examples/readme-move.json
using the native scene workflow. Confirm the copy and installed font first.
Create native text and shape layers; preserve unrelated compositions.
Read the created layers and keyframes back, save the copy, and inspect
frames at 0.5 and 2 seconds. Report unsupported steps honestly.

This fixture is checked offline; native acceptance of its exact output remains to verify. It omits the promotional UI, transitions and glow. For a recorded existing-project edit, use the Warm Glow Exposure retime.

Limits

Readback verifies values; rendered frames verify appearance at those times; playback is needed to assess motion. Creative direction and acceptance stay with the user. Schematic previews and generated concepts do not establish native AE output.

The declarative scene schema covers bounded 2D graphics. Effects, masks, footage and other content may require separate typed operations discovered through the loaded catalog. Native nonlinear scene motion uses sampled keys with documented integer-frame limits. No performance benchmark or broad compatibility claim is made. Validation and boundaries.

After a timeout, inspect status and reuse the same request/job identity: an edit may already have run. Partial changes have recovery checkpoints, not automatic rollback. Keep the original project and managed-copy metadata.

Architecture and data

A Codex plugin exposes a local MCP server, which sends typed operations to the named AE worker through the local bridge. Arbitrary evaluation is disabled in the documented workflow. Scene baselines support property diffs and conflict checks; preserve them with managed projects.

Copied projects, session files, checkpoints and review receipts remain local. Codex handles the conversation under your service settings; local AE execution does not make the conversation offline. Native feedback handoff uses the official Browser Annotation API and requires user submission. Agent workflow · Tool catalog · Uninstall.

Contributing and license

Report a reproducible issue with your Mac/AE version, prompt and observed result. Redact private paths and client details. Development checks.

MIT licensed. Derived from kumoproductions/mcp-aftereffects; original notices are retained in LICENSE and PROVENANCE.md. Independent project; no Adobe, OpenAI or upstream endorsement.

Available Tools

16 tools
ae_catalogOperation catalogA
Read-only

Discover available atomic operations for ae_do. Without args: all categories with their operation names. With a category: detailed params per operation. Use detail: summary to browse names and descriptions without params, or operations: [exact names] to fetch only the schemas needed. Only operations this server will execute are listed.

Inputs: detail, category, operations.

ae_comp_infoComp infoA
Read-only

Detailed comp info: size, fps, duration, work area, motion blur, layer summaries. Pass a comp name or item id — or an ARRAY of them to fetch several comps in one call.

Inputs: nameOrId (required), instance.

ae_contextSession contextA
Read-only

Ambient context: project state, active comp, selected layers, and resident readiness. Compact output is the default; request detail:'full' for the item list, AE.* helpers, ES3 rules, tips, and undo contract. Call at session start; then rely on ae_do response context.

Inputs: detail, instance, residentOnly.

ae_doExecute operationA
Destructive

Execute an atomic operation by name (from ae_catalog). Arguments are validated against the operation's declared parameters before anything reaches AE. Have more than one operation to run? Wrap them in ONE batch.run instead of several ae_do calls — read/verify steps (comp.info, layer.info, render.frame) can ride in the same batch. Every call is automatically wrapped in ONE undo group: a single Ctrl+Z (or project.undo) reverts the entire call, and a batch.run counts as one call. Never call app.beginUndoGroup/endUndoGroup in eval.run code — the wrapper already did. The exception is undo/redo itself (project.undo, command.execute id 16/2035): those run outside the group and cannot ride inside a batch.run. Response includes ambient context (active comp, selected layers, project state) at zero extra round trips. Example: ae_do({ operation: 'keyframe.add', args: { comp: 'Main', layer: 1, property: ['Transform','Position'], time: 2, value: [960,540] } })

Inputs: operation (required), args, instance, timeoutMs, +1 more.

ae_editEdit a managed After Effects project copyA
Destructive

Apply up to 12 typed, registered edits to the active managed .aep copy in one AE call. A UUID requestId prevents repeat execution after a retry or timeout. The call captures pre-edit values, saves a checkpoint, edits, reads back values and saves the project. Use action=status with the same requestId to inspect a delayed receipt. This does not render frames.

Inputs: request (required), instance.

ae_inspect_targetsInspect targetsA
Read-only

Inspect up to 16 explicit layer or property targets in one read. Returns compact current values, key counts, and reusable opaque references. Requires a numeric composition ID and 1-based layer indices; property paths use canonical match names. Repeated sibling match names cannot receive reusable property references.

Inputs: compId (required), targets (required), instance.

ae_layer_infoLayer infoA
Read-only

Full layer info: transform, effects, masks, text, shape contents, keyframes (incl. interpolation names and bezier ease speed/influence). layerIndex accepts one index, an ARRAY of indices, or 'all' — auditing a whole comp is one call. detail:'summary' drops properties still at their default value (unkeyed, no expression) — start there for audits; the full tree is often 100KB+ per comp. Set includeProperties=false to skip the property tree walk entirely.

Inputs: layerIndex (required), compNameOrId (required), detail, instance, +1 more.

ae_motion_planPlan motion revealsA
Read-only

Offline motion planner for typography, panels, icons, and bars. Prepare pivots, reread positions, then request reveal ops. Audit phase checks camera samples without proposing edits. It never contacts After Effects or applies edits. Supply real readback and render before/after.

Inputs: spec (required).

ae_project_export_jsonExport project JSONA

Serialize the entire project to JSON (folders, comps, layers, keyframes, effects, shapes, markers, time remap, solids, file refs). Write to outPath or return inline.

Inputs: pretty, outPath, instance.

ae_project_import_jsonImport project JSONA
Destructive

Rebuild the project from JSON (produced by ae_project_export_json). Supports clearFirst, dryRun (validate-only), skipValidation.

Inputs: json, dryRun, inPath, instance, +2 more.

ae_project_infoProject infoA
Read-only

Project-level info: file path, dirty flag, all items with type/summary, active item. Start here.

Inputs: instance.

ae_render_frameRender frameA

Render one or more frames to PNG. Use to visually verify edits. The agent's 'eyes' — pair with mutations for a visual feedback loop. Experimental preview requests half or quarter resolution for up to 6 frames; inspect returned dimensions and warnings. Headless and deterministic. Pass time for one frame, or times for several in ONE call (motion checks): files land at _.png and are listed in frames. contactSheet tiles every frame into one labelled PNG (_sheet.png) so a motion check is one image; analyze measures each capture (uniform edge bands = black bars / transparent margins, content bounds, coverage) so off-frame elements and letterboxing are caught numerically. In color-managed projects (workingSpace != None) the capture applies AE's own display transform via a transient OCIO Display Transform adjustment layer, and the PNG comes back viewer-accurate and sRGB-tagged. Where that layer cannot be used — read-only mode, an AE without the OCIO effect, or a failed capture calibration — the result falls back to a pure-math ACES conversion or to raw values with an explicit colorWarning; check colorPipeline / colorWarning on the response.

Inputs: outPath (required), compNameOrId (required), time, times, +6 more.

ae_save_projectSave projectB
Destructive

Save the project. Pass path for Save As.

Inputs: path, instance.

ae_version_infoVersion infoA
Read-only

AE version, build, capabilities (saveFrameToPng, app.effects, Socket). Call at session start to know what APIs are available.

Inputs: instance.

ae_workflowPrepare, apply, or inspect an AE workflowA
Destructive

Prepare a typed retime or text/logo variants recipe against an existing active managed .aep copy and persist a guarded job. Apply only after reviewing the job, or read its status. Apply edits only that copy. No production render is started automatically.

Inputs: request (required), instance.

ae_workflow_planPlan a safe multi-property retimeA
Read-only

Offline recipe for retiming several inspected property tracks in one AE batch. It validates whole-frame timing and returns typed operations plus a readback plan. It never contacts After Effects or applies edits.

Inputs: spec (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.8/5.0

    Scored across 16 tools

    Disambiguation3/5

    Several tool pairs overlap: ae_do vs ae_edit (both perform batched mutations), ae_motion_plan/ae_workflow_plan/ae_workflow (offline planning and retiming recipes), and ae_layer_info vs ae_inspect_targets (reading layer/property data). The detailed descriptions help differentiate them, but an agent must read carefully to avoid misselection.

    Naming Consistency4/5

    All tools use a consistent ae_ snake_case prefix and are highly readable, giving a predictable pattern. However, the pattern is not strictly verb_noun throughout: ae_catalog, ae_context, and ae_do are noun-only or verb-only deviations.

    Tool Count4/5

    At 16 tools, the set sits slightly above the ideal 3-15 range, but each tool covers a distinct phase (version/context, planning, inspection, mutation, rendering, export/import) so the surface feels purposeful rather than bloated. For a rich After Effects automation domain, this count is reasonable.

    Completeness4/5

    The surface covers version discovery, planning, project/comp/layer inspection, atomic and batched edits, save, render-frame capture, and full JSON export/import. Gaps remain for full render-queue output and explicit undo/redo, but these are reachable through ae_do and ae_catalog, so there are no severe dead ends.

    Maintenance

    ActivitySlowing
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      C
      maintenance
      Lets Claude Code or any MCP client drive an open Adobe After Effects instance to inspect projects and comps, build and animate layers with ExtendScript, preview frames as images, import footage, and render comps with live progress reporting. All changes land as single undoable steps, and communication stays local through a token-protected bridge.
      152 npm
      MIT