rbx open
Open Roblox places in Studio directly from the command line, configured via a shared TOML file.
Features
- Simple CLI - Open places with
rbx open <env> <place> - Interactive picker - Select environment and place with a menu if needed
- Shared config - Uses the same
rbxplace.tomlas otherrbxsubcommands - Cross-platform - Works on Windows, macOS, and Linux
- Zero dependencies - No API key needed, just launches Studio
Quick start
- Create or reuse
rbxplace.toml
[prod]
universe_id = 9876543210
places.main = 123456789012345
places.lobby = 987654321
[dev]
universe_id = 9876543212
places.main = 345678901234567
- Open a place
# Interactive picker
rbx open
# Open a specific place
rbx open prod main
# Open the only place in an environment
rbx open staging
Usage
rbx open [ENV] [PLACE]
Arguments
ENV- Environment name (e.g.,prod,staging). Falls back to the global--envflag, then to an interactive picker.PLACE- Place name within the environment (e.g.,main,lobby). Falls back to the global--placeflag, then to an interactive picker (auto-picks when the env has exactly one place).
Without a project
rbx open --place-id 123456789
--place-id skips rbxplace.toml entirely, so this works in any directory: a place you have not configured, or somebody else’s game you are helping with. It is the same global flag --universe-id is, and it wins over ENV / PLACE when both are given.
Worth having here more than anywhere: this command builds a roblox-studio: URI out of one number and makes no network call at all, so reading a config file to find that number was the only thing tying it to a project.
Configuration
rbx open reads from rbxplace.toml (override with the global --places <path>). Each top-level section is an environment:
[prod]
universe_id = 9876543210 # Required: Roblox universe ID
places.main = 123456789 # Optional: Map place names to place IDs
places.lobby = 987654321
confirm = true # Optional: For compatibility with rbx place
[staging]
universe_id = 9876543211
places.main = 234567890
Behavior
- No arguments - Interactive picker for environment, then place
- Environment only - If environment has one place, opens directly; otherwise shows picker
- Environment + place - Opens immediately
- Unknown environment - Shows error with available options
--env all- Rejected;rbx openoperates on one place at a time
How it works
rbx open constructs a roblox-studio: URI handler request:
roblox-studio:1+task:EditPlace+placeId:123456789+universeId:0
This is handled by your system’s Roblox Studio installation.
Prior art
ROpen (Luau, MPL-2.0) is where this command comes from: the launcher it was written against, and where the roblox-studio: URI dispatch was learned from, having contributed to it.
That dispatch is older than either of us. rojo-rbx/edit-roblox-place (Rust, MIT) was doing the same thing in August 2019 — one command, one place id, and the same roblox-studio:1+task:EditPlace+placeId:<id> this command sends. Nobody here knew of it until long after rbx open shipped; it is named because the honest version of “prior art” is not “whatever its author met first”.
What rbx open adds to either is the part that belongs to this tool: the place is named rather than numbered. rbx open prod main resolves through rbxplace.toml, so the id nobody remembers stays in the file that already holds it.
No code from either project is reused, and none is owed — see THIRD-PARTY-NOTICES.md.