Skip to content

Syntax Reference

This section documents the complete Compdown syntax — every property, type, and option available. Compdown syntax is YAML-based, but you can think of it as plain text instructions for After Effects.

Document structure

A Compdown document has five optional top-level keys:

yaml
_timeline:     # Add, update, or remove layers in the active composition timeline
_selected:     # Update or remove currently selected layers
folders:       # Project folder structure
files:         # Imported footage and assets
compositions:  # Compositions with layers

At least one must be present.

Targets first, then actions

Recommended reading order:

  1. Targets — where actions run (_timeline, _selected)
  2. Actions — what to do in that target (add, set, remove)
  3. Inheritance — how _id and _extends reuse base objects

Creation order

When Compdown processes a document, it creates items in this order:

  1. Folders — Project panel folders
  2. Files — Imported footage (placed in folders)
  3. Compositions — Comps (placed in folders)
  4. Layers — Inside each composition

This order matters because:

  • Files need folders to exist first
  • Compositions need folders to exist first
  • Layers can reference files (via file:) or other compositions (via composition:)

Parsing notes

Compdown handles some YAML edge cases automatically:

Null type layers

yaml
type: null  # Works as-is (normally YAML parses this as null value)

All-digit colors

yaml
color: 000000  # Works as-is (normally YAML parses this as number)

You don't need extra quotes around these values.

Tab indentation

Compdown normalizes leading tab indentation to spaces before parsing.

This means content like this still works:

yaml
compositions:
	- name: Main
	  layers:
	    - name: Title
	      type: text
	      text: Hello

Forcing string type

Use quotes when a value should stay a string even if it looks like another data type:

yaml
text: "123"     # not a number
id: "001"       # preserves leading zeros
text: "true"    # not a boolean
text: "null"    # not a null value

Schema sections

  • Targets — Destination blocks and default behavior
  • Folders — Project folder structure
  • Files — Importing footage and assets
  • Compositions — Comp settings and structure
  • Layers — All layer types and properties
  • Transform — Position, scale, rotation, keyframes
  • Effects — Applying and animating effects
  • Shapes — Parametric shape layers
  • Essential Graphics — MOGRT properties
  • Markers — Composition markers
  • Actions — Add, update, and remove behavior in _timeline
  • Inheritance — Reusable templates with _id and _extends

Released under the MIT License.