Build in Second Life at the speed of thought.
JoyCode is a Second Life viewer with a real LSL IDE, a world-aware workspace, and an AI agent that reads your objects and edits your scripts right where you build.
Free to start. Available for Windows. No payment required.
One viewer. Three superpowers.
Workspace, IDE and Agent Chat are built to work as one, so creating, scripting and debugging never break your flow.
A workspace that understands your build.
JoyCode watches what you select, the scripts you have open, and each prim's inventory in real time. Your tools and the agent always know exactly which object you are working on, down to the individual link.
- Live linkset awareness: link numbers and names, scripts, and inventory across every prim
- Edit several scripts at once, with unsaved changes flagged in the sidebar
- Per-prim inventory watchers pick up adds, renames and deletions the moment they happen
A real IDE for LSL, not a textarea.
Syntax highlighting, line numbers, autocomplete with function signatures, and project-wide search, all purpose-built for Linden Scripting Language inside the viewer.
- In-editor command palette: type /assets to drop a texture key or notecard name, /variables for a global, /linkset for a link name or number
- VSCode-style gutter bookmarks and global search across your scripts
- Every AI edit is highlighted in the editor and reverts with a normal Ctrl+Z
An agent that reads your world, then fixes it.
Ask in plain English. The agent inspects your scripts, objects and parcel, proposes a change, and applies it with the level of control you choose. It is pair-programming that actually sees what you see.
- ASK mode shows a before/after diff and waits for approval; AUTO applies edits directly
- Switch between a fast FLASH model and a deeper PRO model per session
- Watch reasoning, tool calls and token usage stream live as it works
What the agent can actually do
Not just chat. The agent has real tools that read your build and change it safely.
Understands your build
Reads the linkset tree, object owner, type and permissions, prim inventory, the parcel's land budget and rez rights, and your avatar and region context.
Edits surgically
Targets a function, event or state by name (no fragile line counting), does precise search and replace, or rewrites a whole script. It can also create, rename, reset and delete scripts.
Checks its own work
After writing, it re-reads what is actually saved in-world and lints it, catching scripts that compile but do nothing: empty handlers, a missing default state, or a truncated body.
Stays reversible
Every patch is tracked and can be rolled back by id, and you can list the recent changes made during a session at any time.
Revives dead scripts
Flips the in-world Running checkbox without re-saving, fixing the classic "saved but dead" script that a failed compile left stopped.
Plans multi-step work
Registers a goal and ordered steps that persist across turns, so larger refactors stay on track instead of drifting.
Ask it like a teammate
Real questions, grounded in what the agent can inspect and change.
"Why isn't my door opening?"
It reads the script, checks whether it is actually running, lints the logic, and points at the handler that never fires.
"Add a pay button to this vendor."
It finds the right script on the root prim, adds the handler, and shows you the diff before anything is saved.
"Why does my rezzer fail?"
It checks the parcel and tells you object rez is not allowed here, instead of guessing at the script.
Ready to build smarter?
Download JoyCode and bring an AI agent and a real IDE into your Second Life workflow.