Roflow CLI
The Roflow CLI (roflow) is the terminal twin of the Roflow desktop app. It runs the same agent, signs in with the same Roblox account, uses the same managed models and billing, and drives the same Roblox Studio Bridge. What changes is the surface: a terminal instead of a chat panel.
Reach for it when you are already in a terminal — scripting a task, working over SSH, or you just prefer the keyboard.
- Roblox Studio, with a saved place open. An unsaved place has no place id and the CLI will refuse to connect.
- A Roflow account — the same one you use in the desktop app.
Install
Windows (PowerShell):
irm https://roflow.co/install.ps1 | iex
macOS / Linux:
curl -fsSL https://roflow.co/install.sh | sh
The installer downloads the roflow binary for your platform, verifies it against SHA256SUMS, installs it under ~/.roflow/app, and adds it to your PATH. Open a new terminal afterwards so the updated PATH takes effect.
To update later:
roflow update self
First run
Open a saved place in Roblox Studio, then run roflow in a terminal.
roflow
On first run a Welcome Wizard walks you through:
- Sign in with Roblox — the same OAuth sign-in the desktop app uses.
- Entitlement check — confirms which plan you are on.
- Security notes — what the agent can and cannot touch.
- Studio Bridge plugin install — the wizard installs the companion plugin for you. Restart Studio if it asks you to, so Studio picks the plugin up.
You can re-run sign-in at any time from inside the CLI with /login roflow.
How it connects to Studio
The CLI resolves your open Studio place before the session starts, mirrors that place's contents into a hidden per-place workspace, and roots the agent there. The agent edits real scripts in that mirror, and edits round-trip back into Studio through the Bridge.
Studio stays the source of truth. You do not need a Rojo project or a checked-out folder — the CLI works against the place you already have open.
The status line at the bottom of the terminal shows the live Studio connection state, plus how much of your managed usage is left.
Until a place is actually connected, the CLI will not let you send a prompt. This is deliberate — it stops the agent from confidently doing work against nothing. If the status line says you are disconnected, check that Studio is open with a saved place.
Close the Roflow desktop app before using the CLI with Studio, or vice versa. Both connect to the same Studio plugin and only one can hold it.
Interactive mode
Run roflow with no arguments and you get an interactive session:
$ roflow
> add a coin pickup system with a leaderboard stat
● Edit ServerScriptService/CoinService.luau
…diff…
✔ task complete
Useful commands inside the session:
| Command | What it does |
|---|---|
/help | List every available command. |
/tier | Pick an effort level — Low, Balanced, or High. |
/login roflow | Sign in again, or switch accounts. |
Effort tiers instead of model names
You do not pick raw model names. /tier chooses an effort level and Roflow maps it to the right model for the job:
- Low — quick edits and questions; cheapest and fastest.
- Balanced — the default; the right choice for most building.
- High — hard problems worth spending more on.
/tier high sets it directly; /tier with no argument opens the picker.
One-shot tasks
Pass -p (print mode) with a prompt to run a single task and exit — useful in scripts:
roflow -p "review the coin service for Roblox anti-patterns"
For machine-readable output, add --mode json to get one JSON event per line:
roflow --mode json -p "list the scripts in ServerScriptService"
Sessions
Work is saved as sessions, so you can pick up where you left off:
| Flag | What it does |
|---|---|
--continue, -c | Continue the previous session. |
--resume, -r | Choose a session to resume from a list. |
--name, -n <name> | Give this session a display name. |
--no-session | Don't save this session at all. |
roflow --continue "now add a shop for those coins"
Permissions and safety
The agent auto-accepts routine work inside its workspace so you are not clicking through prompts all day, with two hard edges that are always on:
- Credentials are never readable. Files like
auth.jsonandcredentials.json, and the agent's own state directory, are denied outright — this holds even under--safe. - Anything outside the workspace asks first, and auto-denies when there is nobody to ask (a scripted run).
Want to approve everything by hand instead? Start with --safe:
roflow --safe
That confirms every mutating action — writes, edits, and terminal commands — even inside the workspace.
Your credentials live under ~/.roflow with restrictive permissions and are never logged or sent to the model. The Studio Bridge only listens on loopback (127.0.0.1), so nothing on your network can reach it.
Common flags
| Flag | What it does |
|---|---|
-p, --print | Run one task non-interactively and exit. |
--mode json | Emit JSON events, one per line, instead of formatted text. |
--safe | Confirm every mutating action. |
-c, --continue | Continue the previous session. |
-r, --resume | Pick a session to resume. |
--offline | Skip startup network calls. |
--version, --help | The usual. |
Run roflow --help for the complete list.
Next Steps
- Tool Use (Agents) — what the agent can actually do, CLI or app
- Companion Plugin — the Studio side of the Bridge
- Configuration — settings shared with the desktop app