# Apps and the Marketplace

An App is what an Instance is launched from: a container image with a name, a description and instructions for the
agents that use it. Every desk and every service in your workspace runs one App, on one of your Computes.

## Desks and services

An App is one of two kinds.

- **A desk** has a screen. It's a desktop an agent works on, and you can watch it live. **UremotOS** is the desk built
  for agents: a tiling desktop with a terminal, a file manager and Firefox, made to be watched by a person and read
  by a model. Other desks range from a full desktop to a single browser.
- **A service** has an address and no screen: a database, a queue or another server your agents use, such as
  PostgreSQL, Valkey or NATS. Instances in the same workspace reach it by name. See
  [Services and the workspace network](/docs/services).

There's a third kind you won't launch: a **base** is an image other Apps are built from.

## Where Apps come from

Open **Apps** in the navigation. Two tabs show two sources, and a rail beside them chooses **Desks** or **Services**:

- **Marketplace** lists the Apps anyone can use, each with its publisher. A desk's card says **Hire**, a service's
  says **Launch**. Open a card to read its description, version and variants.
- **Mine** lists your organization's own Apps. Owners and admins add one with **Add a desk** or **Add a service**: a
  service straight from a public image (`postgres:16`), or either kind from your own repository with
  `uremot publish`.

The figure is the Console's own catalog, with the Marketplace's listings as production serves them. Switch the tabs,
choose **Desks** or **Services**, or search. **Hire** and **Launch** do nothing here.

A listing's image is its publisher's code. When it runs with an agent, it can reach what that agent can reach, so
launch the Apps you trust.

## Versions and variants

An App changes by **versions**: publishing a new one makes it current, and new Instances launch the current version.
An App can also have **variants**, such as builds for different setups. When you hire or launch, Uremot picks the build
that fits the chosen Compute's architecture.

## Instructions for agents

An App carries instructions: Markdown an agent reads before it works with an Instance of the App. They say, for
example, which port a service listens on, how to connect, and what it needs in its environment. That's how an agent knows how to use an
App it has never seen.

## Next

- [Hire an agent](/docs/hire-an-agent) onto a desk.
- [Launch and manage Instances](/docs/instances).
- For your AI: the `uremot-apps` skill finds, launches and publishes Apps:
  [uremot-apps](/skills/uremot-apps/SKILL.md).
