← Back to all apps

AppDeploy

Productivityby FreeBraavos LTD.
Launched Apr 20, 2026 on ChatGPT

AppDeploy lets you create and publish real web apps directly from a ChatGPT conversation. Describe what you want, and AppDeploy turns it into a live public app.

Go far beyond static landing pages and websites. With AppDeploy, you can build and deploy dashboards, internal tools, collaborative workspaces, games, AI apps, and full web apps.

Built-in app features include:

  • Hosting and public links
  • User authentication and databases
  • File uploads and storage
  • Secure secrets management
  • Real-time updates and notifications
  • Custom domains
  • AI capabilities and scheduled jobs

Ship and iterate with confidence. AppDeploy helps you test, improve, and republish your app with automated QA, visual bug reports, version history, source code access, and rollbacks.

Zero setup required. No Git, command line, IDE, hosting provider, or infrastructure setup. Just chat and publish.

20ChatGPT Tools
FreeBraavos LTD.Developer
ProductivityCategory

Available Tools

Apply a former app version

apply_app_version
Full Description

Start deploying an existing app at a specific version. Use the 'version' value (not 'name') from get_app_versions. Returns true if accepted and deployment started; use get_app_status to observe completion.

Parameters (2 required)
Required
app_idstring

Target app id

versionstring

Version id to apply

Configure a custom domain

configure_custom_domain
Full Description

Use this when you need to manage a custom domain for an existing app, including adding a hostname, verifying DNS, or deleting it.

Parameters (3 required, 1 optional)
Required
actionstring

Lifecycle action to perform for this custom domain

Options:addverifydelete
app_idstring

Target app id

domainstring

Hostname to add, verify, or delete

Optional
dns_modestring

Required only when action is add

Options:subdomain_cnameapex_address

Create a secret entry link

create_secret_entry
Full Description

Create a one-time pre-authorized browser link so the user can submit a backend secret value outside chat without an extra login step. The returned secret_entry_url should be opened in a new tab. In terminal or CLI clients, present the full raw URL in plain text instead of a markdown link label.

Parameters (1 required, 1 optional)
Required
secret_namestring

Secret name in uppercase env-style format, for example STRIPE_API_KEY.

Optional
app_idstring

Optional existing app id. Omit this when preparing secrets for a brand-new app before deploy_app.

Delete app

delete_app
Full Description

Use this when you want to permanently delete an app. Use only on explicit user request. This is irreversible; after deletion, status checks will return not found.

Parameters (1 required)
Required
app_idstring

Target app id

Delete app secrets

delete_app_secrets
Full Description

Delete one or more backend secret names from an existing app. Missing names are ignored.

Parameters (2 required)
Required
app_idstring

Target app id

secret_namesarray

Secret names to delete from the app. Missing names are ignored.

Deploy app

deploy_app
Full Description

Use this when the user asks to deploy or publish a website or web app and wants a public URL. If the user plans to provide large resources later (images/PDF/media/fonts), include resource_requirements with stable target_path placeholders so the widget can request exact files and uploads can resolve those paths. For each resource_requirements slot, ensure type resolution via accept and/or target_path extension so widget placeholders map to the right file type. If user-attached files are intended as resources, do not stream them as base64 in files[]; have the user upload them via the widget Resources flow. If the user attaches a file in chat and asks to use it in the app, treat that file as a widget resource: define deploy_app.resource_requirements, reference the target_path placeholder in code, and use the Resources upload flow. Do not encode or inline the attachment as base64 in deploy_app.files[]. When setting resource_requirements.name, keep labels faithful to user wording and do not invent terms. Do not use components names from the template. Every deploy_app call must include non-empty 'model' and 'intent'. Before generating files or calling this tool, you must call get_deploy_instructions and follow its constraints. After deploy_app starts, keep polling get_app_status every 5 seconds in the same turn until terminal status. Do not hand status polling back to the user. If get_app_status returns QA/e2e/runtime errors, attempt automatic fixes and redeploy up to 3 times before asking the user for guidance.

Parameters (2 required, 9 optional)
Required
app_namestring

short display name

app_typestring

app architecture: frontend-only or frontend+backend

Options:frontend-onlyfrontend+backend
Optional
app_idstring

MANDATORY: existing app id to update, or null for new app

deletePathsarray

Paths to delete. ONLY for updates (app_id required). Cannot delete package.json or framework entry points.

descriptionstring

short description of what the app does

filesarray

Files to write. NEW APPS: only custom files + diffs to template files. UPDATES: only changed files using diffs[]. At least one of files[] or deletePaths[] required.

frontend_templatestring

REQUIRED when app_id is null. One of: 'html-static' (simple sites), 'react-vite' (SPAs, games), 'nextjs-static' (multi-page). Template files auto-included.

intentstring

MANDATORY: The intent of this deployment. User-initiated examples: 'initial app deploy', 'bugfix - ui is too noisy'. Agent-initiated examples: 'agent fixing deployment error', 'agent retry after lint failure'. If no specific intent was given use 'app deploy'.

modelstring

MANDATORY: The coding agent model used for this deployment, to the best of your knowledge. Examples: 'codex-5.3', 'gpt-5.5', 'opus 4.6', 'claude-sonnet-4-5', 'gemini-2.5-pro'. If no specific model name is available use 'chat'.

resource_requirementsarray

Optional widget resource slot definitions for ChatGPT web/Claude web uploads. Use when user will provide large resources (images/PDF/media/fonts) after code generation, and reference each target_path in code as a placeholder.

secret_entry_idsarray

Optional one-time secret entry ids to bind during a new-app deploy. Allowed only when app_id is omitted. For existing apps, use set_app_secrets instead.

Get app status

get_app_status
Full Description

Use this when deploy_app returns, when checking deployment status, or when the app has errors or is not working as expected. Returns deployment status, e2e test status, QA snapshot, and frontend/backend error logs; treat deployed_and_testing status as non-final, always inspect QA/errors, and call get_e2e_qa_run_details if e2e tests fail.

Parameters (1 required, 2 optional)
Required
app_idstring

Target app id

Optional
limitinteger

Optional shared cap for returned logs across frontend and backend combined. Defaults to 50 when omitted.

sinceinteger

Optional timestamp in epoch milliseconds to filter errors. When provided, returns only errors since that timestamp.

Get app template

get_app_template
Full Description

Use this when you need the base app template and SDK types after selecting an app type and frontend template. Requires calling get_deploy_instructions first.

Parameters (2 required)
Required
app_typestring
Options:frontend-onlyfrontend+backend
frontend_templatestring

Frontend framework: 'html-static' - Simple sites, minimal framework; 'react-vite' - React SPAs, dashboards, games; 'nextjs-static' - Multi-page apps, SSG

Options:html-staticreact-vitenextjs-static

Get available app versions

get_app_versions
Full Description

Use this when you need to list available deployable versions for an existing app. Returns newest-first items with name, version, and timestamp; display the name to users and convert timestamps to local time.

Parameters (1 required)
Required
app_idstring

Target app id

Get AppDeploy SDK reference

get_appdeploy_sdk_reference
Full Description

Use this when you need the authoritative @appdeploy/sdk API reference (types and examples) before writing backend persistence code such as counters, CRUD, file uploads, or configuration storage in backend/index.ts.

List user's apps

get_apps
Full Description

Use this when you need to list apps owned by the current user. Response also includes a link to the user's web dashboard showing all apps with their details and configurations.

Parameters (0 required, 1 optional)
Optional
continuation_tokenstring

Token for pagination

Get custom domain instructions

get_custom_domain_instructions
Full Description

Use this when you need setup guidance or to check the current custom domain status for an app. Returns configured hostnames, DNS instructions, stage proxy targets, fallback IPv4 addresses, and next steps.

Parameters (1 required)
Required
app_idstring

Target app id

Get deploy instructions

get_deploy_instructions
Full Description

Use this when you are about to call deploy_app in order to get the deployment constraints and hard rules. You must call this tool before starting to generate any code. This tool returns instructions only and does not deploy anything.

Get deploy status

get_deploy_status
Full Description

Use this when the user explicitly asks to re-check the deployment status of an app after calling deploy_app, or when the widget is unavailable. Requires the app_id of an existing deployment.

Parameters (1 required)
Required
deploymentIdstring

Get failed e2e QA run details

get_e2e_qa_run_details
Full Description

Use this when investigating a failed e2e QA run right after get_app_status reports e2e_tests.status='failed'. Returns the QA transcript, structured results, trace and replay URLs, and debugging keys_prefix.

Parameters (1 required, 2 optional)
Required
app_idstring

Target app id

Optional
job_idstring

Optional QA job id to inspect

qa_run_group_idstring

Optional QA run-group id from get_app_status

Get errors

get_errors
Full Description

Use this when the user asks to check for deployment errors, debug issues, or view frontend or backend runtime error logs for a deployed app, or reports that the app is not working as expected. Requires the app_id of an existing deployment; optional parameters may be used to fetch errors newer than a given timestamp.

Parameters (1 required, 2 optional)
Required
app_idstring
Optional
limitinteger
sinceinteger

Get secret entry status

get_secret_entry_status
Full Description

Poll the lifecycle state of a one-time secret entry link after the user opens the browser page and submits the value.

Parameters (1 required)
Required
secret_entry_idstring

Opaque one-time secret entry id.

List app secret names

list_app_secrets
Full Description

List backend secret names currently configured for an existing app. Values are never returned.

Parameters (1 required)
Required
app_idstring

Target app id

Bind submitted secrets to an app

set_app_secrets
Full Description

Attach one or more submitted secret entry ids to an existing app. Reusing a secret name replaces the stored value for that app.

Parameters (2 required)
Required
app_idstring

Target app id

secret_entry_idsarray

Submitted secret entry ids to bind to this existing app. Each entry contributes one secret name/value.

List snapshot files

src_glob
Full Description

Use this when you need to discover files in an app's source snapshot. Returns file paths matching a glob pattern (no content). Useful for exploring project structure before reading or searching files.

Parameters (1 required, 5 optional)
Required
app_idstring

Target app id

Optional
continuation_tokenstring

Token from previous response for pagination

globstring

Glob pattern to match files (default: **/*)

Default: **/*
include_dirsboolean

Include directory paths in results

Default: False
pathstring

Directory path to search within

versionstring

Version to inspect (defaults to applied version)

Search snapshot file contents

src_grep
Full Description

Use this when you need to search for patterns in an app's source code. Returns matching lines with optional context. Supports regex patterns, glob filters, and multiple output modes.

Parameters (2 required, 11 optional)
Required
app_idstring

Target app id

patternstring

Regex pattern to search for (max 500 chars)

Optional
after_contextinteger

Lines to show after each match (0-20)

Default: 0
before_contextinteger

Lines to show before each match (0-20)

Default: 0
case_insensitiveboolean

Enable case-insensitive matching

Default: False
contextinteger

Lines before and after (overrides before/after_context)

continuation_tokenstring

Token from previous response for pagination

globstring

Glob pattern to filter files (e.g., '*.ts')

line_numbersboolean

Include line numbers in output

Default: True
max_file_sizeinteger

Max file size to scan in bytes (default 10MB)

output_modestring

content=matching lines, files_with_matches=file paths only, count=match count per file

Options:contentfiles_with_matchescount
Default: content
pathstring

Directory path to search within

versionstring

Version to search (defaults to applied version)

Read snapshot file

src_read
Full Description

Use this when you need to read a specific file from an app's source snapshot. Returns file content with line-based pagination (offset/limit). Handles both text and binary files.

Parameters (2 required, 3 optional)
Required
app_idstring

Target app id

file_pathstring

Path to the file to read

Optional
limitinteger

Number of lines to return (max 2000)

Default: 200
offsetinteger

Line offset to start reading from (0-indexed)

Default: 0
versionstring

Version to read from (defaults to applied version)

Upload app assets

upload_assets
Full Description

Widget-only helper for ChatGPT web and Claude web. Creates a one-time upload URL for large binary resources (images/PDF/media/fonts) and binds that upload to this session's widget resource channel.

Parameters (0 required, 5 optional)
Optional
app_idstring

Optional app id for widget resource uploads. When provided, resource bindings are isolated to this app.

recovered_scope_app_idstring

Optional recovered widget scope app id. Used only when app_id is omitted.

require_app_scopeboolean

Optional widget guard flag. When true, upload_assets fails if app scope cannot be resolved for this resource replacement.

resolve_upload_idstring

Optional widget resolve mode. When provided with app_id in widget mode, upload_assets resolves widget resources immediately for that existing app instead of creating a new upload ticket.

widget_modeboolean

Optional widget mode flag. Set true when this call is made by the deployment widget resource uploader.