Browsing & Installing Items
This document describes the user interface and API flow for browsing, searching, filtering, and installing items from the Community Marketplace. It covers the multi-tab browsing experience, item detail views, and the installation process that clones marketplace items into a user's workspace.
For information about publishing items to the marketplace, see Publishing to Marketplace. For the backend database schema and approval workflow, see Marketplace Backend.
Marketplace Interface Overview
The marketplace provides a unified browsing experience for six item types: Applications (Composio tools), Agents, Recipes, LLMs, Capabilities (plugins), and Skills. The interface is organized around a tabbed layout with shared search, category filtering, and view mode controls.
Sources: frontend/components/marketplace/marketplace-homepage.tsx:38-167
Browsing Items by Type
Tab Organization
The marketplace uses a six-tab layout accessible via TabsList with the following item types:
Tools
Applications
type=tool
880+ Composio app integrations
Agents
Agents
type=agent
Pre-built AI agents with skills & tools
Recipes
Recipes
type=recipe
Multi-step workflows
LLMs
LLMs
type=llm
400+ LLM models from OpenRouter
Plugins
Capabilities
N/A
Plugin content for agents
Skills
Skills
N/A
Reusable skill functions
Each tab component independently fetches and displays items using the shared filtering API pattern.
Sources: frontend/components/marketplace/marketplace-homepage.tsx:118-127
View Modes
All tabs support two view modes controlled by ViewToggle:
List View - Compact horizontal cards (3 columns)
Grid View - Detailed vertical cards (4 columns)
View mode preference is persisted per tab using the useViewMode hook with keys like 'mp-tools', 'mp-agents', etc.
Sources: frontend/components/marketplace/marketplace-tools-tab.tsx:78, frontend/components/marketplace/marketplace-agents-tab.tsx:86
Searching and Filtering
Search Implementation
The SearchInput component at the top of the marketplace provides real-time search across all tabs:
Implementation varies by tab:
Tools Tab: Search query passed to backend API (
/api/tools/marketplace?search=X)Agents/Recipes Tabs: Client-side filtering on fetched items
LLMs Tab: Search query sent to OpenRouter cache API
Sources: frontend/components/marketplace/marketplace-homepage.tsx:40, frontend/components/marketplace/marketplace-tools-tab.tsx:216-224
Category Filtering
Each tab implements category-specific filters:
Tools Tab - Dynamic Categories
Categories are fetched from the backend API and displayed as horizontal scrolling buttons:
When a category is selected, the backend API is re-queried with category=X parameter:
Sources: frontend/components/marketplace/marketplace-tools-tab.tsx:92-106, frontend/components/marketplace/marketplace-tools-tab.tsx:114-143
Agents Tab - Fixed Categories
Predefined categories matching persona system:
Personal Assistant
UserCircle
General assistant tasks
Customer Support
Headphones
Customer service automation
DevOps
Terminal
Infrastructure management
Data Analysis
BarChart3
Analytics and reporting
E-commerce
ShoppingBag
Online store operations
...
...
10 total categories
Sources: frontend/components/marketplace/marketplace-agents-tab.tsx:27-39
Recipes Tab - Simple Type Filter
Three filter options:
All Recipes - No type filter
Simple - Single-step or basic workflows
Complex - Multi-agent, multi-step workflows
Sources: frontend/components/marketplace/marketplace-recipes-tab.tsx:30, frontend/components/marketplace/marketplace-recipes-tab.tsx:138-174
LLMs Tab - Multi-Dimensional Filtering
The LLM marketplace provides the most sophisticated filtering with:
Provider Filter - Dynamic chips built from cached model counts
Category Dropdown - Fast, Balanced, Premium, Coding, etc.
Tier Dropdown - Free, Budget, Mid-range, Premium
Capability Toggles - Tools, Vision, Reasoning
Sort Options - Popularity, Cost, Context, Newest, Name
Sources: frontend/components/marketplace/marketplace-llms-tab.tsx:166-177, frontend/components/marketplace/marketplace-llms-tab.tsx:434-519
Pagination
Tools Tab Pagination
The Tools tab implements client-side pagination with 40 items per page using EnhancedPagination:
The pagination component renders page controls and automatically resets to page 1 when filters change.
Sources: frontend/components/marketplace/marketplace-tools-tab.tsx:85-87, frontend/components/marketplace/marketplace-tools-tab.tsx:233-251, frontend/components/marketplace/marketplace-tools-tab.tsx:524-530
Item Display
Card Components
Each item type uses a consistent card structure with type-specific metadata:
Agent Card Metadata
Agent name and creator
Category badge
Model name (truncated)
Tool logos (first 5 with +N overflow)
Install count
Sources: frontend/components/marketplace/marketplace-agents-tab.tsx:196-236, frontend/components/marketplace/marketplace-agents-tab.tsx:238-357
Recipe Card Metadata
Recipe name and creator
Steps count
Unique agents count
Install count
Category badge
Sources: frontend/components/marketplace/marketplace-recipes-tab.tsx:198-238, frontend/components/marketplace/marketplace-recipes-tab.tsx:240-326
Tool Card Metadata
App logo from Composio
Display name and provider
Tools count (actions)
Triggers count
Categories (first 2)
Auth schemes (OAuth2, API Key, etc.)
"Added" badge if in workspace
Sources: frontend/components/marketplace/marketplace-tools-tab.tsx:607-709
Item Detail View
Detail Modal Architecture
Clicking an item opens MarketplaceItemModal, which fetches full item details from /api/marketplace/items/{id}:
Detail Response Structure
The backend returns MarketplaceItemDetail with extended fields:
Agent Details Include:
Full description
LLM model configuration (provider, model_id, temperature, max_tokens, context_window)
Model capabilities badges
Assigned skills with descriptions
Assigned tools with Composio logos and descriptions
Recipe Details Include:
Full description
Steps with agent assignments
Required tools list
Recommended agents
Execution configuration
Sources: orchestrator/api/marketplace.py:82-87, orchestrator/api/marketplace.py:355-428, orchestrator/api/marketplace.py:430-461
Tool Detail Modal
For Composio apps, a separate MarketplaceAppDetailsModal shows:
App name, description, categories
Available actions (tools) list
Trigger events list
Auth schemes
Installation instructions
Sources: frontend/components/marketplace/marketplace-tools-tab.tsx:556-563
Installing Items
Installation Flow
The installation process clones marketplace items into the user's workspace with ownership swap:
Sources: orchestrator/api/marketplace.py:468-580
Installation Code Details
The cloning logic in POST /api/marketplace/items/{item_id}/install:
Sources: orchestrator/api/marketplace.py:502-542
Tool Installation (Composio Apps)
Composio app installation uses a different endpoint:
This creates a WorkspaceTool record with status='added'. The user must then connect OAuth credentials via the Tools dashboard to activate the app.
Sources: frontend/components/marketplace/marketplace-tools-tab.tsx:253-306
Recipe Installation
Recipe installation uses a dedicated hook useInstallRecipeFromMarketplace which:
Clones the recipe with ownership swap
Attempts to resolve agent dependencies from marketplace
Returns warnings for missing dependencies
Sources: frontend/components/marketplace/marketplace-recipes-tab.tsx:39, frontend/components/marketplace/marketplace-recipes-tab.tsx:98-132
Backend API Reference
List Marketplace Items
Query Logic:
When
typeis specified, queries single table with limit/offsetWhen
type=None, fetches from multiple tables, sorts by install count, then applies global pagination
Sources: orchestrator/api/marketplace.py:122-309
Get Item Details
Sources: orchestrator/api/marketplace.py:315-353
Install Item
Side Effects:
Creates workspace-owned clone of item
Increments
install_counton marketplace itemRecords installation in
marketplace_installstableCopies skill relationships for agents
Sources: orchestrator/api/marketplace.py:468-580
Frontend Hooks
useMarketplaceItems
React Query hook for fetching marketplace items:
Sources: frontend/components/marketplace/marketplace-agents-tab.tsx:96-101
useInstallMarketplaceItem
Mutation hook for installing items:
Sources: frontend/components/marketplace/marketplace-agents-tab.tsx:104
useAvailableApps (Composio Tools)
Hook for fetching Composio apps from DB cache:
This returns apps from /api/tools/marketplace which queries the composio_apps_cache table for fast response times.
Sources: frontend/components/marketplace/marketplace-tools-tab.tsx:108-148
Performance Optimizations
Tools Tab - DB Cache Strategy
The Tools tab avoids the 48+ API calls per page load by using a cached database table:
This eliminates the need to call Composio SDK for every marketplace page load.
Sources: frontend/components/marketplace/marketplace-tools-tab.tsx:110-143
LLMs Tab - OpenRouter Cache
Similar caching strategy for LLM models using openrouter_model_cache table:
Sources: frontend/components/marketplace/marketplace-llms-tab.tsx:203-286
Client-Side Filtering
Agents and Recipes tabs fetch all matching items once, then apply filters client-side for instant feedback:
Sources: frontend/components/marketplace/marketplace-tools-tab.tsx:212-230
Admin Features
Admins see additional controls in the marketplace:
Pending Badge - Unapproved items show yellow "Pending" badge
Approve Button - In dropdown menu for pending items
Delete Button - Remove items from marketplace
Sync Cache Button - For Tools and LLMs tabs to refresh cached data
Admin status is determined by checking if email contains 'automatos.app':
Sources: frontend/components/marketplace/marketplace-agents-tab.tsx:93, frontend/components/marketplace/marketplace-tools-tab.tsx:76, frontend/components/marketplace/marketplace-tools-tab.tsx:398-409
Last updated

