Community Marketplace

chevron-rightRelevant source fileshashtag

The Community Marketplace enables users to discover, install, and publish reusable components including agents, recipes (workflows), LLM models, tools, plugins, and skills. Items published to the marketplace can be installed into any workspace, promoting sharing and collaboration across the platform. The marketplace implements an approval-based publishing workflow with install tracking, version management, and automatic dependency cloning.

This document covers the marketplace browsing UI, installation flow, publishing workflow, and backend architecture. For information about tool integration after installation, see Tools & Integrations. For recipe execution after installation, see Workflows & Recipes. For agent configuration after installation, see Agents.


System Architecture

The marketplace operates as a shared catalog layer that sits above workspace-level resources. Items exist in one of two ownership states: owner_type='marketplace' (shared, approved items) or owner_type='workspace' (private workspace items). When a user installs a marketplace item, the system clones it into their workspace with ownership transfer.

Data Model

spinner

Sources: orchestrator/api/marketplace.py:1-309, frontend/components/marketplace/marketplace-homepage.tsx:21-36

Key Database Fields

Field
Type
Purpose

owner_type

enum('marketplace', 'workspace')

Determines if item is shared or private

is_approved

boolean

Whether marketplace submission is approved

is_featured

boolean

Featured items shown on homepage

install_count

integer

Incremented on each installation

marketplace_category

string

Category for filtering (e.g., 'Personal Assistant', 'DevOps')

marketplace_icon

string

Icon/emoji for visual identification

cloned_from_id

integer

References original marketplace item

original_creator_id

integer

User who created the original item

version

string

Semantic version (e.g., '1.0.0')

Sources: orchestrator/api/marketplace.py:53-80, orchestrator/api/marketplace.py:510-535


Browsing & Discovery

Frontend Architecture

spinner

Sources: frontend/components/marketplace/marketplace-homepage.tsx:38-167, frontend/components/marketplace/marketplace-tools-tab.tsx:74-565

Each tab implements client-side and server-side filtering:

spinner

Example: Agent Category Filtering

The backend filters by marketplace_category:

Sources: frontend/components/marketplace/marketplace-agents-tab.tsx:26-39, orchestrator/api/marketplace.py:122-309

View Modes

Users can toggle between list (compact) and grid (detailed) views. The view mode preference is stored per-tab using the useViewMode hook with keys like 'mp-agents', 'mp-recipes', etc.

View Mode
Layout
Use Case

List

3-column grid, compact cards

Quick browsing, high density

Grid

4-column grid, detailed cards

Exploring features, visual comparison

Sources: frontend/components/marketplace/marketplace-agents-tab.tsx:86-237, frontend/hooks/use-view-mode.ts


Installing Items

Installation Flow

spinner

Sources: orchestrator/api/marketplace.py:468-581

Clone Operation Details

When installing an agent, the system performs the following:

  1. Field Cloning: All configuration fields are copied (name, description, agent_type, configuration, model_config, tags, status)

  2. Ownership Transfer:

    • owner_type'workspace'

    • owner_idworkspace_id

    • workspace_idctx.workspace_id

    • created_by_user_id → current user's database ID

  3. Tracking Fields:

    • cloned_from_id → marketplace agent ID

    • original_creator_id → preserved from marketplace agent

  4. Reset Fields:

    • is_approvedTrue (no re-approval needed in workspace)

    • is_featuredFalse

    • install_count0

  5. Relationship Copying: Skills are copied via relationship (cloned_agent.skills = marketplace_agent.skills)

Name Conflict Resolution:

Sources: orchestrator/api/marketplace.py:510-566

Recipe Installation with Dependency Handling

Recipe installation is more complex due to step-level agent dependencies:

spinner

The recipe installation endpoint attempts to auto-resolve agent dependencies by searching the marketplace for agents with matching names and automatically installing them.

Sources: frontend/components/marketplace/marketplace-recipes-tab.tsx:98-132, orchestrator/api/workflow_recipes.py


Publishing to Marketplace

Submission Flow

spinner

Sources: orchestrator/api/marketplace.py:699-871

Admin Role Check

Admin access is determined by email domain:

Corresponding frontend check:

Sources: orchestrator/api/marketplace.py:36-46, frontend/components/marketplace/marketplace-agents-tab.tsx:92-93

Submission Payload

Sources: orchestrator/api/marketplace.py:100-107

Trusted User Auto-Publish

The system supports auto-publishing for trusted users without requiring approval. This is implemented by checking a user-level is_trusted flag:

Sources: orchestrator/api/marketplace.py:699-871


Item Types

Agents

Marketplace agents are cloned from the agents table with owner_type='marketplace'. Each agent card displays:

  • Name & Icon: Agent name with category-based icon

  • Creator: original_creator_id mapped to user email

  • Category: marketplace_category (e.g., 'Personal Assistant', 'DevOps')

  • Tools Preview: First 5 assigned tools with logos (from agent_tool_assignments join)

  • Model Badge: Primary LLM model (e.g., 'gpt-4o', 'claude-3.5-sonnet')

  • Install Count: Total installations across all workspaces

Agent Detail Modal:

When viewing agent details, the system fetches extended information including:

  • Full LLM configuration (provider, model, temperature, max_tokens, context_window)

  • Assigned skills with descriptions

  • Assigned tools with Composio metadata (logos, descriptions)

  • Capabilities and recommended use cases

Sources: frontend/components/marketplace/marketplace-agents-tab.tsx:84-368, frontend/components/marketplace/marketplace-item-modal.tsx:26-338, orchestrator/api/marketplace.py:355-428

Recipes (Workflows)

Recipes display step count, unique agent count, and install metrics:

Recipe cards include:

  • Steps: Array of step definitions with agent assignments

  • Category: marketplace_category

  • Inputs/Outputs: Schema definitions

  • Execution Config: Error handling, timeouts, priorities

  • Schedule Config: Cron expressions for automation

Sources: frontend/components/marketplace/marketplace-recipes-tab.tsx:28-344, orchestrator/api/marketplace.py:430-461

Tools (Composio Apps)

The marketplace tools tab displays Composio apps from the cached metadata:

spinner

Unlike agents and recipes, tools are not cloned. Instead, the "Add to Workspace" button creates an entry in workspace_tools table marking the app as available for agent assignment.

Add to Workspace Flow:

Sources: frontend/components/marketplace/marketplace-tools-tab.tsx:74-565, orchestrator/api/tools.py

LLMs (OpenRouter Models)

The LLM marketplace tab displays models from the openrouter_models_cache table:

spinner

Capability Filters:

Users can filter by:

  • Tools: supports_tools=true (function calling)

  • Vision: supports_vision=true (image input)

  • Reasoning: supports_reasoning=true (chain-of-thought)

Sources: frontend/components/marketplace/marketplace-llms-tab.tsx:159-653, orchestrator/api/openrouter.py

Plugins (Capabilities)

Plugins represent pre-configured capability sets that can be assigned to agents. They are stored in the plugins table with owner_type='marketplace'.

Examples:

  • Code Analysis Plugin (code_review, security_scan)

  • Data Analysis Plugin (data_visualization, statistical_analysis)

  • Content Creation Plugin (copywriting, seo_optimization)

Sources: frontend/components/marketplace/marketplace-plugins-tab.tsx

Skills

Skills are reusable code modules stored in the skills table. Marketplace skills have owner_type='marketplace' and can be attached to agents via the agent_skills junction table.

Skill types include:

  • code_execution - Python/JavaScript code

  • api_integration - HTTP client wrappers

  • data_processing - ETL functions

  • custom - User-defined logic

Sources: frontend/components/marketplace/marketplace-skills-tab.tsx, orchestrator/core/models/core.py


Install Tracking & Analytics

Tracking Tables

spinner

Install Count Increment

Every successful installation increments the marketplace item's install_count:

This provides social proof metrics displayed on cards:

Sources: orchestrator/api/marketplace.py:551-565, frontend/components/marketplace/marketplace-agents-tab.tsx:145-149


Updates & Versioning

Version Comparison

The system tracks which version was installed and compares it to the latest marketplace version:

spinner

Update Response:

Sources: orchestrator/api/marketplace.py:645-696

Semantic Versioning

Version strings follow semantic versioning (e.g., "1.2.3"):

  • Major: Breaking changes (agent behavior fundamentally different)

  • Minor: New features (added tools, skills)

  • Patch: Bug fixes (prompt improvements, config tweaks)

When publishing updates to marketplace items, creators should increment the version appropriately.

Sources: orchestrator/api/marketplace.py:109-115


Multi-Tenancy & Ownership

Ownership Model

spinner

Query Filtering

All marketplace queries filter by owner_type='marketplace' and is_approved=True (unless admin):

Workspace queries filter by owner_type='workspace' and workspace_id:

This ensures complete isolation between workspaces while allowing shared marketplace visibility.

Sources: orchestrator/api/marketplace.py:154-157, orchestrator/api/marketplace.py:234-250


Featured items are curated by admins and displayed prominently:

Featured items appear:

  • On the marketplace homepage header

  • Sorted first in category listings

  • With a "Featured" badge in the UI

Sources: orchestrator/api/marketplace.py:587-638


API Reference

Endpoints

Method
Endpoint
Description

GET

/api/marketplace/items

List marketplace items with filters

GET

/api/marketplace/items/{id}

Get item detail with dependencies

POST

/api/marketplace/items/{id}/install

Clone item to workspace

GET

/api/marketplace/featured

Get featured items (homepage)

GET

/api/marketplace/updates

Check for updates to installed items

POST

/api/marketplace/items/submit

Submit workspace item to marketplace

POST

/api/marketplace/items/{id}/approve

Approve pending item (admin only)

DELETE

/api/marketplace/items/{id}

Delete marketplace item (admin only)

Query Parameters: /api/marketplace/items

Parameter
Type
Description

type

string

Filter by type: agent, recipe, skill, llm, tool

category

string

Filter by category (e.g., 'Personal Assistant')

search

string

Search by name or description

featured

boolean

Filter featured items only

limit

integer

Max results (1-100, default 50)

offset

integer

Pagination offset (default 0)

Response Models

MarketplaceItemOut:

InstallResponse:

Sources: orchestrator/api/marketplace.py:53-115


Frontend Components

Component Hierarchy

spinner

Key Hooks

Hook
Purpose

useMarketplaceItems({type, category, search})

Fetch marketplace items with filters

useInstallMarketplaceItem()

Install mutation with optimistic updates

useAvailableApps()

Fetch Composio apps from cache

useSyncToolsCache()

Admin: Sync Composio metadata (880+ apps)

useSyncOpenRouterCache()

Admin: Sync OpenRouter models (500+)

useViewMode(key)

Persist list/grid view preference

Sources: frontend/hooks/use-marketplace-api.ts, frontend/hooks/use-composio-api.ts, frontend/hooks/use-openrouter-api.ts


Stats & Metrics

The marketplace homepage displays aggregated statistics:

Stats are displayed in a StatsBar component with icons and labels.

Sources: frontend/components/marketplace/marketplace-homepage.tsx:54-70, frontend/components/shared/stats-bar.tsx


Seeding & Initial Data

The marketplace can be seeded with initial items using migration scripts:

Similar scripts exist for seeding:

  • Default agents (Personal Assistant, DevOps Agent, Data Analyst)

  • Starter recipes (Email Automation, Daily Digest, GitHub PR Review)

  • Popular Composio tools (cached via metadata sync)

Sources: orchestrator/scripts/seed_llm_marketplace.py:1-101


Last updated