---
title: Build from a chat AI (no terminal)
description: Build and operate an app through a chat AI's Turn Zero tools, check the limits, and hand off work that needs a terminal.
slug: /getting-started/build-from-a-chat-ai
order: 12
visibility: public
redirects_from: [/getting-started/build-from-a-chat-ai-no-terminal]
---

# Build from a chat AI (no terminal)

Prompt: paste this into your AI coding tool.

> Build this app and put it online. I only have this chat.

A chat AI with a signed-in Turn Zero connection can deploy a small app and manage its services without running terminal commands. This page lists what its tools can do and when to ask a person with a terminal.

## What your AI tool does

Your AI coding tool writes the application, deploys files it can supply, and checks the running app through Turn Zero's tools. A terminal is needed for local builds and tests, and for deployments beyond the chat upload limits.

## What you need

Connect your chat AI, such as claude.ai, through [Connect your AI coding tool](/cloud/getting-started/connect-your-tool/). Complete sign-in in your browser. The connection must expose the tools for each product you use.

## Before your AI starts

Check your available tools and call `start` to read the account and applications your connection reaches. Follow the connected tool's approval rules, and ask the person for any decision their request leaves open.

Read the relevant guide and skill before changing an application. Use `read_documentation` if you cannot fetch a linked page, and follow its continuation until you have the text you need.

## Steps

### 1. Choose the capabilities you need

These tools work through the connection. Writing application code for a service is separate from calling a tool that configures or reads it.

| Capability | Tools and what you can do | Guide |
| --- | --- | --- |
| Connect the chat | The person adds the connector and signs in. Use `start` to check the connection. | [Connect your AI coding tool](/cloud/getting-started/connect-your-tool/) |
| Deploy application files | Use `create_application`, `submit_manifest`, `check_deploy`, and `deploy_files`. Read `read_status` and check routes with `request_route`. | [Deploy from a chat](/cloud/getting-started/build-an-app-from-a-chat/) |
| Use file storage | Use `declare_storage_area` and `list_storage_areas` to manage declarations. Write the app's file operations using the Storage package. Uploading a file from a computer needs the separate hand-off below. | [Store files](/cloud/guides/store-files/) |
| Use a database | Declare the database with `submit_manifest` and deploy its server and migrations through `deploy_files`. Use `query_database` for read-only SQL. | [Build a database-backed service without a shell](/cloud/getting-started/build-a-database-backed-service/#with-no-shell) |
| Run scheduled work | Declare a schedule and deploy its handler. Use `run_schedule` for a manual run and `read_schedules` to read its result. | [Add a scheduled job](/cloud/guides/add-a-scheduled-job/) |
| Read logs and counters | Use `read_status`, `read_logs`, and `read_counters`. Counters report the events your application's code records. | [Read logs and counters](/cloud/guides/read-logs-and-counters/) |
| Sign in the app's users | Declare the accounts service, add the Account package to the app, and use `read_realm` and `configure_realm` for sign-in settings. | [Add sign-in to your app](/cloud/guides/add-sign-in-to-your-app/) |
| Track issues with tzTrack | Use `tztrack_raise`, `tztrack_find`, `tztrack_read`, and the other issue tools to keep work across conversations. | [Set up tzTrack](https://turnzero.ai/tztrack/getting-started/set-up/) |
| Report a platform problem | Use `submit_feedback` with the problem and any error reference. Leave out personal details and secrets. | [submit_feedback](/cloud/reference/actions/submit-feedback/) |

### 2. Check whether the app fits

For deployment, follow [Deploy from a chat](/cloud/getting-started/build-an-app-from-a-chat/). Supply complete text, or binary bytes you actually hold as base64. A filename or a path on the person's computer does not give you the file's contents.

| Limit | What it means for a chat AI |
| --- | --- |
| Each supplied file | At most 512 KiB, counted in decoded bytes. Base64 does not raise the limit. |
| Complete deployment | At most 200 listed files and 4 MiB in total. Library files the platform fills count toward the byte total, but not the listed-file count. |
| Each JSON request | At most 4 MiB. Base64 increases the body size by about a third. Send contents in several calls and use the hashes returned in `kept` for the complete list. Deployment limits still apply. |
| File access | Send only contents your tools can read or produce. Do not truncate a file, invent binary bytes, or claim to read a local path you cannot access. |
| Builds and local tests | Without a shell, you cannot run them. Deployment checks cover configuration and source syntax, not all runtime behavior. |
| Production test data | Ask before writing test data to production unless the person explicitly approved that write. A request to build, deploy, or test alone does not approve it. |

Leave out `node_modules` and the Turn Zero library folders the platform fills. Read each required library entry with `read_library_entry` and use its returned version in the manifest. Cloud installs runtime dependencies; a project that needs a separate build must supply its built output.

### 3. Hand off work that needs a terminal

Ask a person with a terminal when a whole-folder deployment exceeds those limits, or the project needs local builds or tests. Explain the missing step and give the person the source files and application identifier.

For a local build or test, give the exact command defined by the project's `package.json` or its build instructions. Ask for the command's result; do not report that it passed before the person supplies it.

For a whole-folder deploy, follow [Deploy from your computer](/cloud/getting-started/deploy-an-application/). The person needs Node.js 24 or later, network access, and [computer authorization](/cloud/getting-started/connect-your-tool/#authorize-this-computer-for-deploys).

Call `check_deploy` for platform checks and resolve its refusals. A hosted chat connector omits the check command lines; do not ask the person to run a line the response lacks.

Call `deploy` to prepare the whole-folder command. Give the person its exact `command_npx` line, or `command_npx_windows` on Windows, to run from the application folder. This call prepares the command; the person runs it. The command checks and uploads that folder. Do not ask the person to paste a token into chat.

For uploading a file into storage, [An upload grant from your tool](/cloud/guides/store-files/#an-upload-grant-from-your-tool) explains the commands and their expiry. It requires a terminal that can read the file; a chat attachment alone does not perform that upload.

### 4. Verify what ran

Follow `read_status` until the deploy ends. Use `request_route` for the health path and the routes the person needs, and read logs when a check fails.

Where your host supports a browser, follow [Test sign-in with test end users](/cloud/guides/test-sign-in-with-test-end-users/). Otherwise, tell the person which browser checks remain. A healthy response alone does not prove sign-in or an AI answer works.

If a deployment response is lost, read status before retrying. A missing response does not establish that nothing started.

## Expected result

The application is deployed and the routes you checked respond as expected. Report its returned address and version, the checks you completed, and any work that still needs the person or a terminal.

## Refusals

| Refusal | Cause | Remedy |
| --- | --- | --- |
| `deploy_files_too_large` | The deployment exceeds a limit named by the refusal. | Use the terminal hand-off in [step 3](#3-hand-off-work-that-needs-a-terminal). |
| A required tool is absent | The chat may be signed out, or the product may be turned off. | Follow [Connect your AI coding tool](/cloud/getting-started/connect-your-tool/) to check sign-in and product selection. |

For other refusals, follow the named remedy in [Refusals](/cloud/reference/refusals/). Respect your host's tool restrictions.

## Related

- [Ways to deploy](/cloud/getting-started/ways-to-deploy/) compares the available deployment routes.
- [Deploy from a chat](/cloud/getting-started/build-an-app-from-a-chat/) gives the complete file deployment procedure.
- [What happens without asking](/cloud/concepts/what-happens-without-asking/) explains approval and production-data rules.
