> ## Documentation Index
> Fetch the complete documentation index at: https://developers.reintersect.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Apps, versions and installs

> The objects Reintersect keeps for your app: the app record, its versions and its installs.

> Reintersect apps are in developer preview. Names and limits can still change before general
> release.

## App

An app is the code you write plus a record in **Settings → Developer → Apps**. Any member of a
workspace can create apps, on every plan. The record holds:

* The app's name, slug, icon and description. The slug is unique across Reintersect and appears in
  hosted URLs (`<slug>.reintersect.app`) and agent tool names.
* A client ID and client secret. The secret is shown once; your server uses the pair to get install
  tokens. Rotating it stops the old secret at once.
* A signing secret that signs every delivery. See [Webhooks and security](/webhooks-and-security).
* Environment variables for the preview and production environments. See
  [Environment and config](/concepts/env-and-config).
* Claimed link domains, trusted GitHub repositories and install redirect URIs.
* Its versions, installs, recent deliveries and, for hosted apps, runtime logs.

`reintersect dev` creates a personal development app the first time you run it, so you can start
without visiting the dashboard. Archiving an app suspends every install and stops its events; hosted
apps are taken down.

### Distribution

| Distribution | Who can install it |
| - | - |
| Private (default) | Only the workspace that owns the app. |
| Install link | Any workspace whose admin opens the app's install link and approves it. Reference patterns go live there only for [verified domains](/references/domain-verification). |

There is no public directory of apps.

## Version

Every deploy, manifest sync and `reintersect dev` run that changes something creates an immutable
version, numbered from 1. A version records the manifest Reintersect derives from your code (blocks,
actions, references, events, commands, message actions, scopes, outbound hosts, claimed domains, environment
variable names and the MCP server) and, for hosted apps, the bundle.

You never write the manifest by hand. `reintersect dev`, `reintersect deploy` and the
[GitHub Action](/ci) compute it from the exported app. See [Manifest](/reference/manifest).

| Status | Meaning |
| - | - |
| Preview | Deployed with `--preview`, or by a pull request. Runs only on development installs that pick it. |
| Published | The production version. One per app. |
| Superseded | A previous published version. You can roll back to it. |

See [Previews and versions](/hosting/previews).

## Install

An install connects one version of an app to one workspace. There are two kinds:

| Kind | Who creates it | Who can use it |
| - | - | - |
| Development | `reintersect dev`, or "Just me" on the install page, for the app's developer | That member only, in the workspace that owns the app |
| Workspace | A workspace owner or admin, after reviewing the consent screen | Every member, in the circles the app can [reach](/concepts/install-and-consent#reach) |

An app has at most one workspace install per workspace and one development install per member.

| Status | Meaning |
| - | - |
| Active | Running. |
| Waiting for approval | A newer version needs more access; the install keeps running its current version. |
| Suspended | Stopped by an admin, or because the app was archived. |
| Removed | Uninstalled. |

Each workspace install has its own install config and its own install tokens, which last one hour.
Your app keeps at most the install id; see [Client](/reference/client#authentication).

## The app as an author

Replies, notifications and blocks your app creates are attributed to the app, with its name and
icon. Blocks also carry a quiet "via \<app name>" line. When an action runs because a member clicked
a button, your code receives the member as `actor` and makes its own authorization decisions with
that identity.

## What runs where

| Thing | Who stores it | Who runs it |
| - | - | - |
| Block props, state, viewer picks and rendered trees | Reintersect | Your render and action code produce them |
| Reference core fields and custom cards | Reintersect, one record per workspace | Your `resolve` function |
| Install config | Reintersect, sent with every delivery | Your code reads it as `config` |
| Install tokens | Nobody long-term: minted per hour | The SDK mints them with your client credentials, or Reintersect's gateway adds them for hosted apps |
| Environment secrets | Reintersect, encrypted | Your code reads them as `Secret` values |
| Your own data | You | Your code |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.