Real product UI captures for design reference, competitor analysis, and coding agents.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Generate a complete build prompt for a coding agent: ordered screens with notes, observed transitions, full-resolution image URLs, the measured design guide, and an implementation checklist. This is the same prompt as the "Use in agent" button on the site. Reference IDs: use `{product}-onboarding` for a product's signup flow, `{product}-collection` for all their screens, or any single screen id (like `linear-marketing-pricing`). Use this when you want to build UI that follows a real product's patterns. The prompt includes everything an agent needs: screenshots to reference, design tokens to match, and implementation steps to follow.
e.g. linear-onboarding, stripe-collection or vercel-marketing-pricing.
What you want to build. Goes at the top of the prompt.
Preferred stack, e.g. Next.js and Tailwind.
Comma-separated screen ids to keep. Omit to include every screen in the reference.
Include the observed design guide. Set false to use your project's own design system.
Tool list last changed Oct 23, 2026.
Generate a complete build prompt for a coding agent: ordered screens with notes, observed transitions, full-resolution image URLs, the measured design guide, and an implementation checklist. This is the same prompt as the "Use in agent" button on the site. Reference IDs: use `{product}-onboarding` for a product's signup flow, `{product}-collection` for all their screens, or any single screen id (like `linear-marketing-pricing`). Use this when you want to build UI that follows a real product's patterns. The prompt includes everything an agent needs: screenshots to reference, design tokens to match, and implementation steps to follow.
| Argument | Type | Description |
|---|---|---|
| goal | string | What you want to build. Goes at the top of the prompt. |
| stack | string | Preferred stack, e.g. Next.js and Tailwind. |
| screens | string | Comma-separated screen ids to keep. Omit to include every screen in the reference. |
| referenceId* | string | e.g. linear-onboarding, stripe-collection or vercel-marketing-pricing. |
| includeDesign | boolean | Include the observed design guide. Set false to use your project's own design system. |
{
"type": "object",
"required": [
"referenceId"
],
"properties": {
"goal": {
"type": "string",
"description": "What you want to build. Goes at the top of the prompt."
},
"stack": {
"type": "string",
"description": "Preferred stack, e.g. Next.js and Tailwind."
},
"screens": {
"type": "string",
"description": "Comma-separated screen ids to keep. Omit to include every screen in the reference."
},
"referenceId": {
"type": "string",
"description": "e.g. linear-onboarding, stripe-collection or vercel-marketing-pricing."
},
"includeDesign": {
"type": "boolean",
"default": true,
"description": "Include the observed design guide. Set false to use your project's own design system."
}
},
"additionalProperties": false
}Combine specific screens from different products, plus one visual style, into a single build brief. Each screen contributes one thing (say what with "id: what to take"); structure comes from the screens and every visual token comes from the chosen style, so conflicting looks are resolved instead of mixed. Returns the brief as Markdown with the screenshots attached. When the screens contain interactive components (modals, tabs, toggles, toasts, forms), the brief also lists matching entries from the motion library to fetch with getMotion. Use this when the user wants, say, Linear's issue composer, Vercel's pricing layout and Notion's visual language in one screen. Find screen ids with searchScreens or findRelatedScreens first. For one product's whole flow or collection, use buildHandoff instead.
| Argument | Type | Description |
|---|---|---|
| goal | string | What you want to build. Goes at the top of the brief. |
| stack | string | Preferred stack, e.g. Next.js and Tailwind. |
| style | string | Product id whose measured visual language to use, e.g. linear or stripe. Omit to use the project's own design system. |
| screens* | array | 1 to 6 screen ids, each optionally followed by ": what to take from it", e.g. ["linear-product-new-issue: issue composer modal", "vercel-marketing-pricing: plan cards and FAQ"]. |
| styleNotes | string | Extra visual direction in words, e.g. "our brand green #1a7f37, rounded corners". Used on its own when style is omitted. |
Compare the user's UI structure against Screenrove's catalog of real products. Describe what the user has (screen type, sections, flow steps, plan count) and get a report showing the closest real-world references with factual comparisons. Use only the fields the user provides; leave out personal names, pricing, or customer data. The report includes step counts, section counts, observed actions, and factual comparisons— not recommendations. Use this when the user wants to validate their UI against real products, understand if their flow has more or fewer steps than competitors, or see how similar screens are structured.
| Argument | Type | Description |
|---|---|---|
| kind | string | Only compare with this kind of capture. |
| limit | number | How many references to return, 1 to 5. |
| product | string | Only compare with this product id. |
| flowType | string | What the flow does, so step counts are only compared with flows of the same kind. Inferred from screenType when omitted. |
| sections | array | Page sections top to bottom, e.g. ["Hero", "Plan cards", "FAQ"]. |
| flowSteps | array | For a multi-screen flow, each step's title in order, e.g. ["Sign up", "Verify email", "Create workspace"]. |
| planCount |
Compare two captured screens side by side: layout structure, page sections, observed actions, dimensions, screen types, and design guide differences. Returns a structured comparison with similarities, differences, and factual observations. Use this when the user wants to understand how two products approach the same problem differently—e.g. comparing Linear's pricing page with Stripe's pricing page, or Vercel's onboarding with Notion's onboarding. You can also compare one screen against a target description to see how close a reference matches what the user is trying to build.
| Argument | Type | Description |
|---|---|---|
| focus | string | What aspects to emphasize in the comparison. |
| screenA* | string | First screen id to compare, e.g. linear-marketing-pricing. |
| screenB | string | Second screen id to compare. If omitted, provide targetDescription instead. |
| targetDescription | string | Instead of screenB, describe what you're building to see how screenA matches, e.g. "Pricing page with 3 tiers and a feature comparison table". |
{
"type": "object",
"required": [
"screenA"
],
"properties": {
"focus": {
"enum": [
"layout",
"sections",
"actions",
"dimensions",
"typography",
"all"
],
"type": "string",
"default": "all",
"description": "What aspects to emphasize in the comparison."
},
"screenA": {
"type": "string",
"description": "First screen id to compare, e.g. linear-marketing-pricing."
},
"screenB": {
"type": "string",
"description": "Second screen id to compare. If omitted, provide targetDescription instead."
},
"targetDescription": {
"type": "string",
"description": "Instead of screenB, describe what you're building to see how screenA matches, e.g. \"Pricing page with 3 tiers and a feature comparison table\"."
}
},
"additionalProperties": false
}Find screens from other products that solve the same design problem as this one: same primary pattern first, then shared tasks, states and components (rarer tags count more). At most two per product. Each result says why it matched. Use this after finding one good reference, to show the user how other products handle the same screen, e.g. other empty project lists, other pricing pages with a comparison table, or other create-issue modals.
| Argument | Type | Description |
|---|---|---|
| kind | string | Only return this kind of screen. |
| limit | number | Maximum results, 1 to 20. |
| screenId* | string | Screen id from searchScreens or getProduct, e.g. linear-signup. |
| sameProduct | boolean | Also include screens from the same product. |
{
"type": "object",
"required": [
"screenId"
],
"properties": {
"kind": {
"enum": [
"flow",
"marketing",
"product"
],
"type": "string",
"description": "Only return this kind of screen."
},
"limit": {
"type": "number",
"default": 6,
"description": "Maximum results, 1 to 20."
},
"screenId": {
"type": "string",
"description": "Screen id from searchScreens or getProduct, e.g. linear-signup."
},
"sameProduct": {
"type": "boolean",
"default": false,
"description": "Also include screens from the same product."
}
},
"additionalProperties": false
}Get the measured design guide for a product: observed font families, color palette, type scale, layout patterns, spacing values, and component observations. Marketing site and product UI are measured separately. Use this when you want to match a competitor's design system, understand their visual language, or borrow their typography and color choices for your own project.
| Argument | Type | Description |
|---|---|---|
| context | string | Which surface to return. Omit for both. |
| productId* | string | Product id from listProducts, e.g. linear, stripe or airbnb. |
{
"type": "object",
"required": [
"productId"
],
"properties": {
"context": {
"enum": [
"marketing",
"product"
],
"type": "string",
"description": "Which surface to return. Omit for both."
},
"productId": {
"type": "string",
"description": "Product id from listProducts, e.g. linear, stripe or airbnb."
}
},
"additionalProperties": false
}Get the complete onboarding flow for a product: every step in order with titles, notes on what happens, observed transitions (button labels and where they lead), and which steps are alternate branches. Includes the handoff reference id to use with buildHandoff. Use this to study how a competitor structures their signup and onboarding, what information they collect at each step, and how they guide users to activation.
| Argument | Type | Description |
|---|---|---|
| productId* | string | Product id from listProducts, e.g. linear, stripe or airbnb. |
{
"type": "object",
"required": [
"productId"
],
"properties": {
"productId": {
"type": "string",
"description": "Product id from listProducts, e.g. linear, stripe or airbnb."
}
},
"additionalProperties": false
}Get one motion entry as a build prompt: what moves and how (every property, duration, easing curve or spring, delay and trigger), why it feels good, what a rebuild must keep, Screenrove's working vanilla HTML/CSS/JS implementation, and the original source code when its license allows. Values are marked as exact (from code) or approximate (measured from a recording). Use the numbers as given and translate the code to the project's stack.
| Argument | Type | Description |
|---|---|---|
| code | string | Which code to include - both, vanilla (Screenrove rebuild), original (source library) or none. |
| motionId* | string | Motion entry id from searchMotion, e.g. interior-copy-button. |
{
"type": "object",
"required": [
"motionId"
],
"properties": {
"code": {
"enum": [
"both",
"vanilla",
"original",
"none"
],
"type": "string",
"default": "both",
"description": "Which code to include - both, vanilla (Screenrove rebuild), original (source library) or none."
},
"motionId": {
"type": "string",
"description": "Motion entry id from searchMotion, e.g. interior-copy-button."
}
},
"additionalProperties": false
}Get house rules for UI motion (durations, which easing for enter and exit, springs, what to animate, reduced motion) with citations, plus ready-to-use duration and easing tokens, the motion library's sources and its category and trigger vocabulary. Read this once before adding animation to an interface, so new motion is consistent.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Get a product's full collection: coverage notes, design summary, and every captured screen grouped into onboarding flow, marketing pages, and in-product screens. Use this to explore a competitor's complete UI: their signup flow, pricing page, dashboard, settings, and other screens. Each screen has notes and an image URL.
| Argument | Type | Description |
|---|---|---|
| productId* | string | Product id from listProducts, e.g. linear, stripe or airbnb. |
{
"type": "object",
"required": [
"productId"
],
"properties": {
"productId": {
"type": "string",
"description": "Product id from listProducts, e.g. linear, stripe or airbnb."
}
},
"additionalProperties": false
}Get everything recorded about one screen: notes on what it does and how it's laid out, source URL, image URLs and dimensions, observed actions and where they lead, and page sections for long marketing pages. Use this to understand a specific UI pattern in detail before building something similar.
| Argument | Type | Description |
|---|---|---|
| screenId* | string | Screen id from searchScreens or getProduct, e.g. linear-signup. |
{
"type": "object",
"required": [
"screenId"
],
"properties": {
"screenId": {
"type": "string",
"description": "Screen id from searchScreens or getProduct, e.g. linear-signup."
}
},
"additionalProperties": false
}Get the actual screenshot so you can see the UI. For marketing pages taller than 4000px, preview returns only the first screen (above the fold); use size=full for the whole page, which can exceed what vision models accept. getScreen lists the page's sections with their y offsets so you know what's below the fold.
| Argument | Type | Description |
|---|---|---|
| size | string | preview (default) keeps images small enough to view; full returns the original capture. |
| screenId* | string | Screen id from searchScreens or getProduct, e.g. linear-signup. |
{
"type": "object",
"required": [
"screenId"
],
"properties": {
"size": {
"enum": [
"preview",
"full"
],
"type": "string",
"default": "preview",
"description": "preview (default) keeps images small enough to view; full returns the original capture."
},
"screenId": {
"type": "string",
"description": "Screen id from searchScreens or getProduct, e.g. linear-signup."
}
},
"additionalProperties": false
}List every captured user journey: onboarding flows, signup sequences, checkout processes, booking flows, and marketplace explorations. Shows step counts, flow type, and observed transitions between steps. Use this to find complete user journey references—not just individual screens—so you can see how products guide users through multi-step processes like signup, onboarding, or checkout.
| Argument | Type | Description |
|---|---|---|
| flowType | string | Only return flows of this type. |
{
"type": "object",
"required": [],
"properties": {
"flowType": {
"enum": [
"signup-onboarding",
"search",
"checkout",
"booking",
"marketplace"
],
"type": "string",
"description": "Only return flows of this type."
}
},
"additionalProperties": false
}List every product in the UI reference catalog with its capture date, tags, coverage notes and screen counts. Start here to see what competitor products, design systems, and UI patterns are available. Products include: Linear, Cursor, Vercel, Airbnb, Stripe, Duolingo, Notion, Raycast, Cal.com, Framer, and Supabase. Each has captured onboarding flows, marketing pages, and/or in-app screens.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}List the tag vocabulary for searching by design problem: four facets (task, pattern, component, state), each tag with its definition, aliases and how many screens carry it. Use the ids with searchScreens or pickReference, e.g. pattern=board-view or state=empty.
| Argument | Type | Description |
|---|---|---|
| facet | string | Only return this facet. |
{
"type": "object",
"required": [],
"properties": {
"facet": {
"enum": [
"task",
"pattern",
"component",
"state"
],
"type": "string",
"description": "Only return this facet."
}
},
"additionalProperties": false
}Show the user several matching UI references side by side in their browser and let them click the one to build from. Returns a URL to open for them. Prefer this over sending full-page images whenever the user should decide which reference to use. The picker shows real screenshots at scroll depth so they can evaluate long pages. After calling this, tell them to choose in the picker, then call waitForPick with the pickId to get their choice and a complete build prompt.
| Argument | Type | Description |
|---|---|---|
| q | string | Search words, e.g. "pricing page", "onboarding", "empty state". The best matches become the options. Can be combined with tag filters, or left out when tag filters are given. |
| goal | string | What the user is building, shown on the page and used in the build prompt, e.g. "NSDR premium upgrade page". |
| kind | string | Only search this kind of screen. |
| task | string | Tag filter, as in searchScreens, e.g. create. |
| count | number | How many options to show when searching, 2 to 6. |
| stack | string | Preferred stack for the build prompt. |
| state | string | Tag filter, as in searchScreens, e.g. empty. |
| pattern | string |
Search the motion library: polished UI animations and micro-interactions (button presses, toggles, toasts, number tickers, thinking states, hover effects, interaction sounds) curated from open-source component libraries and designers' recordings. Each entry has a precise motion spec (properties, durations, easing curves or spring constants, staggers) and most have a live demo with vanilla HTML/CSS/JS code. Use this whenever you build or polish an interactive element and want it to feel finished: "a satisfying copy button", "toast stack", "AI thinking indicator", "tab underline that slides". Then call getMotion for the spec, code and a build prompt.
| Argument | Type | Description |
|---|---|---|
| q | string | Keywords, e.g. "copy button", "toast", "number ticker", "thinking shimmer". |
| basis | string | Where the numbers come from - code (exact, read from source), video (measured from a recording) or rebuild. |
| limit | number | Maximum results, 1 to 50. |
| source | string | Comma-separated source ids, as listed by getMotionGuidelines. |
| hasCode | boolean | Only entries with working code (a vanilla rebuild or original source). |
| trigger | string | Comma-separated triggers (OR) - hover, press, click, focus, load, scroll, drag, state-change, loop, type. |
Search the UI reference catalog by design problem and keyword. Every screen is tagged on four facets: task (what the person is doing), pattern (screen archetype), component (building blocks) and state (empty, filtered, error...). Filter by any of them; commas mean OR within a facet and different facets combine with AND, e.g. pattern=list-view,table-view and state=empty. Tags accept ids, labels or aliases ("kanban", "zero state"); listTags shows the vocabulary. q matches titles, tags, notes, page sections and observed actions; every word must match, or the closest partial matches come back with partial=true. Filter by product, kind or scope too. Use this to find design pattern examples like empty states, pricing pages, kanban boards, onboarding steps, settings or create forms. Results carry each screen's tags; refine lists the most common other tags among the results so you can narrow down. Pass a result's id to getScreenImage to see it, or findRelatedScreens for the same problem in other products. When the user wants screens combined, or a brief or spec built from several references, call buildRecipe with the chosen screen ids.
| Argument | Type | Description |
|---|---|---|
| q | string | Keywords to match, e.g. "pricing page", "empty state", "onboarding". Omit to list everything that matches the filters. |
| kind | string | Only return this kind of screen. |
| task | string | What the person is trying to do, comma-separated for any of them, e.g. create, choose-plan, invite. |
| limit | number | Maximum results, 1 to 50. |
| scope |
Wait for the user to choose on the pick page. Long-polls up to 50 seconds—returns as soon as they click, or status "pending" after the wait (call again if so). Once chosen, returns their reference with its screenshot and a full build prompt, so you can start building from it immediately. If they clicked "None of these fit", status is "dismissed" and you should ask what they want instead.
| Argument | Type | Description |
|---|---|---|
| wait | number | Seconds to wait for a choice, 0 to 50. |
| pickId* | string | The pickId returned by pickReference. |
{
"type": "object",
"required": [
"pickId"
],
"properties": {
"wait": {
"type": "number",
"default": 45,
"description": "Seconds to wait for a choice, 0 to 50."
},
"pickId": {
"type": "string",
"description": "The pickId returned by pickReference."
}
},
"additionalProperties": false
}| styleContext | string | Which of the style product's guides to use. Defaults to marketing when most screens are marketing pages, otherwise product. |
{
"type": "object",
"required": [
"screens"
],
"properties": {
"goal": {
"type": "string",
"description": "What you want to build. Goes at the top of the brief."
},
"stack": {
"type": "string",
"description": "Preferred stack, e.g. Next.js and Tailwind."
},
"style": {
"type": "string",
"description": "Product id whose measured visual language to use, e.g. linear or stripe. Omit to use the project's own design system."
},
"screens": {
"type": "array",
"items": {
"type": "string"
},
"description": "1 to 6 screen ids, each optionally followed by \": what to take from it\", e.g. [\"linear-product-new-issue: issue composer modal\", \"vercel-marketing-pricing: plan cards and FAQ\"]."
},
"styleNotes": {
"type": "string",
"description": "Extra visual direction in words, e.g. \"our brand green #1a7f37, rounded corners\". Used on its own when style is omitted."
},
"styleContext": {
"enum": [
"marketing",
"product"
],
"type": "string",
"description": "Which of the style product's guides to use. Defaults to marketing when most screens are marketing pages, otherwise product."
}
},
"additionalProperties": false
}| number |
| For pricing screens, how many plans are shown. |
| screenType | string | What kind of screen it is. |
| description* | string | One or two sentences on what the screen is for and how it is laid out, e.g. "Pricing page with three plan cards, a monthly/yearly toggle and a feature table". |
| primaryAction | string | The main button or action, e.g. "Start free trial". |
{
"type": "object",
"required": [
"description"
],
"properties": {
"kind": {
"enum": [
"flow",
"marketing",
"product"
],
"type": "string",
"description": "Only compare with this kind of capture."
},
"limit": {
"type": "number",
"default": 4,
"description": "How many references to return, 1 to 5."
},
"product": {
"type": "string",
"description": "Only compare with this product id."
},
"flowType": {
"enum": [
"signup-onboarding",
"search",
"checkout",
"booking",
"marketplace"
],
"type": "string",
"description": "What the flow does, so step counts are only compared with flows of the same kind. Inferred from screenType when omitted."
},
"sections": {
"type": "array",
"items": {
"type": "string"
},
"description": "Page sections top to bottom, e.g. [\"Hero\", \"Plan cards\", \"FAQ\"]."
},
"flowSteps": {
"type": "array",
"items": {
"type": "string"
},
"description": "For a multi-screen flow, each step's title in order, e.g. [\"Sign up\", \"Verify email\", \"Create workspace\"]."
},
"planCount": {
"type": "number",
"description": "For pricing screens, how many plans are shown."
},
"screenType": {
"enum": [
"landing",
"pricing",
"feature-page",
"sign-up",
"sign-in",
"verification",
"onboarding-step",
"plan-picker",
"empty-state",
"dashboard",
"list",
"detail",
"create-form",
"search",
"picker",
"booking",
"checkout",
"marketplace",
"settings",
"docs",
"menu",
"lesson"
],
"type": "string",
"description": "What kind of screen it is."
},
"description": {
"type": "string",
"description": "One or two sentences on what the screen is for and how it is laid out, e.g. \"Pricing page with three plan cards, a monthly/yearly toggle and a feature table\"."
},
"primaryAction": {
"type": "string",
"description": "The main button or action, e.g. \"Start free trial\"."
}
},
"additionalProperties": false
}| Tag filter, as in searchScreens, e.g. pricing-page. |
| product | string | Only search this product id. |
| screens | string | Comma-separated screen ids to show instead of searching, e.g. from an earlier searchScreens. |
| component | string | Tag filter, as in searchScreens, e.g. comparison-table. |
{
"type": "object",
"required": [],
"properties": {
"q": {
"type": "string",
"description": "Search words, e.g. \"pricing page\", \"onboarding\", \"empty state\". The best matches become the options. Can be combined with tag filters, or left out when tag filters are given."
},
"goal": {
"type": "string",
"description": "What the user is building, shown on the page and used in the build prompt, e.g. \"NSDR premium upgrade page\"."
},
"kind": {
"enum": [
"flow",
"marketing",
"product"
],
"type": "string",
"description": "Only search this kind of screen."
},
"task": {
"type": "string",
"description": "Tag filter, as in searchScreens, e.g. create."
},
"count": {
"type": "number",
"default": 3,
"description": "How many options to show when searching, 2 to 6."
},
"stack": {
"type": "string",
"description": "Preferred stack for the build prompt."
},
"state": {
"type": "string",
"description": "Tag filter, as in searchScreens, e.g. empty."
},
"pattern": {
"type": "string",
"description": "Tag filter, as in searchScreens, e.g. pricing-page."
},
"product": {
"type": "string",
"description": "Only search this product id."
},
"screens": {
"type": "string",
"description": "Comma-separated screen ids to show instead of searching, e.g. from an earlier searchScreens."
},
"component": {
"type": "string",
"description": "Tag filter, as in searchScreens, e.g. comparison-table."
}
},
"additionalProperties": false
}| category |
| string |
| Comma-separated categories (OR): button, toggle, input, list, card, navigation, overlay, toast, loader, text, number, chat-ai, cursor, scroll, transition, icon, feedback, media, sound, other. |
{
"type": "object",
"required": [],
"properties": {
"q": {
"type": "string",
"description": "Keywords, e.g. \"copy button\", \"toast\", \"number ticker\", \"thinking shimmer\"."
},
"basis": {
"enum": [
"code",
"video",
"rebuild"
],
"type": "string",
"description": "Where the numbers come from - code (exact, read from source), video (measured from a recording) or rebuild."
},
"limit": {
"type": "number",
"default": 12,
"description": "Maximum results, 1 to 50."
},
"source": {
"type": "string",
"description": "Comma-separated source ids, as listed by getMotionGuidelines."
},
"hasCode": {
"type": "boolean",
"description": "Only entries with working code (a vanilla rebuild or original source)."
},
"trigger": {
"type": "string",
"description": "Comma-separated triggers (OR) - hover, press, click, focus, load, scroll, drag, state-change, loop, type."
},
"category": {
"type": "string",
"description": "Comma-separated categories (OR): button, toggle, input, list, card, navigation, overlay,\ntoast, loader, text, number, chat-ai, cursor, scroll, transition, icon, feedback, media,\nsound, other."
}
},
"additionalProperties": false
}| string |
| Only screens from collections with this capture scope. |
| state | string | Data or interaction state, comma-separated for any of them, e.g. empty, first-run, filtered, error. |
| pattern | string | Screen archetype, comma-separated for any of them, e.g. pricing-page, list-view, board-view, settings. |
| product | string | Only return screens from this product id, e.g. linear, stripe, airbnb. |
| component | string | Building blocks on the screen, comma-separated for any of them, e.g. modal, date-picker, comparison-table. |
{
"type": "object",
"required": [],
"properties": {
"q": {
"type": "string",
"description": "Keywords to match, e.g. \"pricing page\", \"empty state\", \"onboarding\". Omit to list everything that matches the filters."
},
"kind": {
"enum": [
"flow",
"marketing",
"product"
],
"type": "string",
"description": "Only return this kind of screen."
},
"task": {
"type": "string",
"description": "What the person is trying to do, comma-separated for any of them, e.g. create, choose-plan, invite."
},
"limit": {
"type": "number",
"default": 20,
"description": "Maximum results, 1 to 50."
},
"scope": {
"enum": [
"marketing",
"public-demo",
"task-incomplete",
"signed-in"
],
"type": "string",
"description": "Only screens from collections with this capture scope."
},
"state": {
"type": "string",
"description": "Data or interaction state, comma-separated for any of them, e.g. empty, first-run, filtered, error."
},
"pattern": {
"type": "string",
"description": "Screen archetype, comma-separated for any of them, e.g. pricing-page, list-view, board-view, settings."
},
"product": {
"type": "string",
"description": "Only return screens from this product id, e.g. linear, stripe, airbnb."
},
"component": {
"type": "string",
"description": "Building blocks on the screen, comma-separated for any of them, e.g. modal, date-picker, comparison-table."
}
},
"additionalProperties": false
}