An application built with an AI agent is brought onto the platform by that same agent; there is no upload in the browser.
What you need
- An account at app.application-platform.com/register with an organization, see Create your first project.
- The ap CLI. Install it from the terminal with
curl -fsSL https://www.application-platform.com/install.sh | sh(Windows, in PowerShell:irm https://www.application-platform.com/install.ps1 | iex); the setup app ships it as well. - Node.js version 18 or newer, checked with
node --version; if it is missing, the Developer setup of the setup app installs it. - Claude Code, Cursor, or Codex.
- A supported tech stack, see below.
Open a terminal
You type the next commands into a terminal, in Cursor and VS Code via Terminal → New Terminal.
Install the agent plugin and sign in
npx --yes github:doppelt-digital/application-platform-plugin
The installer detects the installed agents, places skills and MCP configuration with them, and opens the browser for signing in; afterwards ap whoami shows your account.
If ap is not found, the ap CLI is missing; if no browser opens, type ap login. Finally, reload Cursor via “Reload Window” and restart Claude Code or Codex.
Paste the prompt
Open the project folder in the agent, in Cursor via File → Open Folder, for Claude Code or Codex via cd in the terminal and claude or codex, and paste this prompt:
You are importing an existing local project into the Application Platform.
Prerequisites – otherwise stop immediately and say what is missing:
- Application Platform account
- MCP server "application-platform" connected (signed in via the ap CLI)
Only these stacks are allowed:
- app: Flutter, React Native (Expo), Next.js, native iOS, native Android
- homepage: Hugo, Astro
- backend: NestJS, FastAPI, Laravel
- package only when unambiguous: Dart package, Docker image, NPM, Go, PyPI, Terraform module/provider, VS Code plugin
If a framework is not in that list (Django, Vue, Express, Symfony, Svelte, Spring, …): STOP.
Say clearly: "[name] is not in the wizard today (even if it is on the roadmap)."
Do not suggest a similar stack. Do not stretch the mapping.
Use the MCP tool platform_projects_import_local with the path of this folder and a project name. It creates the project, waits until setup is ready, clones the repositories into the workspace, overlays the local files, and pushes to main.
If that tool is missing: platform_projects_demo_json, platform_projects_create, platform_watch, platform_projects_clone, then copy the files over and push.
If create, import, or watch fails, report the error. Do not work around it with your own git clone or git remote add.
Do not overwrite generated CI or environment files. Put your own values in the custom environment files.
Do not commit secrets.
The short version is the slash command /import-existing-project that comes with the plugin.
What the agent does
The agent confirms the path, asks for the project name, and calls platform_projects_import_local, which detects the tech stacks, creates the project, waits for repositories and pipelines, clones them, lays your files over them, and pushes everything to main; .gitlab-ci.yml and env/*.generated.env are kept.
From now on you work in ~/Documents/application-platform/<organization>/<project>/ with one subfolder per repository plus local-configuration; the old folder is not connected to the platform.
If the agent reports that you are not signed in or that the MCP server is missing, When something does not work helps.
If your stack is not supported
Supported are apps with Flutter, React Native (Expo), Next.js, native iOS, and native Android, homepages with Hugo and Astro, backends with NestJS, FastAPI, and Laravel, and unambiguous packages such as an npm package, a Dart package, or a Docker image.
For other frameworks the agent stops and does not create a project with a different stack; report a missing stack on the feedback page.
The CLI command ap platform projects import-local for developers is described in Import an existing repository.
Continue with Set up your computer or work in the browser.