Command line tutorial

Some developers like using the command line extensively. Godot is designed to be friendly to them, so here are the steps for working entirely from the command line. Given the engine relies on almost no external libraries, initialization times are pretty fast, making it suitable for this workflow.


On Windows and Linux, you can run a Godot binary in a terminal by specifying its relative or absolute path.

On macOS, the process is different due to Godot being contained within an .app bundle (which is a folder, not a file). To run a Godot binary from a terminal on macOS, you have to cd to the folder where the Godot application bundle is located, then run followed by any command line arguments. If you've renamed the application bundle from Godot to another name, make sure to edit this command line accordingly.

Command line reference


  • release Available in editor builds, debug export templates and release export templates.

  • debug Available in editor builds and debug export templates only.

  • editor Only available in editor builds.

Note that unknown command line arguments have no effect whatsoever. The engine will not warn you when using a command line argument that doesn't exist with a given build type.

General options



-h, --help

release Display the list of command line options.


release Display the version string.

-v, --verbose

release Use verbose stdout mode.

-q, --quiet

release Quiet mode, silences stdout messages. Errors are still displayed.

Run options



--, ++

release Separator for user-provided arguments. Following arguments are not used by the engine, but can be read from OS.get_cmdline_user_args().

-e, --editor

editor Start the editor instead of running the scene.

-p, --project-manager

editor Start the Project Manager, even if a project is auto-detected.

--debug-server <uri>

editor Start the editor debug server (<protocol>://<host/IP>[:<port>], e.g. tcp://


release Quit after the first iteration.


release Quit after the given number of iterations. Set to 0 to disable.

-l, --language <locale>

release Use a specific locale. <locale> follows the format language_Script_COUNTRY_VARIANT where language is a 2 or 3-letter language code in lowercase and the rest is optional. See Locale codes for more details.

--path <directory>

release Path to a project (<directory> must contain a 'project.godot' file).

-u, --upwards

release Scan folders upwards for 'project.godot' file.

--main-pack <file>

release Path to a pack (.pck) file to load.

--render-thread <mode>

release Render thread mode ('unsafe', 'safe', 'separate'). See Thread Model for more details.

--remote-fs <address>

release Remote filesystem (<host/IP>[:<port>] address).

--remote-fs-password <password>

release Password for remote filesystem.

--audio-driver <driver>

release Audio driver. Use --help first to display the list of available drivers.

--display-driver <driver>

release Display driver (and rendering driver). Use --help first to display the list of available drivers.

--rendering-method <renderer>

release Renderer name. Requires driver support.

--rendering-driver <driver>

release Rendering driver (depends on display driver). Use --help first to display the list of available drivers.

--gpu-index <device_index>

release Use a specific GPU (run with --verbose to get available device list).

--text-driver <driver>

release Text driver (Fonts, BiDi, shaping).

--tablet-driver <driver>

release Pen tablet input driver.


release Enable headless mode (--display-driver headless --audio-driver Dummy). Useful for servers and with --script.

--write-movie <file>

release Run the engine in a way that a movie is written (usually with .avi or .png extension). --fixed-fps is forced when enabled, but can be used to change movie FPS. --disable-vsync can speed up movie writing but makes interaction more difficult. --quit-after can be used to specify the number of frames to write.

Display options



-f, --fullscreen

release Request fullscreen mode.

-m, --maximized

release Request a maximized window.

-w, --windowed

release Request windowed mode.

-t, --always-on-top

release Request an always-on-top window.

--resolution <W>x<H>

release Request window resolution.

--position <X>,<Y>

release Request window position.

--screen <N>

release Request window screen.


release Use a single window (no separate subwindows).

--xr-mode <mode>

release Select XR mode ('default', 'off', 'on').

Debug options