Windows Lua tooling, done properly.
Shell is a desktop editor for Lua and Luau. Monaco under the hood, tabs that survive a restart, a workspace on disk, and device-locked keys. Small, fast, and it stays out of your way.
Checking service status…
1-- workplace/main.lua 2local players = game:GetService("Players") 3 4local function greet(name) 5 print("hello, " .. name) 6end 7 8for _, p in ipairs(players:GetPlayers()) do 9 greet(p.Name) 10 task.wait(0.5) 11end
[10:24:02] - Shell ready. [10:24:04] - Editor ready. [10:24:11] - Key active until 2026-08-19 22:38. [10:24:19] - Saved main.lua ✓
What's inside
Everything is local and instant. No project setup, no build step.
Real editing
Monaco with Lua and Luau highlighting, signature-aware completions, and snippets that fill in each argument as you tab.
Tabs that persist
Every tab keeps its own undo history, cursor and scroll position, and comes back exactly as you left it.
Workspace
Save to .lua or .luau and every script
shows up in the explorer, with instant search as you type.
Make it yours
Pick any accent colour and set a background image or GIF, with adjustable transparency.
Sessions
Snapshot every open tab under a name, then restore the whole set later. Useful for switching between projects.
Output panel
A timestamped log you can copy or clear, docked below the editor and resizable.
Get started
Three steps, about a minute.
Open Shell and press Run or Connect
A small prompt appears asking for a key, with your device ID beneath it.
Copy your device ID
Hit Copy in the prompt, then head to the key page and paste it in.
Paste the key back
Drop it into the prompt and press Activate. It is remembered until it expires, and whatever you were doing continues straight away.
Questions
The short answers.
Why does a key only work on one device?
Keys are signed against your device ID, which is derived from your Windows install and system drive. A key issued for one machine will not verify on another.
What happens when a key expires?
The expiry is stored inside the key itself. Once it passes, Shell asks for a new one the next time you press Run or Connect. Nothing you have written is affected - tabs, files and sessions stay on disk.
Is my device ID personal information?
It is a one-way hash, so it cannot be reversed into anything about you or your hardware. It is only used to bind a key to a machine.
My device ID changed. Why?
Reinstalling Windows or replacing the system drive changes it. Just generate a new key with the new ID.
Where are my scripts kept?
In a workplace folder next to the app. They are plain
.lua and .luau files - open them with
anything, back them up, put them in git.
Does it need an internet connection?
Only to fetch a key and to load the editor. Once a key is active it is checked offline, because the expiry travels inside the key itself.