Render After Effects projects, inspect what happened, and keep work moving from your terminal.
Nexrender CLI is made for people who like a good command line and coding agents that need a safe, predictable way to operate Nexrender. Upload a template, start a render, follow it to completion, or figure out why it failed.
A render can be this simple:
nexrender job submit --file launch-video.json --wait
And a failed render does not need to become an afternoon of tab hunting:
nexrender job diagnose JOB_ID
macOS, Linux, and WSL:
curl -fsSL https://raw.githubusercontent.com/nexrender/nexrender-cli/main/scripts/install.sh | shWindows PowerShell:
irm https://raw.githubusercontent.com/nexrender/nexrender-cli/main/scripts/install.ps1 | iex
Or install it with Go:
go install github.com/nexrender/nexrender-cli/cmd/nexrender@latest
Run the installer for your platform again. It replaces the current binary with the latest release and keeps your profiles and credentials. In a terminal it then runs nexrender setup, which also refreshes the agent skills. Without a terminal, for example in CI, it runs nexrender skill update, which refreshes only the skills the CLI installed earlier.
For a binary-only update on macOS, Linux, or WSL:
curl -fsSL https://raw.githubusercontent.com/nexrender/nexrender-cli/main/scripts/install.sh | NEXRENDER_SKIP_SETUP=1 shIf you installed with Go:
go install github.com/nexrender/nexrender-cli/cmd/nexrender@latest
Run:
nexrender setup
Setup asks for your Nexrender API key if none is saved yet, checks it, and saves it in your system keyring when possible. If the saved key no longer works, setup asks for a new one. It then installs the agent skill for the coding agents it finds. Run it again to install the skill for a new agent. To switch to a different API key, run nexrender auth login.
For CI and sandboxed agents that cannot access your system keyring, expose the API token as NEXRENDER_API_KEY:
export NEXRENDER_API_KEY="..." nexrender auth status
Have more than one Nexrender team or server? Give each one a profile:
nexrender profile add customer-a nexrender profile use customer-a nexrender --profile customer-a job list
See what is rendering:
nexrender job list nexrender job show JOB_ID nexrender job logs JOB_ID
Check a job before spending render time, then send it off:
nexrender job submit --file job.json --dry-run nexrender job submit --file job.json --wait
--dry-run checks the payload locally. The API runs its own checks when you submit, so it can still refuse a payload that passed.
Export a Lottie animation instead of a video by setting settings.type to "lottie" and passing Bodymovin's settings in settings.lottie (see Lottie export). The output is a zip of a lottie/ folder.
Bring in a new After Effects template and learn what is inside it:
nexrender template upload product-video.aep --name "Product video"
nexrender template compositions TEMPLATE_ID
nexrender template layers TEMPLATE_IDDownload the project into the current directory, choose its filename, or ask for the temporary URL:
nexrender template download TEMPLATE_ID nexrender template download TEMPLATE_ID --output product-video.aep nexrender template download TEMPLATE_ID --url
Work with a whole batch:
nexrender batch submit --file campaign.json --dry-run
nexrender batch submit --file campaign.json
nexrender batch wait BATCH_IDTo make a batch safe to resubmit, give it a batchId (a ULID you choose) and, optionally, each job a unique batchItemId. Submitting the same file again creates only the jobs that are missing. Wait until the first attempt has finished on the server first: a local timeout is not enough, so check nexrender batch show BATCH_ID until it stops changing.
Fonts and encrypted secrets are along for the ride too:
nexrender font upload Inter-Bold.ttf
nexrender secret set MAPBOX_TOKENEvery command acts on the Nexrender team connected to the active API key. nexrender team show tells you which team that is and, during a trial, how many jobs are left and when the trial ends.
The CLI ships with a Nexrender skill for coding agents. nexrender setup installs it for Claude Code and Codex when it finds them, or you can choose an agent yourself:
nexrender skill install --agent codex
nexrender skill install --agent claude
nexrender skill install --agent agents # ~/.agents/skills, for other agentsThe installed copy does not change when the CLI updates. nexrender setup and nexrender skill install refresh every copy the CLI installed earlier, and nexrender skill update refreshes those copies without installing anywhere new.
Then ask for the outcome you want:
Upload
intro.aep, wait until it is ready, and tell me its compositions and layer names.
Submit
job.json, follow the render, and show me the output when it finishes.
Diagnose job
abc123. Do not change or cancel anything.
The skill teaches the agent when to validate first, when confirmation is required, and how to keep credentials away from logs and presigned upload links. The standalone nexrender-skill remains available for agents that cannot install or run the CLI.
Ask for JSON explicitly, or pipe a command and get JSON automatically:
nexrender job list --json nexrender job list | jq '.data'
There is also a built-in jq filter for compact agent workflows:
nexrender job list --jq '.data[] | {id, status}' nexrender template list --quiet --jq '.[].id'
Explore what the installed version can do without scraping help text:
nexrender commands --json nexrender schema createJob --json
Create, cancel, delete, and upload operations are never retried after an ambiguous network failure. Destructive commands ask before acting unless you pass --yes.
Start broad, then zoom in:
nexrender --help nexrender job --help nexrender job submit --help nexrender doctor