# Building with the agent (https://docs.fuser.studio/docs/apps/building)

You build an app by talking to it. The composer at the bottom of focus mode is
where every change starts — the first build and every refinement after.

## The composer [#the-composer]

Type what you want, then click  **Generate** — or press .

![The focus-mode composer with a prompt ready to generate](/app-node-composer.png)

Before the first build, the placeholder reads &#x2A;*"Describe what to build or
change…"** and a few **starter prompts*&#x2A; appear above it — click one to drop it
into the composer. Once your app exists, the placeholder shifts to &#x2A;*"Ask to
change…"**: from then on, every prompt edits the running app rather than starting
from scratch.

Good prompts are specific about behavior and look. After the first build, keep
them incremental — describe one change at a time and let the app grow.

### Craft [#craft]

Not sure how to phrase something? Click  **Craft** and the agent rewrites your rough prompt into a richer,
more detailed one before you send it. If you preferred your original wording,
**Restore prompt** puts it back.

## Generation activity [#generation-activity]

When a build is running, the chat panel streams a live transcript of what the
agent is doing — planning, writing code, then deploying a preview. A status line
and progress indicator show the current step, often with an estimate of how long
the preview will take.

![A live build with an activity feed and a Stop button](/app-node-activity-feed.png)

A  **Stop** button
cancels the run in progress. Stopping is safe — your previous working version
stays intact.

### Status: Draft, Changes, Live [#status-draft-changes-live]

A small pill on the node and in focus mode tells you where the app stands:

* **Draft** — never published.
* **Changes** — published, but the current version differs from what's live.
* **Live** — published and matching what's deployed.

This pill is read-only here; it's driven by what you do on the
[Publishing](https://docs.fuser.studio/docs/apps/publishing.md) page.

## Fix a runtime error in one click [#fix-a-runtime-error-in-one-click]

If the running app throws an error, a **Fix runtime error** banner appears in the
composer with a short summary. Click it and the agent loads a repair prompt
describing the error, so you can send it straight back for a fix instead of
debugging by hand.

## Optional details [#optional-details]

Sometimes the agent needs a bit more context to build the right thing. Rather
than guess, it raises an **Optional details** card over the preview — a short
questionnaire with a mix of fields (text, single- or multiple-choice, or a media
picker).

Answer anything that's useful and leave the rest. Two buttons sit at the bottom:

* **Use defaults** — skip the questions and let the agent build with sensible
  assumptions.
* **Build** — submit your answers and start the build.

If you don't interact, the card accepts its defaults automatically after a few
seconds and proceeds — so a questionnaire never blocks you.

> [!NOTE] Answering is always optional
>
> The card exists to improve the result, not to gate it. Skipping it (or letting it time out) always produces a working app you can refine afterward.

## What's next [#whats-next]

  - [Generation models](https://docs.fuser.studio/docs/apps/models.md): Choose between Free, Efficient, Balanced, and Best — and tune creativity.

  - [Editing your app](https://docs.fuser.studio/docs/apps/editing.md): Go beyond prompting: edit content, design, media, and code directly.

  - [Connecting inputs](https://docs.fuser.studio/docs/apps/inputs.md): Feed images, references, and data into the agent through sockets.