> ## Documentation Index
> Fetch the complete documentation index at: https://docs.base44.com/llms.txt
> Use this file to discover all available pages before exploring further.

# CLI Commands Overview

> Complete reference for all Base44 CLI commands

<Note>
  The backend service and CLI are currently in beta. We're actively improving the platform and documentation based on user feedback. Share your thoughts and feature requests on our [GitHub Discussions page](https://github.com/orgs/base44/discussions).
</Note>

The Base44 CLI provides commands for authentication, project management, and syncing resources with your Base44 backend.

## Command overview

| Command                                                                                      | Description                                                    |
| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------- |
| [`agent-skills pull`](/developers/references/cli/commands/agent-skills-pull)                 | Pull agent skills from Base44 to local files.                  |
| [`agent-skills push`](/developers/references/cli/commands/agent-skills-push)                 | Push local agent skills to Base44.                             |
| [`agents pull`](/developers/references/cli/commands/agents-pull)                             | Pull agent configurations from Base44 to local files.          |
| [`agents push`](/developers/references/cli/commands/agents-push)                             | Push local agent configurations to Base44.                     |
| [`auth password-login`](/developers/references/cli/commands/auth-password-login)             | Enable or disable username and password login in local config. |
| [`auth pull`](/developers/references/cli/commands/auth-pull)                                 | Pull auth config from Base44 to your local project.            |
| [`auth push`](/developers/references/cli/commands/auth-push)                                 | Push local auth config to Base44.                              |
| [`auth social-login`](/developers/references/cli/commands/auth-social-login)                 | Enable or disable social login providers in local config.      |
| [`auth sso`](/developers/references/cli/commands/auth-sso)                                   | Configure SSO identity providers in local config.              |
| [`build`](/developers/references/cli/commands/build)                                         | Build the site with the Base44 app ID injected.                |
| [`connectors initiate`](/developers/references/cli/commands/connectors-initiate)             | Set up a single connector and start its OAuth flow.            |
| [`connectors list-available`](/developers/references/cli/commands/connectors-list-available) | List all available integration types.                          |
| [`connectors pull`](/developers/references/cli/commands/connectors-pull)                     | Pull connector configurations from Base44 to local files.      |
| [`connectors push`](/developers/references/cli/commands/connectors-push)                     | Push local connector configurations to Base44.                 |
| [`create`](/developers/references/cli/commands/create)                                       | Create a new Base44 project from a template.                   |
| [`dashboard open`](/developers/references/cli/commands/dashboard-open)                       | Open the app dashboard in your browser.                        |
| [`deploy`](/developers/references/cli/commands/deploy)                                       | Deploy all project resources to Base44.                        |
| [`dev`](/developers/references/cli/commands/dev)                                             | Start a local development server.                              |
| [`eject`](/developers/references/cli/commands/eject)                                         | Clone an existing Base44 app into a separate local project.    |
| [`entities push`](/developers/references/cli/commands/entities-push)                         | Push local entity schemas to Base44.                           |
| [`exec`](/developers/references/cli/commands/exec)                                           | Run a script with the Base44 SDK pre-authenticated.            |
| [`functions delete`](/developers/references/cli/commands/functions-delete)                   | Delete one or more deployed backend functions.                 |
| [`functions deploy`](/developers/references/cli/commands/functions-deploy)                   | Deploy local functions to Base44.                              |
| [`functions list`](/developers/references/cli/commands/functions-list)                       | List all deployed backend functions.                           |
| [`functions pull`](/developers/references/cli/commands/functions-pull)                       | Download deployed functions to your local project.             |
| [`link`](/developers/references/cli/commands/link)                                           | Link a local project to a backend project on Base44.           |
| [`login`](/developers/references/cli/commands/login)                                         | Authenticate with Base44.                                      |
| [`logout`](/developers/references/cli/commands/logout)                                       | Sign out and clear stored credentials.                         |
| [`logs`](/developers/references/cli/commands/logs)                                           | View function logs.                                            |
| [`sandbox checkpoint`](/developers/references/cli/commands/sandbox-checkpoint)               | Create a restore-point checkpoint of an app's remote sandbox.  |
| [`sandbox edit`](/developers/references/cli/commands/sandbox-edit)                           | Apply exact string replacements to a file in the sandbox.      |
| [`sandbox grep`](/developers/references/cli/commands/sandbox-grep)                           | Search files for a pattern in an app's remote sandbox.         |
| [`sandbox ls`](/developers/references/cli/commands/sandbox-ls)                               | List directory entries in an app's remote sandbox.             |
| [`sandbox read`](/developers/references/cli/commands/sandbox-read)                           | Read file contents from an app's remote sandbox.               |
| [`sandbox run`](/developers/references/cli/commands/sandbox-run)                             | Run a shell command in an app's remote sandbox.                |
| [`sandbox write`](/developers/references/cli/commands/sandbox-write)                         | Create or overwrite a file in an app's remote sandbox.         |
| [`scaffold`](/developers/references/cli/commands/scaffold)                                   | Set up local project files for an existing Base44 app.         |
| [`secrets delete`](/developers/references/cli/commands/secrets-delete)                       | Delete one or more project secrets.                            |
| [`secrets list`](/developers/references/cli/commands/secrets-list)                           | List project secrets.                                          |
| [`secrets set`](/developers/references/cli/commands/secrets-set)                             | Set one or more project secrets.                               |
| [`site deploy`](/developers/references/cli/commands/site-deploy)                             | Deploy built site files to Base44 hosting.                     |
| [`site open`](/developers/references/cli/commands/site-open)                                 | Open the deployed site in your browser.                        |
| [`types generate`](/developers/references/cli/commands/types-generate)                       | Generate TypeScript types from project resources.              |
| [`visibility`](/developers/references/cli/commands/visibility)                               | Set the app's visibility level.                                |
| [`whoami`](/developers/references/cli/commands/whoami)                                       | Display the current authenticated user.                        |
| [`workflows list`](/developers/references/cli/commands/workflows-list)                       | List this app's workflows.                                     |
| [`workflows runs`](/developers/references/cli/commands/workflows-runs)                       | List workflow runs for this app.                               |
| [`workspace get`](/developers/references/cli/commands/workspace-get)                         | Show details for a single workspace by ID.                     |
| [`workspace list`](/developers/references/cli/commands/workspace-list)                       | List the workspaces you belong to.                             |
| [`workspace move`](/developers/references/cli/commands/workspace-move)                       | Move an app to another workspace.                              |

## Command syntax

All Base44 CLI commands follow this general syntax:

```bash theme={null}
base44 <command> [subcommand] [flags]
```

Where:

* `<command>` is the primary action (for example, `login`, `create`, `entities`)
* `[subcommand]` is an optional secondary action (for example, `entities push`)
* `[flags]` are optional parameters that modify the command's behavior

Some flags are listed with both a short and a long form, like `-n, --limit <n>`. These are the same flag, not two different ones. Use whichever form you prefer.

## Global flags

The following flags are available for all commands:

| Flag            | Description                                    |
| --------------- | ---------------------------------------------- |
| `--help`        | Display help information for any command.      |
| `--version`     | Display the CLI version.                       |
| `--app-id <id>` | [Target a specific app](#select-a-target-app). |
| `--json`        | [Output the result as JSON](#json-output).     |

## Select a target app

When you work on a project locally, the CLI reads the target app from `base44/.app.jsonc` automatically. For day-to-day work, you don't need to do anything.

You can also target a different app explicitly when running commands that don't need a local project, like [`logs`](/developers/references/cli/commands/logs) and [`exec`](/developers/references/cli/commands/exec). For example, tail logs from a production app, or run a script against an app you built in the Base44 online app editor.

The [`sandbox`](/developers/app-code/local-development/bring-your-own-agent) commands are always in this group. They read and write files in the app's cloud environment rather than on your machine, so they never use a local project at all.

Commands that need a local project, like [`deploy`](/developers/references/cli/commands/deploy) and [`entities push`](/developers/references/cli/commands/entities-push), only work from inside one and always use the linked project's app.

You can specify the target app in three ways, in order of priority:

| Source                       | Description                                                                                                                          |
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| `--app-id <id>` flag         | Target a specific app. When set, the CLI ignores the project in the current directory and uses the project with this app id instead. |
| `BASE44_APP_ID` env variable | Same effect as the `--app-id` flag. Useful for CI, AI agents, and one-off shell sessions.                                            |
| `base44/.app.jsonc`          | The linked app of the local project, used when neither the `--app-id` flag nor the `BASE44_APP_ID` environment variable is set.      |

## Environment variables

The CLI reads these environment variables:

| Variable                   | Description                                                                                                     |
| -------------------------- | --------------------------------------------------------------------------------------------------------------- |
| `BASE44_APP_ID`            | Target a specific app, the same effect as the `--app-id` flag. See [Select a target app](#select-a-target-app). |
| `BASE44_DISABLE_TELEMETRY` | Set to `1` to turn off CLI telemetry and error reporting.                                                       |

## JSON output

Some commands, such as `workspace list`, `connectors list-available`, and `logs`, print plain text by default. Pass `--json` to return the result as JSON instead. This is useful when working with AI agents or scripts that need to parse the output.

With `--json`, stdout is a single JSON document. Status messages and logs go to stderr, so a script can read stdout without having to strip them out.

The `sandbox` commands are the exception. They always return JSON, with or without `--json`. The flag still matters there, though, since it's what keeps the interactive status line out of stdout.

```bash theme={null}
base44 logs --app-id <appId> --json
```

## Authentication requirements

Most commands require authentication. Use [`base44 login`](/developers/references/cli/commands/login) to authenticate before running commands like `create` or `entities push`.

Commands that don't require authentication:

* `login`
* `logout`
* `types generate`

## See also

* [CLI Overview](/developers/references/cli/get-started/overview): Introduction to the Base44 CLI
* [Quickstart - Backend only](/developers/backend/quickstart/templates/quickstart-backend-only): Create your first backend-only project
* [Quickstart - React](/developers/backend/quickstart/templates/quickstart-react-template): Build a full-stack React app
* [Start from an existing Base44 app](/developers/backend/overview/start-from-existing-app): Clone an existing project
