๐ค One chat drove the entire editor.
"Use llm-easyshell to [spawn / inspect / wire / play / live-code] [your scene / your assets / your gameplay] โ from any LLM agent loop."
๐ฏ Or for the integrated Agent skill โ drop in the LLMEasyShell skill from the skill repo, and any LLM agent runs the editor end-to-end with 35+ read/write commands + auto-discovered C++ abilities + 25+ Python abilities.
Co-exists with LLMEasyShell Lite โ the free entry-level companion on a separate TCP port range (9 read-only built-ins + open PyAbility runtime).
๐ Tutorial: LLMEasyShell - TCP Shell Guide ยท ๐ Skill Repo: github.com/ituiyuio/Yomin-Fab-LLM-Unreal-Pluagin-Skill
Features:โ One TCP Port, Full Editor Control - 35+ read & write commands over a single localhost socket (15151โ15200)
โ LLM-First Design - The agent sends a one-line command, gets back JSON โ no UE editor knowledge required
โ C++ Ability Framework - Any plugin can auto-register its own shell commands (material / vfx / ui / pcg / quixel / llmms / statetree all ship as abilities)
โ Python Ability Framework - Drop a .py into abilities/, run python reload, and your tool is online to every LLM agent
โ 25+ Built-in Python Abilities - Asset / blueprint / property / gameplay / animation / curve / level / material / VFX / navigation / performance โ ready out of the box
โ Live Coding + Restart - livecoding / lc / reload, --restart editor with crash detection and push-model ready signal
โ PIE Control + Screenshots - play / stop / pause / select / focus + Slate composite screenshots straight to PNG
โ UI Introspection + Simulated Input - Dump UMG widget trees, click buttons, type text โ drive your runtime UI from any agent
๐ฆ What You Get:TCP server (15151โ15200) ยท .py ability loader ยท Slate composite screenshots ยท Live Coding hook ยท Restart-with-crash-detect
Technical InformationVersion: Unreal Engine 5.7+
Dependencies: PythonScriptPlugin, GameplayAbilities, GameplayTagsEditor, EnhancedInput, PoseSearch, Chooser, StructUtils, Niagara, EditorScriptingUtilities
Modules: LLMEasyShell (Editor)
Number of Blueprints: 0
Number of C++ Classes: ~115
Network Replicated: No
Documentation Link: Documentation.md in plugin folder
Example Project: Works on any UE 5.7+ project โ connect a TCP client to localhost:15151
Supported Platforms: Windows, Mac, Linux (Live Coding subcommand: Windows only)
OverviewThe Problem
Letting an LLM drive Unreal Editor is painful:
No programmatic way to spawn / inspect / wire actors from outside
Python editor scripting is verbose, async, and engine-version fragile
Every plugin reinvents its own RPC bridge
No standard contract for "agent calls function, editor returns JSON"
Live Coding / PIE / screenshots all need separate plumbing
The Solution
LLMEasyShell changes everything. One TCP port exposes the entire editor:
Send a one-line text command (ls /Level/Actors, spawn /Game/.../BP, call /Actor/X.Fire)
Receive a JSON response the agent can read
Plugins register new commands via a C++ Ability or a drop-in .py file
Live Coding, screenshots, PIE control, log tail โ all built in
LLM sends a command. Editor returns JSON. Done.
Example
# Agent loop โ one line per action > info { "project": "MyGame", "engine": "5.7.4", "pie": "stopped" } > spawn /Game/BP_Enemy at 100,200,50 { "ok": true, "actor": "/Actor/BP_Enemy_C_42" } > set /Actor/BP_Enemy_C_42.Health=200 > call /Actor/BP_Enemy_C_42.SetActive true > uishot { "ok": true, "file": "Saved/Screenshots/2026-06-15-22-05.png" }
Send a one-line command โ Get a one-line JSON response. The agent loop never stalls.
WorkflowInstall + Enable - Drop into Plugins/, enable the 9 engine plugins in your .uproject
Restart Editor - TCP listener binds the first free port in 15151โ15200 automatically
Connect Any Agent - Plain TCP socket from any LLM loop, or use the reference CLI from the skill repo
Extend - Author C++ abilities (derive from ULLMEasyShellAbilityCommandObject) or drop .py files into abilities/
CategoryCommandsScenels / cat / spawn / rm / mv / cp / select / focusProperty & Functionset / call / addcomp / discoverAssetsls /Assets/ / cat / new / cp / mv / rm / save / mkdirSearch & Infofind / info / gamestate / helpPIE Controlplay / stop / pause / undo / redoLive Codinglivecoding / lc / reload / log --compile / log --restartLogslog --errors / msglog --niagara / livelogUI Introspectionuitree / uifind / uiinfo / uipress / uitype / uishotPython Abilitiespython <name> ... / python reload
For the full command reference, see the documentation site.
Built-in Python AbilitiesCategoryAbilitiesAsset / Blueprintasset, blueprint, bpcomp, bpprop, reparentProperty / Reflectionproperty, reactiveGameplaygameplay, gameplayability, gameplaytagAnimationanimCurves & Tablescurve, datatable, chooserLevels & Scenelevel, scene, editorMaterial & VFXmaterial, vfx, umgPose / MotionposesearchNavigationnavigationPerformanceperfHD3D Demo Sethd3d, hd3dpostprocess, hd3dscene
Drop your own .py into PyAbilities/LLMShellAbilities/abilities/, run python reload, and the ability becomes invocable as python <name> from any agent loop.
Successful development to you!
LLMEasyShell v1.0.0 | YominUnreal