Skip to content

gdcli

gdcli drives a running Godot editor through its own APIs: nothing sits in the model's prompt, nothing is written behind the engine's back.

gdcli scene tree --depth 2
gdcli node add Sprite2D --parent Main --name Hero
gdcli prop set Hero position 'Vector2(64, 96)'
gdcli scene save

gdcli talks to a small editor plugin over loopback, and the plugin performs every operation through EditorInterface and EditorUndoRedoManager. Nothing is written by hand, so scene inheritance, instanced sub-scenes and resource references survive, and every change lands in your undo history as one gdcli: <cmd> step.

Why not something else

  • An MCP server


    Tool schemas (dozens of them) sit in the conversation forever. The transport is not the problem; the surface is. A CLI keeps the surface in the shell.

  • Editing .tscn by hand


    Inheritance and instanced scenes are not representable as text patches without a lossless parser, and one bad patch makes the engine refuse the file.

  • Screen automation


    Godot's accessibility tree exposes editor chrome only: buttons, tabs and dock shells. The scene tree, inspector rows and menus are invisible to it.

  • Injecting into the editor process


    The release binary is fully stripped, so this needs a per-version C++ shim β€” and it only reaches the same EditorInterface API a plugin already has.

Read the full design Wire protocol

What it can do

  • Scene editing


    Nodes, properties, signals, groups, instanced sub-scenes, undo/redo.

  • Project data


    Settings, autoloads, the input map, plugin toggles, filesystem scans, script checks.

  • Editor UI


    Selection, inspector, main screen, toasts, real PNG screenshots, play/stop.

  • The running game


    Inspect and change live nodes, evaluate expressions, capture print output.

Install

cargo install gdcli-cli
gdcli plugin install --project /path/to/game
# restart the Godot editor once
gdcli editor status

Prebuilt binaries and one-line installers are on the install page.

Where to go next

If you want to… Read
set up a project Install
edit a scene from the shell Usage
let an agent drive Godot For agents
know why it is built this way Design
implement a client Wire protocol