Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including puppeteer-lottie-cli with all npm packages installed. Try it out:

var puppeteerLottieCli = require("puppeteer-lottie-cli")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

puppeteer-lottie-cli v1.0.9

CLI for rendering Lottie animations via Puppeteer to image, GIF, or MP4.


CLI for rendering Lottie animations via Puppeteer to image, GIF or MP4.

NPM Build Status JavaScript Style Guide


This CLI is also available as a library.


npm install -g puppeteer-lottie-cli

If you want to generate GIFs, you must also install gifski. On macOS, you can run:

brew install gifski

If you want to generate MP4s, you must also install ffmpeg. On macOS, you can run:

brew install ffmpeg


Usage: puppeteer-lottie [options]

  -i, --input <path>     relative path to the JSON file containing animation data
  -o, --output <path>    relative path to store output media (image, image pattern, gif, or mp4) (default: "out.png")
  -w, --width <number>   optional output width
  -h, --height <number>  optional output height
  -b, --background <css-color-value>
                         optional output background color (default: "transparent")
  -q, --quiet            disable output progress
  -V, --version          output the version number
  -h, --help             output usage information

Output must one of the following:
  - An image to capture the first frame only (png or jpg)
  - an image pattern (eg. sprintf format 'frame-%d.png' or 'frame-%012d.jpg')
  - an mp4 video file (requires FFmpeg to be installed)
  - a GIF file (requires Gifski to be installed)
  $ puppeteer-lottie -i fixtures/bodymovin.json -o out.mp4
  $ puppeteer-lottie -i fixtures/bodymovin.json -o out.gif --width 640
  $ puppeteer-lottie -i fixtures/bodymovin.json -o 'frame-%d.png' --width 1024 --height 1024

Output Size

If you don't pass width or height, the animation's intrinsic size will be used, and if that doesn't exist it will use 640x480.

If you pass width or height, the other dimension will be inferred by maintaining the original animation's aspect ratio.

If both width and height are passed, the output will have those dimensions, but there will be extra whitespace (or transparency if rendering PNGs) due to lottie-web's default rendererSettings.preserveAspectRatio of xMidyMid meet (docs and demo).

For mp4 outputs, the height may be different by a pixel due to the x264 encoder requiring even heights.


All lottie-web features should be fully supported by the svg, canvas, and html renderers.

This includes all of the animations on! 🔥

Also see Lottie's full list of supported features.



MIT © Travis Fischer


RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free