---
question: Is an app a Nexus screen or a module folder?
kind: overview
---

# Apps

An app is UI that a module ships to Nexus: a folder `apps/<name>/` with a `manifest.json` and, most often, an `index.html`. Apps are discovered, not imported: the Nexus API reads the `apps/` folder of every loaded module, plus the apps of running remote modules. Each workspace then turns the apps it wants on.

<!-- matrix -->

## Key concepts

- **Manifest.** `manifest.json` is the app's catalog entry: `name`, `description`, `category`, `url`, `icon_emoji` or `avatar_url`. A `url` of `html:index.html` serves that page from the folder.
- **App id.** `module.path:folder`, for example `my_module:review`. Workspace settings, the REST API and the workspace seed in `config.yaml` all use it.
- **On or off per workspace.** An app is off in a workspace until it is turned on, in Settings › Apps or through `PATCH /api/apps/{workspace_id}/{app_id}`. The workspace's `apps:` seed in `config.yaml` turns apps on: at each boot it writes an enabled setting for every listed app that has none. It never turns one off.
- **One catalog per process.** The API reads in-engine apps once. Restart it after adding or removing an app folder. A remote module's apps are listed while the module runs.
- **The app builder.** Apps › File › New App writes a static app with the Apps agent. **Submit** opens a branch in the module repository: nothing goes live until it is merged.
- **Backends.** A remote module binds a server for its app with `self.expose_app("<name>", app)`. An in-engine app is static files.

## Surfaces that ship with ABI

These rows of the table are guides, not tasks. They describe the surfaces ABI itself ships:

- [Nexus](/user-guide/build/applications/nexus): the web app. Chat, the graph, files, settings, and the apps above.
- [REST API](/user-guide/build/applications/api): the engine's agents, workflows and pipelines over HTTP, and the Nexus API under `/api`.
- [MCP server](/user-guide/build/applications/mcp-server): the engine's agents as tools for MCP clients.
- [Dagster (legacy)](/user-guide/build/applications/dagster): the scheduler of projects without NATS, removed in the next major.

Installing a Marketplace module adds its apps to the catalog: see [Install from the marketplace](/user-guide/build/modules/marketplace/marketplace-install).
