> ## 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.

> ## Agent Instructions
> Internal links on these pages omit the .md extension. Append .md to a docs page URL, or send an Accept: text/markdown header, to get that page as markdown.

# eject

> Clone an existing Base44 app into a separate local project

Clone an existing Base44 app into a separate local project. This command downloads the frontend code and backend resources from a selected app and creates a new project with its own app ID. Your original app stays in Base44 unchanged.

<Warning>
  The ejected project has an empty database. Your entity schemas are copied, but not your data. Your original Base44 app remains unchanged and the 2 projects are independent after ejection.
</Warning>

For a step-by-step guide, see [Start from an Existing Base44 App](/developers/backend/overview/start-from-existing-app).

## Usage

```bash theme={null}
base44 eject
```

The command guides you through an interactive flow:

1. Prompts you to select from your existing Base44 apps.
2. Downloads the frontend code from the selected app.
3. Downloads entity schemas and other backend resources, but not your data.
4. Creates a new backend project with a unique ID.
5. Sets up a local [project structure](/developers/backend/overview/project-structure) with all resources.

## Flags

| Flag | Description |
| - | - |
| `--app-id <id>` | App to eject. Skips the picker prompt. Required in non-interactive mode. |
| `-p, --path <path>` | Directory to write the project to. Required in non-interactive mode. |
| `-y, --yes` | Skip confirmation prompts. |

## Non-interactive usage

For scripts or CI environments, pass `--app-id` and `--path` to skip all prompts:

```bash theme={null}
base44 eject --app-id <your-app-id> --path ./my-ejected-app --yes
```

<Note>
  After ejecting, use [`base44 build`](/developers/references/cli/commands/build) to compile your frontend for deployment rather than running your build tool directly. The ejected project has a new app ID, and `base44 build` ensures it's injected into the compiled bundle.
</Note>

## See also

* [Start from an Existing Base44 App](/developers/backend/overview/start-from-existing-app): Clone an existing Base44 project
* [`build`](/developers/references/cli/commands/build): Build your frontend with the app ID injected
* [`create`](/developers/references/cli/commands/create): Start a new project from scratch
* [`scaffold`](/developers/references/cli/commands/scaffold): Set up local project files for an existing Base44 app
* [`link`](/developers/references/cli/commands/link): Connect local project files to Base44


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.