StudioSync
Real-time sync between Roblox Studio and VS Code with a local REST API and MCP interface for AI agents to read and edit Roblox game scripts and instances.
README
StudioSync
Real-time, zero-config sync between Roblox Studio and VS Code — with a local REST API that AI agents (Claude Code, scripts, anything that can curl) can use to read and edit your game.
- Folders map 1:1 to Roblox services. No
project.jsonto write — the only config file,.studiosync.json, is machine-generated. - Two-way live sync of scripts: type in Studio, the file updates; save in VS Code, the open Studio editor updates. Create/delete/rename/move sync in both directions too.
- Safe initial handshake: when the project and the place differ you choose
Pull / Push / Merge, and anything overwritten is backed up to
.studiosync/backups/first. Push is a single undo step in Studio. - Auto-reconnect keyed by PlaceId. Open the project and the place — they find each other.
MyGame/
├── ReplicatedStorage/
│ └── Shared/
│ └── Hello.luau → ModuleScript
├── ServerScriptService/
│ └── Main.server.luau → Script
└── StarterPlayer/
└── StarterPlayerScripts/
└── Client.client.luau → LocalScript
Install
- Roblox Studio plugin: Creator Store asset 86309040336609 — install via Studio's Toolbox/Plugins.
- VS Code extension: download
StudioSync-<version>.vsixfrom the GitHub Releases page, then in VS Code: Extensions sidebar →···menu → Install from VSIX (orcode --install-extension StudioSync-x.y.z.vsix).
Both sides check versions on every connection: an outdated Studio plugin shows an orange update banner in its widget, and an outdated extension gets a VS Code notification. The pair always states which side to update.
Install (development)
Requirements: Node.js ≥ 20, Roblox Studio, VS Code.
npm install
npm run dev # builds + installs the Studio plugin, watches everything
Then:
- Press F5 in VS Code (opens the Extension Development Host).
- In the dev host, open an empty folder and run StudioSync: Create Project from the command palette.
- Open your place in Roblox Studio. The StudioSync plugin (installed into
your local Plugins folder by
npm run dev) starts looking for VS Code automatically. - First time only: Studio asks you to allow the plugin's HTTP requests —
allow
127.0.0.1in Plugins → Manage Plugins. - Approve the connection in VS Code, pick a sync direction if the two sides differ, and you're live.
The AI-friendly API
While the extension runs, a local REST API is available (default
http://127.0.0.1:34873 — the real port is in .studiosync.json):
curl localhost:34873/api/status
curl localhost:34873/api/explorer
curl "localhost:34873/api/script?path=ReplicatedStorage/Shared/Hello"
curl -X POST localhost:34873/api/script \
-H 'Content-Type: application/json' \
-d '{"path":"ReplicatedStorage/Shared/Hello","source":"return 42"}'
curl "localhost:34873/api/search?q=Hello"
Every mutation flows through the same sync pipeline, so it lands in the
project files and in Roblox Studio simultaneously. GET / serves the full
API reference (also in docs/api.md).
MCP: the server also speaks Model Context Protocol at /mcp — register
it once and Claude Code (or any MCP client) gets 15 native StudioSync tools:
claude mcp add studiosync --transport http http://127.0.0.1:34873/mcp
Packages (Wally)
# in VS Code: StudioSync: Add Package → sleitnick/signal@^2.0.0
Packages install from the public Wally registry into
ReplicatedStorage/Packages (standard Wally linker layout, transitive
dependencies included) and sync into Studio like any other files:
require(ReplicatedStorage.Packages.Signal). Manifest: packages.json.
Templates
StudioSync: Create Project is a setup wizard: pick a template (Empty,
Simulator, FPS, RPG, Tycoon, or Fusion — the last one auto-installs the
Fusion package), pick an instance-storage mode, done. Drop your own template
folders into ~/.studiosync/templates/ and they appear in the list.
Explorer view
The StudioSync icon in the activity bar opens a live, Roblox-style
Explorer of your place: every synced instance with class-aware icons.
Right-click to create/rename/delete instances, edit attributes, or reveal in
Studio; drag-and-drop to move. It renders the exact same tree the AI reads
via get_explorer / /api/explorer — human and AI share one live view.
Repository layout
| Path | What |
|---|---|
extension/ |
VS Code extension (TypeScript): HTTP server, sync engine, file watcher, REST API |
plugin/ |
Roblox Studio plugin (Luau): watchers, applier, long-poll client, UI |
tools/ |
Plugin packer (Luau → .rbxmx), installer, dev loop |
docs/ |
protocol.md · mapping.md · api.md |
plugin/src/Protocol.luau is generated from
extension/src/core/protocol.ts at build time — one source of truth for the
wire protocol. The plugin source layout is Rojo-compatible
(plugin/default.project.json) if you prefer rojo build.
Commands
npm run build— build extension + pluginnpm run dev— watch mode for both, auto-installs the pluginnpm test— unit tests + an end-to-end protocol simulationnpm run package— produce the.vsixand.rbxmxartifactsnpm run release— build, test, and stage versioned release artifacts indist/(with SHA256SUMS) ready to attach to a GitHub release; pushing av*tag does the same automatically via GitHub Actions
MVP scope
Syncs Script / LocalScript / ModuleScript / Folder. Properties,
attributes, tags, non-script instances, packages, and templates are planned
next phases (see docs/). Team Create is not supported yet. Windows and
macOS.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.