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

> **You are reading the v2.x docs (engine modules). New projects use v3.** [Read this page in v3](/capabilities/build/apps/overview) · [Migrate from 2.x to 3.0](/capabilities/upgrade/migrate-to-3)

# 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 module the engine loads. 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 the apps once. Restart it after adding or removing an app folder.
- **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.
- **Static files.** An app is the files of its folder, served by Nexus. A module needs no Python code for it.

## Surfaces that ship with ABI

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

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

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