base44 exec
Run a script with the Base44 SDK pre-authenticated as the current user. Reads the script from stdin.Syntax
Options
How It Works
Theexec command reads a script from stdin and runs it server-side with the Base44 SDK pre-authenticated as the currently logged-in user. This allows you to run one-off scripts against your app’s data without writing a full function.
By default the script runs against your deployed app. Pass --local to run it against a base44 dev server running on your machine instead — useful for testing scripts before they touch production data.
Available Globals
base44 — a preinitialized SDK client, available as a global variable in every exec script. You do not need to import or configure it — it is ready to use immediately.
Use it to interact with your app’s resources:
base44.entities.<EntityName>— CRUD operations on entities (.list(),.get(id),.create(data),.update(id, data),.delete(id))base44.functions.invoke(name, data?)— call a backend functionbase44.agents.<AgentName>— invoke AI agents- For more available resources and methods, see the Base44 SDK reference
Examples
Requirements
- Must be authenticated (
npx base44 login) - Must run in one of these contexts:
- from a linked Base44 project directory, or
- with
--app-id <id>, or - with
BASE44_APP_IDset
- Script must be piped via stdin (non-interactive mode)
--portrequires--localto also be set
Running Against the Local Dev Server
--local targets a base44 dev server already running on your machine instead of the deployed app:
- The SDK authenticates as your current user via a locally-minted token — the dev server decodes it and seeds your user as an admin, so this matches your local session
- Defaults to port
4400(the same defaultbase44 devbinds to); pass--portif you startedbase44 devon a different port base44 devmust already be running in another terminal —exec --localdoes not start it for you
Notes
- The script runs with the Base44 SDK pre-authenticated — you can use
base44.entities,base44.functions, etc. directly --app-idis useful when you want to inspect app data without switching into a linked local project--privilegedbypasses row-level security (RLS); requires the app owner or editor role- Exit code from the script is forwarded as the CLI process exit code
- This command requires stdin to be piped (it does not accept input in interactive TTY mode)