# Build an app

> Describe a dashboard or internal tool and the author agent builds it on your live data.

Apps are live dashboards and internal tools built on your connected data: a revenue overview, a support queue, an approvals tool. Describe what you want and the author agent designs and builds it.

## Create the app

<Steps>
  <Step>
    Open **Apps** in the sidebar and click **New** (or pick **App** from the
    **New** menu on the Hub).
  </Step>
  <Step>
    Pick an app type: **Display only** to read and present data, or
    **Interactive** for buttons, forms, actions, and exports.
  </Step>
  <Step>
    Describe the app in as much detail as you can: what it shows, where the data
    comes from, and any actions people should be able to take. You can also
    click the microphone and dictate it.
  </Step>
  <Step>
    Confirm, pick a model, and click **Create app**. The author agent builds the
    first version; you can watch its progress in the chat panel.
  </Step>
</Steps>

<Callout type="tip">
  Name real sources. "A dashboard of open Stripe disputes with a button to post
  each one to #payments" beats "a payments dashboard."
</Callout>

## Refine it

<Steps>
  <Step>
    Use the chat panel next to the app to ask for changes: new charts, different
    filters, another data source, layout tweaks.
  </Step>
  <Step>Connect any accounts the app needs from the **Integrations** tab.</Step>
</Steps>

<Callout type="tip">
  Apps are versioned. Open **Versions** from the app menu to roll back, or
  **Make a copy** to fork one and experiment safely.
</Callout>

## Share and audit

<Steps>
  <Step>
    Click **Private** in the app header to open sharing and give teammates
    access. They use the app directly, no setup on their side.
  </Step>
  <Step>
    The **Requests** tab logs every data read and action the app performs, so
    you can audit exactly what it did.
  </Step>
</Steps>

<Callout type="note">
  An app's data access runs through its owner's connected accounts. Share
  accordingly: everyone you share with sees what the app can see.
</Callout>