UnrealEngineLink
🌐 Original project: enginelink.dev Unreal Engine build bridge for AI-powered editors — build, launch, and live-code UE projects with MCP tooling in Cursor and Claude Code. EngineLink connects your AI editor to Unreal Engine so you can compile, iterate, and debug C++ projects without leaving the editor. It auto-detects your
Supported Editors
EngineLink auto-detects which editor you're using. You can override this with the Setup GuideGetting EngineLink running is a three-step process: install the system prerequisites, install EngineLink, then install the C/C++ extension for IntelliSense. Step 1 — System PrerequisitesYou need Windows, Unreal Engine, and Visual Studio with the right components. Unreal Engine 5.4+Install via the Epic Games Launcher. EngineLink has been tested on UE 5.4 – 5.8. Visual Studio with C++ and ClangOpen Visual Studio Installer, click Modify on your install (Community / Build Tools / etc.), and make sure these components are enabled: Workload:
Individual Components (search in the installer):
EditorCursor: Install Cursor (version VS Code + Claude Code: Install VS Code (version Step 2 — Install EngineLinkFrom Marketplace — coming soon. From VSIX — download or build the From Source:
Press Step 3 — C/C++ IntelliSenseEngineLink handles building your project, but you need a language server for IntelliSense (code completion, go-to-definition, diagnostics on the fly). Install a clangd-based C/C++ extension:
Where
|
| Command | Keybinding | Description |
|---|---|---|
| Build | Ctrl+Shift+B |
Build the project via UnrealBuildTool |
| Rebuild (Clean + Build) | — | Clean all artifacts then build |
| Clean | — | Remove build artifacts |
| Launch Unreal Editor | — | Open UnrealEditor.exe with the current project |
| Live Coding Compile | Ctrl+Alt+F11 |
Hot-reload in the running Unreal Editor |
| Generate compile_commands.json | — | Run UBT GenerateClangDatabase |
| Select Engine Installation | — | Pick from discovered engine installs |
| Select UE Project | — | Pick from detected .uproject files |
| Select Build Configuration | — | Debug / DebugGame / Development / Shipping / Test |
| Select Build Target Type | — | Editor / Game / Client / Server |
Build, Launch, and Live Coding also appear as icon buttons in the editor title bar.
Configuration
All settings live under enginelink.* in your workspace or user settings.json.
| Setting | Type | Default | Description |
|---|---|---|---|
enginelink.engineRoot |
string |
"" |
Manual override for the UE root directory |
enginelink.projectFile |
string |
"" |
Path to a specific .uproject file |
enginelink.buildConfiguration |
enum |
Development |
Debug, DebugGame, Development, Shipping, Test |
enginelink.buildTarget |
enum |
Editor |
Editor, Game, Client, Server |
enginelink.platform |
string |
Win64 |
Target platform |
enginelink.aiAssistant |
enum |
auto |
auto (detect), cursor, or claude |
enginelink.autoGenerateCompileCommands |
boolean |
true |
Auto-generate compile_commands.json on detection (needs Clang) |
enginelink.upsertClangdConfig |
boolean |
true |
Auto-update .clangd with builtin_definition suppression |
enginelink.liveCoding.method |
enum |
keystroke |
Live Coding trigger (keystroke or disabled) |
enginelink.vsBuildTools.path |
string |
"" |
Manual override for VS Build Tools path |
MCP Server (AI Agent Tools)
EngineLink ships a built-in MCP server that AI agents can call directly. It's spawned on activation and registered in the appropriate config file for your editor.
| Tool | Description |
|---|---|
enginelink_build |
Build (optional config/target overrides) |
enginelink_rebuild |
Clean + build |
enginelink_clean |
Clean build artifacts |
enginelink_get_build_errors |
Errors with file paths, lines, and messages |
enginelink_get_project_info |
Project name, engine version, modules, settings |
enginelink_launch_editor |
Launch Unreal Editor |
enginelink_live_coding |
Trigger Live Coding hot-reload |
enginelink_generate_compile_commands |
Regenerate compile_commands.json |
AI Rules
On project detection, EngineLink generates guidance files so the AI follows UE conventions. The format depends on your editor:
Cursor (.cursor/rules/*.mdc)
| Rule File | Covers |
|---|---|
unreal-conventions.mdc |
Class prefixes (U, A, F, E, I, T), PascalCase, UE types |
unreal-macros.mdc |
UCLASS, UPROPERTY, UFUNCTION, USTRUCT, UENUM |
unreal-build-system.mdc |
.Build.cs, .Target.cs, modules, plugins |
unreal-live-coding.mdc |
What Live Coding can and cannot hot-patch |
unreal-patterns.mdc |
Delegates, timers, subsystems, Gameplay Tags, Enhanced Input, logging |
Claude Code (CLAUDE.md)
A single CLAUDE.md at the project root combines all the guidance above into one file. Claude Code reads this automatically for project context.
Existing files are never overwritten — EngineLink only creates rules if they don't exist yet, so your customizations are safe.
This is where we need the most help. If you're an experienced UE developer, your feedback on these rules would be incredibly valuable — please open an issue or PR!
Task Provider
EngineLink registers an enginelink task type for .vscode/tasks.json:
{
"version": "2.0.0",
"tasks": [
{
"type": "enginelink",
"action": "build",
"configuration": "Development",
"targetType": "Editor",
"label": "EngineLink: Build Editor (Development)"
}
]
}
Problem matchers $enginelink-msvc and $enginelink-ubt are included for parsing build output.
Contributing
This project is early and there's a lot to improve. Jump in!
- Fork the repo
- Create a feature branch (
git checkout -b feature/my-feature) - Make your changes
- Run
npm run typecheck - Open a pull request
Areas where help is needed:
- Testing — Vitest is set up but no tests exist yet
- AI rules — UE experts: are the rules correct? What's missing?
- macOS / Linux — engine discovery and Live Coding are Windows-only right now
Project Structure
src/
├── extension.ts # Entry point — activation, command registration
├── constants.ts # IDs, command names, config keys
├── types.ts # Shared TypeScript interfaces
├── build/
│ ├── ubt.ts # UBT command-line construction
│ └── taskProvider.ts # VS Code task provider
├── commands/
│ ├── buildCommands.ts # Build, rebuild, clean execution
│ ├── launchCommands.ts # Launch Unreal Editor
│ ├── liveCodingCommand.ts # Live Coding keystroke simulation
│ └── generateCommands.ts # compile_commands.json generation
├── config/
│ └── settings.ts # Typed settings accessor
├── ai/
│ ├── mcpServer.ts # MCP server lifecycle and IPC
│ ├── mcpRegistration.ts # MCP config registration (Cursor / Claude)
│ ├── editorDetect.ts # AI assistant auto-detection
│ ├── cursorRulesGenerator.ts # .cursor/rules/*.mdc generation
│ ├── claudeRulesGenerator.ts # CLAUDE.md generation
│ └── clangdConfig.ts # .clangd managed block upsert
├── detection/
│ ├── projectDetector.ts # .uproject scanning and selection
│ ├── engineDiscovery.ts # Engine discovery (registry + filesystem)
│ └── buildToolsDetector.ts # VS Build Tools detection via vswhere
├── mcp/
│ ├── server.ts # Standalone MCP server process
│ ├── tools.ts # MCP tool definitions
│ └── protocol.ts # IPC message types
├── parsers/
│ ├── buildOutputParser.ts # MSVC / UBT / linker output parsing
│ └── uprojectParser.ts # .uproject JSON parsing
├── platform/
│ ├── process.ts # spawnAsync, isUnrealEditorRunning
│ ├── paths.ts # File/directory helpers
│ └── registry.ts # Windows registry read utilities
└── ui/
├── statusBar.ts # Status bar items
├── outputChannel.ts # Output channel factory
└── quickPicks.ts # Quick-pick menus
Development
npm install
npm run build # one-shot build
npm run watch # rebuild on change
npm run format # Prettier
npm run typecheck # TypeScript type checking
npm run test # Vitest
npm run package # produces .vsix via vsce
Built with esbuild — produces dist/extension.js and dist/mcp-server.js.
To run locally: open this repo in Cursor or VS Code, press F5, then open a UE project folder in the new window.
License
MIT © 2026 EngineLink