floo run creates a short-lived dev session to fetch the service’s env vars (DATABASE_URL, REDIS_URL, custom vars set via floo env), authorizes direct Postgres connections if the app uses managed Postgres, runs the command in the service’s directory, then tears the session down on exit.
The command’s exit code is propagated exactly, so a failing test suite returns non-zero.
-- is the command to execute. Use -- so flags on your command aren’t interpreted by floo.
Flags
| Flag | Description |
|---|---|
--service SVC | Service name from floo.app.toml whose env vars to inject (required) |
--app APP | App name or UUID (reads from config if omitted) |
--json | Emit a machine-readable exit summary |
Examples
How it differs from floo dev
floo devstarts a long-lived local server bound to a port, with cross-service discovery sowebcan reachapiathttp://localhost:<port>.floo runis portless and single-shot. No local server, no cross-service discovery — just env vars + Postgres auth for the duration of the command.
floo dev to run your app locally against cloud credentials. Use floo run to execute a script or test suite against them.
Errors
| Code | Meaning |
|---|---|
NOT_AUTHENTICATED | Run floo auth login first |
NO_CONFIG_FOUND | No floo.app.toml in the current directory — run floo init or cd to the project root |
INVALID_PROJECT_CONFIG | Service name not found in floo.app.toml |
INVALID_PATH | The service’s path in floo.app.toml doesn’t exist on disk |