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

# Marketplace

> Browse and install agents, skills, MCP servers, bases, themes, and apps. One place for every reusable building block on OpenSail.

<img src="https://mintcdn.com/tesslate/VT6tbZolrCfpx26M/images/opensail-banner.png?fit=max&auto=format&n=VT6tbZolrCfpx26M&q=85&s=66579c47537b3464fb65b229cc9ab0fd" alt="Tesslate OpenSail" width="4712" height="1612" data-path="images/opensail-banner.png" />

## One marketplace, six item types

The OpenSail marketplace is where the community and Tesslate publish every reusable thing on the platform. Six categories, one discovery surface, one install flow.

<CardGroup cols={3}>
  <Card title="Agents" icon="robot">
    Configured agent personalities with a system prompt, a tool subset, attached skills, and a preferred model.
  </Card>

  <Card title="Skills" icon="graduation-cap">
    Reusable capabilities (review checklists, writing styles, deployment playbooks) that attach to any agent.
  </Card>

  <Card title="MCP servers" icon="plug">
    Model Context Protocol integrations for Slack, Gmail, Linear, GitHub, Notion, and hundreds more.
  </Card>

  <Card title="Bases" icon="layer-group">
    Starter project templates (Next.js 16, Vite+FastAPI, Expo, Go APIs, full-stack CRMs).
  </Card>

  <Card title="Themes" icon="palette">
    Color, typography, spacing, and animation presets for the Studio UI and your projects.
  </Card>

  <Card title="Apps" icon="box-archive">
    Versioned, immutable, installable bundles built from a workspace. Install and you get a running copy.
  </Card>
</CardGroup>

## Agents vs apps

This is the most common source of confusion.

An **agent** is a long-running persona. It lives inside your OpenSail instance. You can reconfigure it, attach new skills, change its model, and run it against any project. Installing an agent adds it to your library, not to a specific project.

An **app** is an immutable, manifest-described bundle produced by freezing a workspace. Installing an app creates a new project with the same code, the same containers, the same graph, and the same permissions as the creator's source workspace. Every install is isolated. Apps are versioned (`AppVersion`) and the marketplace lists the latest approved version.

|                | Agent                        | App                                   |
| -------------- | ---------------------------- | ------------------------------------- |
| **Lifecycle**  | Long-running, reconfigurable | Install creates a new project         |
| **Mutability** | Editable in your library     | Immutable per version                 |
| **Scope**      | Any project you open         | One project per install               |
| **Versioning** | Updated by the creator       | Semver per `AppVersion`               |
| **Provenance** | None                         | `forked_from` tracks fork trees       |
| **Approval**   | Optional moderation          | Staged pipeline before public listing |

## Browsing

<Steps>
  <Step title="Open the marketplace">
    Click **Marketplace** in the sidebar. The home view shows featured and category carousels for agents, bases, skills, and MCP servers.
  </Step>

  <Step title="Filter">
    Use the Browse route (`/marketplace/browse/:type`) for a paginated list with server-side filtering. Search by keyword, sort by popularity or recency, filter by author or tag.
  </Step>

  <Step title="Inspect">
    Every listing has a detail page with description, reviews, author profile, install button, and (for apps) a fork modal if the creator allows forking.
  </Step>

  <Step title="Install">
    One click installs into your library. For apps, the install saga provisions a new project from the app's volume template. For agents, skills, MCP servers, bases, and themes, the item lands in your library and is available project-wide.
  </Step>
</Steps>

## Installing

Install flows differ by item type.

<AccordionGroup>
  <Accordion icon="robot" title="Agents">
    Instant. The agent lands in `/library?tab=agents`. Configure name, icon, model, compaction model, context window, and thinking effort. Enable for a project by picking it in the chat agent selector.
  </Accordion>

  <Accordion icon="graduation-cap" title="Skills">
    Instant. Skills land in `/library?tab=skills`. Attach to any agent via `AgentSkillAssignment` or enable project-wide via the skills panel.
  </Accordion>

  <Accordion icon="plug" title="MCP servers">
    Requires OAuth for most servers. After OAuth, env vars are stored encrypted in `UserMcpConfig`. Attach to an agent via `AgentMcpAssignment`. Tool schemas are cached for 5 minutes and refresh on OAuth or server update.
  </Accordion>

  <Accordion icon="layer-group" title="Bases">
    Used at project creation time. Pick a base in the Create Project wizard; the orchestrator clones the repo and seeds the workspace.
  </Accordion>

  <Accordion icon="palette" title="Themes">
    Instant. Themes land in `/library?tab=themes`. Activate globally via Preferences or per-project via the theme picker.
  </Accordion>

  <Accordion icon="box-archive" title="Apps">
    Runs through an install saga (`AppInstallAttempt` tracks every step for idempotency). Creates a new project, provisions the volume from the app's CAS bundle, and applies the manifest graph. Per-user billing dimensions (`AI compute`, `general compute`, `platform fee`) apply according to the creator's configuration.
  </Accordion>
</AccordionGroup>

## Apps: publish, install, fork

Apps are the platform's distribution unit. Every app is a versioned, immutable bundle that started life as a workspace.

**Publish** The creator runs through the publish wizard. The orchestrator freezes the workspace volume into a content-addressed bundle, builds an `AppVersion` with a manifest, and submits it to the approval pipeline. Private and team-only apps skip the public listing gate.

**Approval pipeline** Public apps go through four stages: automated security scan (overbroad OAuth scopes, leaked secrets, dependency vulns), sandbox evaluation (synthetic inputs on a cheap model), human reviewer sign-off, and final publish. Each stage records individual `SubmissionCheck` results. Creators can appeal yanks.

**Install** Every install creates a new project with its own volume, containers, and permissions. The wallet mix determines who pays for what (AI compute, general compute, platform fee), configured per-dimension (creator-pays, installer-pays, BYOK, platform-subsidized, promotional).

**Fork** If the creator allows forking, anyone can fork an app. Fork creates a new workspace with full source access and a `forked_from` provenance link. The marketplace shows fork trees.

**Bundles** An `AppBundle` groups multiple apps into a starter pack ("Lawyer Starter Pack" installs 10 apps with consolidated OAuth consent and a dashboard app at the center).

## Official vs community

Tesslate publishes official agents, skills, bases, and themes. Community creators publish theirs under the same flow. Both are subject to the same approval process for public listing. Creator reputation (tracked in `AdminCreatorReputationPage`) gates distribution privileges at the edges.

## Creator tools

If you want to publish, the Creator Studio (`/creator`) gives you:

* **Drafts** Unpublished versions you are iterating on
* **Submissions** Items in the approval pipeline with per-stage status
* **Analytics** Installs, runs, revenue
* **Billing** Your creator wallet and ledger

<Info>
  Apps have their own publishing guide covering manifests, wallet mix, and approval. See [Publishing Apps](/guides/publishing-apps).
</Info>

## Related

<CardGroup cols={2}>
  <Card title="Publishing apps" icon="box-archive" href="/guides/publishing-apps">
    Freeze a workspace into an immutable bundle.
  </Card>

  <Card title="Agents" icon="robot" href="/guides/agents">
    The agent runner that marketplace agents configure.
  </Card>

  <Card title="Skills" icon="graduation-cap" href="/guides/skills">
    How skills attach to agents.
  </Card>

  <Card title="MCP connectors" icon="plug" href="/guides/connectors-mcp">
    Installing and authenticating MCP servers.
  </Card>
</CardGroup>
