Skip to main content
This page is part of an AI coding agent skill and is written for agents, not humans. For the human-readable Base44 docs, see the developer documentation.

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

The exec 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 function
  • base44.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_ID set
  • Script must be piped via stdin (non-interactive mode)
  • --port requires --local to 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 default base44 dev binds to); pass --port if you started base44 dev on a different port
  • base44 dev must already be running in another terminal — exec --local does 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-id is useful when you want to inspect app data without switching into a linked local project
  • --privileged bypasses 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)