CLI flags and configuration

Command Line Interface

To run manim, you need to enter the directory at the same level as manimlib/ and enter the command in the following format into terminal:

manimgl <code>.py <Scene> <flags>
# or
manim-render <code>.py <Scene> <flags>
  • <code>.py : The python file you wrote. Needs to be at the same level as manimlib/, otherwise you need to use an absolute path or a relative path.

  • <Scene> : The scene you want to render here. If it is not written or written incorrectly, it will list all for you to choose. And if there is only one Scene in the file, this class will be rendered directly.

  • <flags> : CLI flags.

Some useful flags

  • -w to write the scene to a file.

  • -o to write the scene to a file and open the result.

  • -s to skip to the end and just show the final frame.

    • -so will save the final frame to an image and show it.

  • -n <number> to skip ahead to the n’th animation of a scene.

  • -f to make the playback window fullscreen.

All supported flags


In order to perform more configuration (about directories, etc.) and permanently change the default value (you don’t have to add flags to the command every time), you can modify custom_config.yml. The meaning of each option is in page custom_config.

You can also use different custom_config.yml for different directories, such as following the directory structure:

├── manimlib/
│   ├── animation/
│   ├── ...
│   ├── default_config.yml
│   └──
├── project/
│   ├──
│   └── custom_config.yml
└── custom_config.yml

When you enter the project/ folder and run manimgl <Scene>, it will overwrite manim/default_config.yml with custom_config.yml in the project folder.

Alternatively, you can use --config_file flag in CLI to specify configuration file manually.

manimgl project/ --config_file /path/to/custom_config.yml