Skip to main content

A macOS CLI tool for After Effects project scaffolding

Project description

Aeset

aeset brand

Every video editor or motion designer wastes 10–20 minutes at the start of every project doing the exact same thing: creating folders by hand, naming them consistently, opening After Effects, and setting up a new composition with the right resolution, framerate, and duration. It is not creative work. It is repetitive work. Multiply it by 50 projects a year and you have lost a full work week to folder creation and blank composition setup.

Aeset is a tool built to solve this for After Effects on macOS. It takes the "scaffolding" logic used by software developers and applies it to the motion design world.

Installation and Requirements

Installation

Aeset can be installed via pip:

pip install aeset

Requirements

  • macOS: AppleScript and the 'open' command are macOS-specific.
  • Adobe After Effects
  • Python 3.11+

[!NOTE] The tool is currently configured to target the 2025 version of After Effects, it might be buggy for different versions.

Usage

Run the command

aeset

and then you're ready to scaffold your project.

1. What The Tool Does

The user opens their terminal, navigates to where they want the project to live, and runs:

aeset

The tool then asks a series of interactive questions:

  • Project name (e.g., Nike_Ident_2026)
  • Project type (Commercial, Personal, etc.)
  • Resolution (Full HD, 4K, Vertical, etc.)
  • Frame rate (24, 25, 30, 60 fps)
  • Duration in seconds
  • Color space (sRGB, Rec. 709, ACES)

After those answers, the tool:

  1. Creates a standardized folder tree inside a new project directory.
  2. Copies a blank .aep template file into the project folder.
  3. Generates a small ExtendScript .jsx file containing the user's specs.
  4. Opens After Effects with the project file via a macOS system call.
  5. Fires an AppleScript command that tells After Effects to run the .jsx, which creates the composition and internal project bins (folders) automatically.

2. Folder Structure Generated

Aeset generates a directory layout that follows conventions used by professional motion studios. The core principle is: never mix source files with outputs.

On Disk:

<ProjectName>/
├── project/
│   ├── <ProjectName>.aep       (copy of blank .aep template)
│   └── setup.jsx               (temporary setup script)
├── footage/
│   ├── video/                  (raw video clips)
│   ├── audio/                  (music, SFX, voiceover)
│   └── renders/                (outputs from C4D, Blender, etc.)
├── assets/
│   ├── images/                 (static graphics, PNGs, PSDs, AI files)
│   ├── fonts/                  (local fonts scoped to this project)
│   └── documents/              (briefs, scripts, reference PDFs)
├── exports/
│   ├── drafts/                 (work-in-progress renders)
│   └── final/                  (delivered, approved renders)
└── README.md                   (auto-generated project notes)

Inside After Effects:

The tool also creates corresponding bins in the Project Panel to keep your workspace clean:

  • _COMPS (containing your main composition)
  • _FOOTAGE
  • _ASSETS
  • _AUDIO

3. The Mechanism

The .aep file

An .aep file is a binary format that cannot be easily generated by code. Because of this, Aeset ships with a hand-crafted blank .aep template. Every time the tool runs, it copies this template and renames it.

The .jsx file

The tool generates a plain text ExtendScript file at runtime. This script has full programmatic access to After Effects. It uses the specs you provided in the terminal to build your composition and organize your project panel.

The AppleScript Trigger

The .jsx is triggered explicitly after After Effects opens using a macOS AppleScript command (DoScript). This bridges the gap between the Python-based CLI and the Adobe environment.

4. Installation and Requirements

Installation

Aeset can be installed via pip:

pip install aeset

Requirements

  • macOS: AppleScript and the 'open' command are macOS-specific.
  • Adobe After Effects 2025: The tool is currently configured to target the 2025 version.
  • Python 3.11+

5. Constraints and Assumptions

  • No Adobe credentials required: The tool uses only local scripting.
  • After Effects must already be installed: The tool does not manage the AE installation itself.
  • Local execution: All files are generated and stored locally on your machine.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aeset-0.1.1.tar.gz (9.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aeset-0.1.1-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

File details

Details for the file aeset-0.1.1.tar.gz.

File metadata

  • Download URL: aeset-0.1.1.tar.gz
  • Upload date:
  • Size: 9.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for aeset-0.1.1.tar.gz
Algorithm Hash digest
SHA256 d786657bde13670364f16037d02bea28c2a0d5dc2e22123c9b5c8aa98d6cccd2
MD5 5a749ea49bdbf7311256f0081a7cf7cc
BLAKE2b-256 a2724fcf720c2398d6009a7e3eddbc732d9614f1d12cefd796507934112e7998

See more details on using hashes here.

Provenance

The following attestation bundles were made for aeset-0.1.1.tar.gz:

Publisher: publish.yml on A7med7x7/Aeset

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file aeset-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: aeset-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 8.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for aeset-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 dcd1b924a7e0f11fb6a62a9ad817d80e2fb1ad182fb3cd8bdd2382259692daf1
MD5 a443bbb34a7f55a7b9b74d0abe1d7287
BLAKE2b-256 81bf8d3fdf0bb359fb21b4d87e0c2b563035299fd54abd5e40b5d1e30b587b72

See more details on using hashes here.

Provenance

The following attestation bundles were made for aeset-0.1.1-py3-none-any.whl:

Publisher: publish.yml on A7med7x7/Aeset

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page