Arc
ComponentsBlocksDocsPricingTry the demo
Get Pro
Introduction
Installation
Theming
Motion
AI and MCP
Changelog
Metrics dashboardPro
KPI drilldownPro
Metric explorerPro
Revenue explorerPro
MRR waterfallPro
Cohort retentionPro
Usage forecastPro
Journey flowPro
Uptime statusNewPro
Choropleth explorerPro
Connected scatterPro
Horizon chartPro
Account healthNewPro
Market terminalPro
Budget variancePro
Small multiplesPro
Line replayPro
AI chatPro
AI composerPro
AI answerPro
Model pickerPro
Model arenaPro
Prompt studioPro
Document extractionPro
Agent memoryPro
AI side panelPro
Research runPro
AI insight cardNewPro
Catch upNewPro
AI feature launchNewPro
AI search barNewPro
AI setup wizardNewPro
Call insightsNewPro
Lead scoringNewPro
Agent runPro
Agent tasksPro
Agent approvalsPro
Agent routinesPro
Agent orchestratorPro
MCP serversPro
Knowledge basePro
Eval suitePro
Agent builderNewPro
Agent galleryNewPro
SidebarPro4
Page header
Command palette
Notification center
Selection toolbarPro
Empty states
Search resultsPro
Login and sign up5, free and Pro variants
Onboarding illustrationPro
OTP input
Multi-step formPro
Two-factor setupNewPro
Magic linkNewPro
Settings pagePro
Settings commandPro
Security settingsPro
Billing overviewPro
Usage billingPro
Cancel flowPro
Onboarding surveyNewPro
Spend alertNewPro
Team membersPro
Invite peoplePro
Team directoryPro
Roles and permissionsPro
Profile pageNewPro
API keysPro
WebhooksPro
IntegrationsPro
Environment variablesPro
Domain verifyNewPro
Webhook testerNewPro
Plan comparison
Pricing calculatorPro
Usage pricingPro
Cart drawerPro
Checkout summaryPro
Live checkoutPro
Seat managerNewPro
Credit top-upNewPro
Invoice studioPro
Wallet cardPro
Delivery trackerPro
Product listingPro
Product detailPro
Activity feedNewPro
Inbox triagePro
Support conversationPro
Support widgetPro
Help centerPro
Feature votingNewPro
File upload
Media playerPro
Week calendarPro
Availability pickerPro
Project boardPro
Release readinessPro
Kanban boardPro
Smart schedulerNewPro
Task breakdownNewPro
Goal trackerNewPro
Hero section
Hero signupPro
Scroll storyPro
Spotlight gridPro
Feature bentoPro
Comparison table
Logo marquee
Studio perspectivesPro
Stats band
Changelog feed
FAQ section
Contact section
Team showcasePro
Blog grid
Site header
Site footer
CTA section
Newsletter signup
Activity terrainPro
Revenue globePro
Customer galaxyPro
Semantic zoomPro
Layout morphPro
Exploded viewPro
What’s new74 new
BlocksAgent gallery

Agent gallery

Pro

A marketplace card of AI agent templates where you filter by team, search by agent or app, preview a sample run and install an agent inline: choose a workspace, grant access app by app, and the card confirms with a check.

Live block · sample data

When to use

  • An agents or integrations page where people browse and install ready made AI agents.
  • Onboarding that suggests agent templates by team and installs one without leaving the page.
  • A marketplace teaser on a dashboard or settings page.

When not to use

  • Configuring a single agent's prompt, tools or schedule: use a settings form or agent routines.
  • Showing a running agent's progress: use agent status or tool call.
  • Catalogs with hundreds of items that need pagination, sorting and facets: use a full page table or list.

Installation

Pro source and install commands unlock with a Pro plan.

Usage

Drop <AgentGallery /> onto an agents or integrations page. With no props it shows 20 sample agents and simulates installs. To wire it up, pass `agents` (name, job, category, apps with mark and scope, model, rating, installs, optional three-step preview), `workspaces`, and an async `onInstall(agent, workspace, signal)`. If it rejects, the card shows "Could not connect" with Try again. The signal aborts on Cancel, Escape or unmount. Category, query and installed each work controlled or uncontrolled (`category`/`onCategoryChange`, `query`/`onQueryChange`, `installed`/`onInstalledChange`). `onOpen` opens an installed agent and `onPreview` is there for analytics.

example.tsx
1import { AgentGallery } from "@/components/arc/blocks/agent-gallery/agent-gallery";2 3// Sample catalog with simulated installs4<AgentGallery />5 6// Real installs7<AgentGallery8  agents={templates}9  workspaces={[{ id: "acme", name: "Acme", detail: "Business · 48 seats" }]}10  installed={installedIds}11  onInstalledChange={setInstalledIds}12  onInstall={async (agent, workspace, signal) => {13    const res = await fetch("/api/agents/install", {14      method: "POST",15      body: JSON.stringify({ agent: agent.id, workspace: workspace.id }),16      signal,17    });18    if (!res.ok) throw new Error("The workspace admin must approve this app.");19  }}20  onOpen={agent => router.push(`/agents/${agent.id}`)}21/>
Built fromButton

API reference

AgentGallery

A card that lists AI agent templates by team, with search, a sample run preview and an inline install flow (choose workspace, grant access per app, installed). With no props it shows 20 sample agents and simulates installs.

PropTypeDefaultDescription
agentsAgentTemplate[]defaultAgentsThe catalog. Each agent has an id, name, one line job, category, apps (name, mark, scope), model (name, mark), rating, installs and an optional three step preview.
categoriesstring[]["Sales", "Support", "Engineering", "Marketing", "Ops"]Filter chips, in order. Agents show under the chip that matches their category.
categorystring–The selected category. Pair with onCategoryChange.
defaultCategorystringcategories[0]The first selected category when uncontrolled.
onCategoryChange(category: string) => void–Called when a chip is chosen, including from the empty state's "Show in" button.
querystring–The search text. Pair with onQueryChange. Matches name, job, app names and model within the selected category.
defaultQuerystring""The first search text when uncontrolled.
onQueryChange(query: string) => void–Called on every search edit and when search is cleared.
workspacesAgentWorkspace[]defaultWorkspacesWorkspaces offered on the first install step ({ id, name, detail? }). With a single workspace that step is skipped.
installedstring[]–Ids of installed agents. Installed cards show a check and offer Open instead of Install. Pair with onInstalledChange.
defaultInstalledstring[][]Installed ids when uncontrolled.
onInstalledChange(installed: string[]) => void–Called with the new list after an install completes.
onInstall(agent, workspace, signal: AbortSignal) => Promise<void>–Runs the real install after the person grants access. Reject to show the error state with Try again. The signal aborts on Cancel, Escape or when the card leaves the list. Leave it out to simulate a 1.2s install.
onPreview(agent: AgentTemplate) => void–Called when a card opens its sample run, for analytics.
onOpen(agent: AgentTemplate) => void–Opens an installed agent, for example its settings page.
titlestring"Agent templates"Heading of the card.
descriptionstring–One line under the heading. Pass an empty string to hide it.
classNamestring–Extra class on the root section.

Keyboard interactions

Tab
Moves through search, the selected chip and each card's actions. Focus inside a card reveals Preview and Install.
Arrow keys
Move between team chips, and between workspaces on the first install step.
HomeorEnd
Jump to the first or last team chip.
Escape
In search, clears the text. Inside an install or preview, returns the card to its summary; while connecting, cancels the install.
EnterorSpace
Activates the focused chip, workspace or button.

Accessibility

  • The root is a labelled section; chips are a radiogroup with a roving tab stop, and workspaces are a second radiogroup.
  • Each card is an article named after the agent. App marks are hidden from assistive tech and replaced by a sentence ("Connects to HubSpot, Slack and Gmail"); rating and installs are read as full words.
  • After every step change made by the person, focus moves to the new step's main control, so keyboard users never fall back to the page. A leaving step is inert.
  • A polite live region announces result counts, connect progress, errors and the installed result; without onInstall it adds "Simulated, nothing was connected".
  • Status is never color alone: connected apps show a check, errors show an icon with "Could not connect", installed cards show a check with "Installed".

Motion

  • Filtering: removed cards fade out in 90ms and pop out of flow; remaining cards glide to their new cells on a critically damped spring (0.3s, no bounce), and the grid's height springs to the new row count.
  • The chip highlight slides between chips on a 0.24s spring with no bounce. Text never animates layout.
  • Card steps crossfade in place inside a fixed 176px card (out 100ms, in 160ms with 2px rise), so nothing changes size between states.
  • Granting access connects apps one by one (340ms apart): a spinner, then a check that scales in without overshoot. The install button keeps its width while loading.
  • Hover reveal of Preview and Install is a 160ms opacity and 2px rise. Touch screens show them permanently.
  • Reduced motion keeps every end state and feedback but drops travel, staggers and the layout glide.

Responsive behavior

  • Uses container queries: two columns from 600px of card width, one column below. The header stacks the search under the title below 560px.
  • Team chips scroll sideways inside their row on narrow screens; the page never scrolls horizontally. Tested at 360px, 390px and desktop.
  • On touch screens Preview and Install stay visible since there is no hover.

Performance

  • Filtering is a memoized pass over the catalog; only visible cards render.
  • Height animation reads one ResizeObserver; resizes jump instead of animating.
  • No timers run while idle; the connect sequence uses abortable timeouts cleared on cancel or unmount.

Notes for AI

Give your coding assistant the Markdown reference instead of screenshots.

  • Pass real marks as ReactNode (inline SVG at 16px). Mono marks should draw with currentColor so they follow the theme.
  • Keep job lines to one sentence of about 60 characters; the card reserves two lines and clamps the rest.
  • Each app's scope is the plain language permission shown on the grant step. Keep it short and honest ("Draft email for your review").
  • The card is a fixed height so the grid never jitters: preview shows the first three steps, the grant step fits three apps, and more than two workspaces scroll inside the step.
  • onInstall should throw an Error with a short message; it is announced to screen readers after "could not be installed".
/components/blocks/agent-gallery/markdown

The full library index for assistants is at /llms.txt.

Related

Agent statusProComponentA compact live status pill for a running AI agent: the agent's mark in a live ring, the current activity and an elapsed timer, opening into the steps so far.Tool callProComponentA tool call row for agent transcripts: the tool's mark and the call in plain words, a live state while it runs, and the input and output a click away, with approval and retry when needed.Model pickerProBlockA model picker in one quiet pill: open it to choose from featured models with a one line note each, set the reasoning effort, or browse every other model by provider, and the pill swaps to your choice in place.Agent routinesProBlockScheduled agents in one card: each routine reads as a sentence with its schedule, next run countdown, connectors and destination, and opens smoothly to edit or run it now.Agent approvalsProBlockOne approval card for agents: the waiting tool call reads like a permission prompt with the tool's mark, the agent's reason and its arguments, and you approve, deny or allow it from now on.
PreviousCatch upNextAI feature launch
Arc · 129 block pagesllms.txt

On this page

  • Preview
  • When to use
  • When not to use
  • Installation
  • Usage
  • API reference
  • Keyboard
  • Accessibility
  • Motion
  • Responsive behavior
  • Performance
  • Notes for AI
  • Related
View as Markdown

Agent templates

Ready made agents that work in the tools your team already uses.

  • Connects to HubSpot, Slack and Gmail.Runs on Claude Sonnet 5.5

    Lead qualifier

    Scores inbound demo requests and routes hot leads to the right rep.

    4.918.2kRated 4.9 out of 5, 18,200 installs.
  • Connects to Google Calendar, HubSpot and Notion.Runs on GPT-6.1 Sol

    Meeting prep

    Briefs the account owner 30 minutes before every customer call.

    4.811.7kRated 4.8 out of 5, 11,700 installs.
  • Connects to Gmail and HubSpot.Runs on Claude Haiku 5.5

    Follow-up writer

    Drafts a recap with next steps as soon as each call ends.

    4.79.4kRated 4.7 out of 5, 9,400 installs.
  • Connects to Stripe, HubSpot and Slack.Runs on Gemini 4 Argon

    Renewal watch

    Flags accounts with falling usage 60 days before renewal.

    4.65.1kRated 4.6 out of 5, 5,100 installs.