abort_agent_session
ChatGPTCancel the in-progress turn of a Replo session. Cancellation interrupts unfinished work and may leave partial changes. Completed changes are not rolled back, and the session is retained.
apply_brand_kit_to_site
ChatGPTApply the project's saved brand to the selected site's shared style tokens, fonts, layout, and shared components. Affects that site's drafts, not the saved brand kit. Use create_or_update_brand_kit first if there is no saved brand. Starts an asynchronous internal-agent operation; poll get_agent_session. For corrections, call this same tool with its sessionId and unchanged target. Requires a provisioned site. Source edits may execute in its preview. The Replo agent uses its normal tools and connected integrations to implement and verify the requested changes. Use publish_site separately to make changes public.
connect_custom_domain
ChatGPTBegin connecting a custom domain to a Replo site. This creates a pending domain and returns the DNS records required before verification can activate it. Never connect a Shopify store's primary domain: Shopify runs checkout there.
connect_replo_account
ChatGPTSign the user in to Replo. Call this only after the user agrees to connect an account, usually after a tool returned status sign_in_required; it opens the client's sign-in window. Once signed in it returns who they are. Then call list_workspaces.
create_api_key
ChatGPTCreate an API key for user-requested local Git development of one Replo project at git.replo.app. Defaults to repo.read for cloning and pulling; include repo.write only for authorized pushes. Grants no publishing or workspace administration access. Requires permission to manage the selected project. Returns the secret once in the tool result for storage in a local credential helper or REPLO_API_KEY environment variable; do not repeat it in chat or commit it. Use list_projects to resolve workspaceId and projectId and list_sites for the clone URL.
create_file
ChatGPTCreate a private document or folder in Files. Documents require a text, base64, or asset source. Asset sources copy without deleting the source. Folders have no source. Name conflicts never overwrite.
create_or_update_brand_kit
ChatGPTCreate or update the project's saved brand: business information, colors, fonts, logos, personas, overviews, and brand-context file tags. May import from a public website URL; replacement can delete prior brand data and import assets/references. Does not restyle or publish a site: use apply_brand_kit_to_site separately. Starts an asynchronous internal-agent operation; poll get_agent_session and answer any replacement confirmation before it proceeds.
create_product
ChatGPTCreate a Replo-managed product for native product pages or checkout flows. New products are active immediately.
create_project
ChatGPTCreate a Replo project in a workspace selected for the user's requested work. Requires an eligible workspaceId from list_projects and a project name. Returns the created project; this changes the workspace's project list.
create_shared_preview
ChatGPTCreate or recover a public live preview link to a site page without publishing. Anyone with the URL can view the draft from your account's existing preview workspace. Use projectId from list_projects and siteId from list_sites; supply the page route and omit locale for the default. Page availability is checked when the link opens. Share only when requested; if the preview workspace is missing, report that state without editing or publishing the site.
create_site_page
ChatGPTCreate a draft page at one route in an existing site. Preserve existing pages. Supply copy, layout, product references, and design requirements in instructions. Starts an asynchronous internal-agent operation; poll get_agent_session. For corrections, call this same tool with its sessionId and unchanged target. Requires a provisioned site. Source edits may execute in its preview. The Replo agent uses its normal tools and connected integrations to implement and verify the requested changes. Use publish_site separately to make changes public.
delete_site_page
ChatGPTRemove the selected route's draft page. Its published copy remains live until a separate publication removes it. Does not delete the site or other routes. Starts an asynchronous internal-agent operation; poll get_agent_session. For corrections, call this same tool with its sessionId and unchanged target. Requires a provisioned site. Source edits may execute in its preview. The Replo agent uses its normal tools and connected integrations to implement and verify the requested changes. Use publish_site separately to make changes public.
delete_task
ChatGPTPermanently delete a scheduled Replo task and stop all future runs.
edit_site_page
ChatGPTEdit the selected site's draft page at one route, including its copy, sections, product display, forms, and page-local components. Shared component edits may affect other pages using them. Starts an asynchronous internal-agent operation; poll get_agent_session. For corrections, call this same tool with its sessionId and unchanged target. Requires a provisioned site. Source edits may execute in its preview. The Replo agent uses its normal tools and connected integrations to implement and verify the requested changes. Use publish_site separately to make changes public.
figma_get_component
ChatGPT[Figma] Gets metadata for a specific published component by its unique key.
figma_get_file
ChatGPT[Figma] Returns a Figma file with metadata and document tree (defaults to shallow depth=1). Use getFileNodes with specific IDs for targeted content.
figma_get_file_metadata
ChatGPT[Figma] Check the connected user's access to a Figma file without downloading its document tree. Returns their file role and the file's link-sharing setting, not their paid seat type. Uses the lower-cost Tier 3 metadata endpoint; requires file_metadata:read (reconnect if that scope was not granted). On a 429, use the rate-limit type and resource plan from the error to diagnose API quota separately from file access.
figma_get_file_nodes
ChatGPT[Figma] Retrieve specific nodes from a Figma file using its file key and node IDs.
figma_get_image_fills
ChatGPT[Figma] Returns temporary download URLs for image fills in a Figma file, keyed by imageRef. Pass the imageRef values from the selected nodes' IMAGE paints to fetch their original photos without rendering nodes.
figma_get_images
ChatGPT[Figma] Renders images from specific nodes in a Figma file. Returns temporary signed URLs (expire ~30 days), not image bytes.
figma_get_style
ChatGPT[Figma] Gets metadata for a specific published style by its unique key.
figma_list_file_components
ChatGPT[Figma] Lists all published components in a Figma file.
figma_list_file_dev_resources
ChatGPT[Figma] Lists dev resources (links to code, docs, etc.) attached to nodes in a Figma file.
figma_list_file_styles
ChatGPT[Figma] Lists all published styles in a Figma file.
find_assets
ChatGPTFind media and files in a project's asset library using semantic search or library metadata.
find_orders
ChatGPTFind storefront orders when investigating a payment state or fulfillment state. Returns order summaries only: no customer contact details or payment identifiers are included. To look up a known customer's orders, pass their address as the customerEmail filter. Money amounts are integers in the currency's minor units (Stripe convention: 2500 = $25.00 USD, 1999 = ¥1999 JPY), paired with each order's currencyCode.
find_products
ChatGPTFind Replo-managed products for catalog, product-page, or checkout work. These are separate from products managed by Shopify or other integrations. If no Replo-managed products are found, tell the user they can connect Shopify from the Replo dashboard.
get_agent_session
ChatGPTRetrieve a Replo session's current status, latest response, tool activity, errors, and pending interactions (permission requests and questions). Use to check progress after starting or continuing a session. When pendingInteractions is non-empty, show it to the user and wait for their answer, then pass it to resolve_agent_interaction: a choice takes one option value as the decision; a form takes one answers array per step.
get_brand_kit
ChatGPTRead the selected project's saved business information, overviews, colors, fonts, logo marks, and personas. Returns null when no brand exists. Makes no changes and does not start an agent session.
get_custom_domain_status
ChatGPTDiagnose a connected custom domain by inspecting its activation state and required DNS records.
get_file
ChatGPTRetrieve metadata for an existing Files document or folder by fileId.
get_integration_status
ChatGPTCheck one integration's connection status in the selected Replo project. Returns connected, not_connected, or needs_reconnect, along with a dashboard URL for setup when available. connectFailureMessage explains a failed connection attempt. isAlwaysAvailable identifies a built-in integration; isSettingsManaged identifies setup in integration settings. This tool does not connect an account or change permissions.
get_order
ChatGPTInspect the public record of one storefront order: line items, fulfillment, refunds, and event history. The customer's contact address is masked (j••••@example.com) and no payment identifiers are returned. Money amounts are integers in the currency's minor units (Stripe convention: 2500 = $25.00 USD, 1999 = ¥1999 JPY), paired with the order's currencyCode.
get_product
ChatGPTRetrieve the current public catalog details for a specific Replo-managed product.
get_project
ChatGPTRead one Replo project's settings: name, time zone, currency, support email, and checkoutProvider ('shopify' means Shopify Checkout, 'replo' means Replo checkout, null means checkout is off). Check checkoutProvider before promising Shopify checkout or when a Shopify-connected site's Checkout button fails: connecting Shopify does not switch it.
get_task
ChatGPTInspect the schedule and current timing of a specific recurring Replo task.
google_analytics_get_property_metadata
ChatGPT[Google Analytics] Returns the available dimensions and metrics for a GA4 property. Use this to discover valid dimension and metric API names before calling runReport.
google_analytics_list_conversion_events
ChatGPT[Google Analytics] Lists the conversion events (key events) configured for a GA4 property. Call this first when the user asks about conversions, purchases, sign-ups, or goals — it reveals which event names the business counts as conversions so subsequent runReport calls can query them accurately.
google_analytics_list_properties
ChatGPT[Google Analytics] Lists Google Analytics 4 account summaries, each containing the properties the authenticated user can access. Use this first to discover available property IDs for runReport and runRealtimeReport.
google_analytics_run_realtime_report
ChatGPT[Google Analytics] Runs a Google Analytics 4 realtime report, returning activity from the last 30 minutes for the given property.
google_analytics_run_report
ChatGPT[Google Analytics] Runs a Google Analytics 4 core report (metrics + dimensions + date ranges) for a property. Use listProperties first to get propertyId.
list_files
ChatGPTList private working documents and folders in a project. Omit parentId for My Files. Assets are a separate media library.
list_projects
ChatGPTList accessible Replo projects, optionally within one workspace. Use to resolve the project for the user's Replo request. Returns paginated projects or setup_required with eligible workspaces when project creation is available. Listing does not create a project. Follow next_cursor when more results are needed.
list_sites
ChatGPTFind the Replo site to inspect, manage, or clone within a project. Each site returns clone_url, the URL used to clone that site's code over Git, and is_default. When the user does not name a site, use the site with is_default true; if no site is default, ask which one to use. Results are paginated: follow next_cursor until has_more is false before concluding a site does not exist. Site names are dashboard labels, not SEO page titles.
list_tasks
ChatGPTList scheduled Replo tasks in a project.
list_workspaces
ChatGPTThe user's Replo workspaces with each one's plan (free, starter or pro). Call right after sign-in: use the only workspace, or ask the user once which to use when there are several, then pass its id as workspaceId on Sightglass calls. Also use it when the user wants to switch workspaces.
publish_site
ChatGPTPublish a site to make changes live. Requires the siteId from list_sites. Builds, packages, uploads, and deploys.
query_replo_analytics
ChatGPTRun read-only ClickHouse SQL over a project's Replo analytics for traffic, conversion, revenue, and session-level questions. Queryable public tables are session_attribution, events_computed, currency_exchange_rates, daily_page_rollups, daily_namespace_rollups, and daily_namespace_purchase_rollups. Only SELECT/WITH queries are accepted, and project-scoped tables are automatically restricted to the requested project and its authorized same-workspace, same-store siblings. For table columns, query examples, and limits, see the Replo Public API analytics query docs.
read_file
ChatGPTRead complete small UTF-8 documents in Files, or obtain a temporary download URL for binary and larger files.
replo_products_catalog_get
ChatGPTGet one catalog garment's decoration detail: exact color names (with hex swatches), sizes, placement keys with print-area pixel dimensions and technique limits, and the provider's spec sheet. Read this before products.createFromCatalog or products.placeDesign — placement keys and color names must match it exactly.
replo_products_catalog_search
ChatGPTBrowse the print-on-demand garment catalog (t-shirts, hoodies, mugs…) a fulfillment provider can make and ship. Returns per-garment summaries: colors, sizes, decoration placements with their technique, and the provider's unit cost — the floor for retail pricing. Use before products.createFromCatalog.
replo_products_products_get
ChatGPTFetch a single Replo product by ID with full canonical data including variants, options, media, and pricing. Prices are integer minor units (2499 is $24.99); the mutating tools take major units (24.99).
replo_products_products_search
ChatGPTList or search this project's Replo products. Returns a page of summaries (id, title, slug, status, variant count, price span in minor units, units sold) — the way to find a product's UUID before calling any other product tool. Omit query to browse the whole catalog.
report_bug
ChatGPTReport a credible user-reported or directly observed Replo defect, including API, MCP, or documentation defects. Pass projectId from list_projects. Include expected/actual behavior, reported or performed reproSteps, retry/workaround outcomes, and observed errors or request IDs in errorContext. Mark unknowns; never invent evidence, root cause, or severity. Exclude ordinary bad arguments, missing configuration, and fixable site-code mistakes. Omit credentials and unrelated customer data. Files feedback with Replo's team; continue helping with the user's task. Do not resubmit the same report after success.
resolve_agent_interaction
ChatGPTResolve one pending Replo agent interaction with the user's explicit answer. For a permission request, pass type permission and the decision from its response options. For a question, pass type question and one answers array per form step, in order, holding the selected option values, or the user's own text only where that step's allowCustom is true; an empty array skips a step. Never infer an answer. Approving or answering resumes the agent, which can then overwrite or delete content, publish, or write to an external service. Returns the updated session status; an interaction that is no longer pending returns an error and nothing is delivered, so call get_agent_session again.
revoke_shared_preview
ChatGPTDisable a public shared preview link using the id returned by create_shared_preview. Only its creator with current project access or a workspace admin can revoke it. Repeating the request succeeds; page content is preserved. Revoke only the link the user requested.
set_product_inventory
ChatGPTSet stock counts and stock policy for a Replo-managed product's variants, addressing each variant by its option-value combination (empty optionValues for a product with no options). available is an absolute count, not a delta. Turning on trackInventory without an available count leaves the variant unsellable until a count exists — set both together. Only products the merchant fulfills themselves can track stock; print-on-demand and digital variants are made to order and will be refused.
shopify_apps_detect
ChatGPTDetect which Shopify apps Replo renders natively are set up on the connected store, read from each app's own storefront-visible configuration. Currently Kaching Bundles, detected when at least one deal block exists. Call this when the user mentions Kaching, bundle deals, volume discounts, or quantity breaks. When Kaching Bundles is detected, render bundles with the shopify_storefront.kaching_bundles loader (KachingBundlesLoader) instead of hand-building quantity cards; Kaching applies the discount at Shopify Checkout.
shopify_collections_get
ChatGPTFetch a single Shopify collection by GID with full canonical data. Pass metafieldIdentifiers to also return this collection's metafield values; omit it to return every collection metafield.
shopify_collections_search
ChatGPTSearch Shopify collections by query string. Returns partial Collection objects (id, title, handle, image).
shopify_discount_codes_get
ChatGPTFetch a single Shopify code-based discount with full canonical data (codes, status, summary, discount type, start/end dates, usage limit, times used). Look it up either by its GID (discountGid, returned by shopify_discount_codes_search) or by the exact redeemable code string a customer would enter. Provide exactly one.
shopify_discount_codes_search
ChatGPTSearch Shopify code-based discounts by query string, or list all of them when called with no query. Returns partial DiscountCode objects (id, codes, title, status, summary). These are the discounts a customer redeems by entering a code at checkout (not automatic discounts). Call with no query to browse every discount; pass a keyword or field qualifier (e.g. "status:active") only to filter. Do NOT pass placeholder words like "all" or "*"; they are treated as literal search terms.
shopify_domains_list
ChatGPTList every domain connected to the Shopify store, with the primary storefront domain flagged. Call this BEFORE asking the user which domain to use for a Replo site, or before adding a custom domain — do not ask the user to read their Shopify domain settings to you. Use it to tell the user which domains are already taken and to warn them off repointing one that is in use: the domain with isPrimary: true is the live storefront, and pointing it at a Replo site would replace their entire store. myshopifyDomain is the permanent admin address and is never a valid choice. NOTE: this returns domains Shopify knows about, which is not the same as what is available to register — a domain absent from this list may still be owned elsewhere, and this tool cannot read DNS records or tell you whether a domain currently redirects.
shopify_files_search
ChatGPTSearch the store's Shopify Files (Content → Files in the Shopify admin): the images, videos and documents the merchant uploaded, separate from product media and from Replo Assets. Filter by mediaType or usedIn ('product' or 'none'), or pass query to match file names and alt text. Each file's url is a permanent public cdn.shopify.com link: use it directly in pages and don't upload or copy the file into Replo Assets first.
shopify_metafield_definitions_list
ChatGPTList metafield definitions for a Shopify store. Returns key, namespace, name, type, description, and storefrontAccess for each definition. Use to discover what metafields a store has before building pages that display custom data. IMPORTANT: only definitions with storefrontAccess: "PUBLIC_READ" can be rendered on a page via data loaders — a NONE definition is readable by these tools but will come back empty at render time. Read values with shopify_metafields_get.
shopify_metafields_get
ChatGPTRead metafield VALUES for any product, product variant, or collection by GID. Use this to inspect what a metafield actually contains before writing code that renders it — the type name alone (e.g. rich_text_field, list.product_reference) does not tell you the shape of the data. shopify_metafield_definitions_list tells you which metafields exist; this tool tells you what is in them.
shopify_metaobject_definitions_list
ChatGPTList metaobject definitions for a Shopify store, including reusable structured content such as size charts, ingredient lists, care instructions, and FAQ blocks. Returns each definition's type handle, field definitions, and storefrontAccess. Use a returned type handle as input to shopify_metaobjects_list. Only definitions with storefrontAccess: "PUBLIC_READ" are available to storefront data loaders. Definitions with "NONE" are readable by these tools but require a Shopify admin access-setting change before they can be rendered through those loaders.
shopify_metaobjects_get
ChatGPTFetch a single metaobject entry with all of its field values. Look it up either by metaobjectGid, or by type + handle together. Use this to resolve a metaobject_reference metafield value, which is stored as a bare metaobject GID.
shopify_metaobjects_list
ChatGPTList metaobject entries of a single type, with their field values. type is REQUIRED — Shopify has no query that lists metaobjects across types, so get a type handle from shopify_metaobject_definitions_list first. Use this to see what a store's metaobjects actually contain before writing code that renders them; reference-typed fields come back as a GID string that you must resolve separately.
shopify_products_get
ChatGPTFetch a single Shopify product by GID with full canonical data including variants, options, and pricing. Use this when you need complete product details (e.g., variant info, option names, pricing) that are not available from the partial search results. Pass metafieldIdentifiers to also return this product's metafield values; omit it to return every product metafield. Variant metafields are not returned here — fetch those with shopify_metafields_get on a variant GID.
shopify_products_search
ChatGPTSearch Shopify products by query string, or list all products when called with no query. Returns partial Product objects (id, title, handle, status, featuredImage). Call with no query to browse the full catalog; pass a keyword only to filter. If the user did not specify a catalog and this returns no results, also call search_replo_products before telling the user the product was not found, since projects can mix Shopify and Replo-managed catalogs.
shopify_sales_monthly
ChatGPTRead Shopify Total sales grouped by month for an inclusive date range, in the store reporting timezone and currency. Requires reporting access. Returns an error if unavailable.
shopify_sales_total
ChatGPTRead Shopify Total sales for an inclusive date range in the connected store's timezone and currency. Requires read_reports and Shopify approval for protected customer data. Returns an error when reporting access is unavailable.
sightglass_arena_compare
ChatGPTPlace personas, ads, landing pages or companies (brands) on one or two 'this vs that' axes, the same map the user sees in Sightglass Arena. Each item gets a position per axis from 0 (most like the low end) to 100 (most like the high end), relative to the items returned, plus the raw similarity. Use a lens for the preset pairs (who it's for, why they buy, price and style, occasion) or pass your own axes, e.g. [{low: 'Minimal', high: 'Maximal'}]; omit high and the opposite is chosen for you. The user's own company and Brand Studio personas are included and marked isYou. Use it to answer 'where do we sit against these brands' or 'which buyers are nobody's focus'. Fields the user's Replo plan doesn't include come back null and are named in that item's locked list (estimates = sales, visits and traffic); lockedCount is how many more results a higher plan shows. Say the data is on a higher plan; never estimate it yourself. Returns data only: nothing is shown to the user yet. Once you know the answer, call sightglass_show once with this call's resultId to show it as cards; the show call does not search again.
sightglass_copy_creative_to_assets
ChatGPTCopy one ad creative's image from Sightglass into the Replo project's Assets, so it can be used as a reference in the project. Takes the creative.id of an ad, not the ad's own id. Returns the asset's id and URL; copying the same creative again returns the existing asset.
sightglass_create_board
ChatGPTCreate a named board in the user's Sightglass collection. A board holds one kind of item: ad, site_page (landing pages), company (brands) or persona. Returns the board and its id.
sightglass_delete_board
ChatGPTDelete one of the user's Sightglass boards and everything saved on it. This cannot be undone, so only call it when the user asked for this board to be deleted.
sightglass_find_ads
ChatGPTSearch a library of real Meta ads and the landing pages they drive to. search is a semantic vector search, so describe the ad's angle, offer or visual style rather than one keyword. Combine it with companyIds, displayFormats, pageTypes and technologies to narrow, and with hookTypes, angleTypes, offerTags and funnelStages to filter on what the ad's creative was read as (each ad carries these in tags, null until it is read). Users say 'brands' for advertisers and 'landing pages' for site pages — map their words onto these filters. performanceScore and scoreTiers come from a transparent longevity + duplication heuristic; they are NOT spend, reach or ROAS and must never be presented as such. Returns metadata plus ready-to-view media URLs; call sightglass_get_ad for one ad's full detail, sightglass_get_site_page for the page an ad drives to. Fields the user's Replo plan doesn't include come back null and are named in that item's locked list (estimates = sales, visits and traffic); lockedCount is how many more results a higher plan shows. Say the data is on a higher plan; never estimate it yourself. Returns data only: nothing is shown to the user yet. Once you know the answer, call sightglass_show once with this call's resultId to show it as cards; the show call does not search again.
sightglass_find_angles
ChatGPTA brand's angles: the pitch each ad leans on, for whom; offers sit on top. Each angle has a type (problem/solution, proof, founder story…), a short name for the idea, the newest headline hook, the persona it speaks to (a segment nickname, the buyer's situation in their words, an age range when the ad shows one, and awareness stage from unaware to most-aware), the product, how many ads (and live ads) and landing pages use it, when it was first and last seen, and the offers the same ads carried. Most used first. Use it to answer 'how does this brand sell' or to compare two brands' messaging. Fields the user's Replo plan doesn't include come back null and are named in that item's locked list (estimates = sales, visits and traffic); lockedCount is how many more results a higher plan shows. Say the data is on a higher plan; never estimate it yourself. Returns data only: nothing is shown to the user yet. Once you know the answer, call sightglass_show once with this call's resultId to show it as cards; the show call does not search again.
sightglass_find_campaigns
ChatGPTA brand's offer campaigns: what deal it ran (discount, bundle, free gift…), in plain English, from when to when, how deep, on how many ads and landing pages, with the exact quote it was read from. Grouped from the brand's ads and page captures; a deepening discount (5% → 10%) is one campaign with steps. Use it to answer 'what is this brand running' or to compare two brands' promotions. Fields the user's Replo plan doesn't include come back null and are named in that item's locked list (estimates = sales, visits and traffic); lockedCount is how many more results a higher plan shows. Say the data is on a higher plan; never estimate it yourself. Returns data only: nothing is shown to the user yet. Once you know the answer, call sightglass_show once with this call's resultId to show it as cards; the show call does not search again.
sightglass_find_offers
ChatGPTOffer campaigns across brands. With no companyRefs, mode is 'top': the offers running across every tracked brand in the trailing window, sorted by how many ads carry them, how long they have run, or how deep the discount is. With companyRefs, mode is 'calendar': those brands' campaigns in a date window, side by side, for comparing promo timing. Use it for 'what offers are working in this market' and 'when do these brands run sales'. Fields the user's Replo plan doesn't include come back null and are named in that item's locked list (estimates = sales, visits and traffic); lockedCount is how many more results a higher plan shows. Say the data is on a higher plan; never estimate it yourself. Returns data only: nothing is shown to the user yet. Once you know the answer, call sightglass_show once with this call's resultId to show it as cards; the show call does not search again.
sightglass_find_personas
ChatGPTA brand's customer personas: who it markets to, their age range and awareness stage, with the angles and offers aimed at each. Each persona is a segment nickname, the buyer's situation in their words, its share of the brand's ads, how many ads and landing pages speak to it, and its top angles and offers. Empty until the brand has enough ads and pages read. Use it to answer 'who is this brand selling to' or to compare two brands' audiences. Fields the user's Replo plan doesn't include come back null and are named in that item's locked list (estimates = sales, visits and traffic); lockedCount is how many more results a higher plan shows. Say the data is on a higher plan; never estimate it yourself. Returns data only: nothing is shown to the user yet. Once you know the answer, call sightglass_show once with this call's resultId to show it as cards; the show call does not search again.
sightglass_find_site_pages
ChatGPTFind destination pages ads drive to — what users call 'landing pages'. Filter by pageTypes (offer_page, advertorial, listicle, quiz, lead_capture, homepage, pdp, collection, blog, marketplace, app_store, social_profile) and by the technologies detected on the site, e.g. Shopify or Klaviyo. search is semantic over the page's title and description. Fields the user's Replo plan doesn't include come back null and are named in that item's locked list (estimates = sales, visits and traffic); lockedCount is how many more results a higher plan shows. Say the data is on a higher plan; never estimate it yourself. Returns data only: nothing is shown to the user yet. Once you know the answer, call sightglass_show once with this call's resultId to show it as cards; the show call does not search again.
sightglass_find_technologies
ChatGPTThe technology directory: the apps and vendors detected on tracked brands' sites (Shopify, Klaviyo, Recharge…), ranked by how many brands use each and how those brands are doing. Pass slug for one technology's adopter stats and its category peers. To list the brands or ads behind a technology, pass its name as technologies to sightglass_find_ads or sightglass_find_site_pages. Returns data only: nothing is shown to the user yet. Once you know the answer, call sightglass_show once with this call's resultId to show it as cards; the show call does not search again.
sightglass_find_top_angles
ChatGPTThe angles in use across every tracked brand in the trailing window: the same shape as sightglass_find_angles, with the brand on each. Filter by angle type, the age band or awareness stage of the persona it speaks to, and sort by ads, landing pages or newest. Use it for 'what pitches are brands using on this audience' and to find an angle nobody is running. Fields the user's Replo plan doesn't include come back null and are named in that item's locked list (estimates = sales, visits and traffic); lockedCount is how many more results a higher plan shows. Say the data is on a higher plan; never estimate it yourself. Returns data only: nothing is shown to the user yet. Once you know the answer, call sightglass_show once with this call's resultId to show it as cards; the show call does not search again.
sightglass_follow_companies
ChatGPTSet the brands the user follows in Sightglass. companyIds replaces the whole list, so read the current one with sightglass_list_saved (kind=following) and include the ones to keep. Followed brands feed the user's home view and offer calendar.
sightglass_get_access
ChatGPTWhat the user's Replo plan includes in Sightglass: the plan name, row caps per list, whether sales and traffic estimates are included, the history and trend windows, and how many new-brand researches are used and left this month. Call it when a result comes back with locked fields and the user asks why, or before sightglass_research_company.
sightglass_get_ad
ChatGPTFetch one ad in full: copy, creative caption, duplication facts, its destination landing page, and presigned media URLs you can pull into context to look at the creative itself. Returns data only: nothing is shown to the user yet. Once you know the answer, call sightglass_show once with this call's resultId to show it as cards; the show call does not search again.
sightglass_get_company
ChatGPTOne company's full profile plus its six nearest competitors. Use the id or slug from sightglass_search_companies, or the companySlug on an ad's advertiser. Includes the category breadcrumb, every Meta page the company runs, grade mix, and the Momentum components. Call sightglass_get_company_activity for its trend and launch history. Fields the user's Replo plan doesn't include come back null and are named in that item's locked list (estimates = sales, visits and traffic); lockedCount is how many more results a higher plan shows. Say the data is on a higher plan; never estimate it yourself. Returns data only: nothing is shown to the user yet. Once you know the answer, call sightglass_show once with this call's resultId to show it as cards; the show call does not search again.
sightglass_get_company_activity
ChatGPTHow one brand's advertising has moved: its daily active-ad trend, ads launched per week, how long its ads stay live (longevity buckets), and the technology stack on its site with when each tool was first seen. Use it for 'is this brand scaling up or pulling back' and 'what did they change'. The trend window and the launch and longevity charts depend on the plan. Fields the user's Replo plan doesn't include come back null and are named in that item's locked list (estimates = sales, visits and traffic); lockedCount is how many more results a higher plan shows. Say the data is on a higher plan; never estimate it yourself. Returns data only: nothing is shown to the user yet. Once you know the answer, call sightglass_show once with this call's resultId to show it as cards; the show call does not search again.
sightglass_get_rankings
ChatGPTThe market view: who holds what share of active ads, week by week. pulse is the headline numbers for the scope (brands, active ads, launches, video and advertorial share). share is the weekly share of the top groups, grouped by company (default), category, platform, country or plan. categories lists the categories under the scope so you can drill in with categoryId; with a categoryId, leaders is that category's top companies. Share is share of ads Sightglass has seen, not spend or revenue. Fields the user's Replo plan doesn't include come back null and are named in that item's locked list (estimates = sales, visits and traffic); lockedCount is how many more results a higher plan shows. Say the data is on a higher plan; never estimate it yourself. Returns data only: nothing is shown to the user yet. Once you know the answer, call sightglass_show once with this call's resultId to show it as cards; the show call does not search again.
sightglass_get_site_page
ChatGPTFetch one landing page in full: desktop, mobile and pre-popup screenshots as viewable URLs, the site's detected technology stack, its traffic estimates, and how many live ads point at it. Fields the user's Replo plan doesn't include come back null and are named in that item's locked list (estimates = sales, visits and traffic); lockedCount is how many more results a higher plan shows. Say the data is on a higher plan; never estimate it yourself. Returns data only: nothing is shown to the user yet. Once you know the answer, call sightglass_show once with this call's resultId to show it as cards; the show call does not search again.
sightglass_get_site_page_versions
ChatGPTHow one landing page changed over time: its dated captures, newest first, each with a screenshot and the offers read from it. Use it for 'what did they change on this page' and to see when an offer appeared or deepened. The window depends on the plan. Fields the user's Replo plan doesn't include come back null and are named in that item's locked list (estimates = sales, visits and traffic); lockedCount is how many more results a higher plan shows. Say the data is on a higher plan; never estimate it yourself. Returns data only: nothing is shown to the user yet. Once you know the answer, call sightglass_show once with this call's resultId to show it as cards; the show call does not search again.
sightglass_get_xray
ChatGPTRead an X-ray. Pass requestId to poll a grade started with sightglass_xray (a finished request is billed when first read). Pass adId or sitePageId to read the grade itself: scores, findings and fixes, as far as the workspace has unlocked it. A target nobody has graded returns its summary with the grade locked; offer to run sightglass_xray. Returns data only: nothing is shown to the user yet. Once you know the answer, call sightglass_show once with this call's resultId to show it as cards; the show call does not search again.
sightglass_list_saved
ChatGPTWhat the user has collected in Sightglass. Returns up to 100 boards with nextBoardCursor for more; pass boardCursor to continue. With no kind it adds a count summary; with kind it lists saved ads, landing pages (site_pages), companies or followed brands. Pass nextCursor as cursor for the next page of items. Fields the user's Replo plan doesn't include come back null and are named in that item's locked list (estimates = sales, visits and traffic); lockedCount is how many more results a higher plan shows. Say the data is on a higher plan; never estimate it yourself.
sightglass_research_company
ChatGPTFind or add a company by website domain and queue background research into its ads, landing pages, store details, and technologies. Newly tracked companies consume one monthly research allowance when research is dispatched. Already tracked companies do not consume another allowance. Results populate asynchronously. Returns data only: nothing is shown to the user yet. Once you know the answer, call sightglass_show once with this call's resultId to show it as cards; the show call does not search again.
sightglass_search_companies
ChatGPTSearch Sightglass companies — what users call brands: the business behind one or more Meta advertiser pages, keyed on its domain. search is semantic, so describe the business (what it sells and to whom). Pass similarToCompanyId to find a company's nearest competitors instead. To look up a brand by its website, pass domainSearch. Each result carries store facts (platform, estimated monthly sales, products, employees, follower counts with 30-day change — all vendor estimates, never reported revenue), rank and rank movement by active ads, and momentum: a transparent 0-100 score whose components[].text say why a brand is growing (ad launches vs last month, active-ad change, follower growth, catalog activity, stack upgrades). Sort by momentum for who is blowing up, most_estimated_sales for the biggest, most_active_ads for who is spending. Trends come from ad start/stop dates and only cover ads Sightglass has seen. Fields the user's Replo plan doesn't include come back null and are named in that item's locked list (estimates = sales, visits and traffic); lockedCount is how many more results a higher plan shows. Say the data is on a higher plan; never estimate it yourself. Returns data only: nothing is shown to the user yet. Once you know the answer, call sightglass_show once with this call's resultId to show it as cards; the show call does not search again.
sightglass_show
ChatGPTShow a prior Sightglass result to the user as an inline card, in hosts that draw cards. Call it once, after the data call that answered the user's question, with that call's resultId. This call returns the stored result without searching again or spending credits. Skip it for empty results. Where the host draws the card, the user already sees every item: do not restate them as a list or a table, write two or three sentences on what stands out. Where no card appears, the user has not seen the items, so summarize the ones that answer the question.
sightglass_update_board
ChatGPTRename one of the user's Sightglass boards.
sightglass_xray
ChatGPTStart an X-ray: a graded teardown of one ad (with its landing page, as a funnel) or one landing page, scored against what works in its category. Pass exactly one of adId or sitePageId. This spends the workspace's Replo credits (the model cost, or one credit when a grade already exists), so only call it when the user asked for a grade. It returns a request; poll sightglass_get_xray with its id every few seconds until it finishes, then read the grade with the same target. Returns data only: nothing is shown to the user yet. Once you know the answer, call sightglass_show once with this call's resultId to show it as cards; the show call does not search again.
slack_get_channel_info
ChatGPT[Slack] Retrieve conversation details including topic, purpose, and membership state
slack_get_channel_members
ChatGPT[Slack] List members in a Slack channel
slack_get_conversation_history
ChatGPT[Slack] Fetch paginated message history for a conversation within optional time bounds
slack_get_message_permalink
ChatGPT[Slack] Get a permanent URL for a message
slack_get_reactions
ChatGPT[Slack] Get emoji reactions for a Slack message by channel ID and message timestamp.
slack_get_team_info
ChatGPT[Slack] Retrieve workspace details such as name, domain, and icon
slack_get_thread_replies
ChatGPT[Slack] Fetch paginated thread replies and parent message for a conversation thread
slack_get_user_info
ChatGPT[Slack] Retrieve a user's account details, including profile and avatar fields
slack_get_user_profile
ChatGPT[Slack] Retrieve a user's detailed profile, status, and custom fields
slack_list_channels
ChatGPT[Slack] List Slack conversations with optional type filters and cursor pagination.
slack_list_files
ChatGPT[Slack] List files shared in the workspace
slack_list_users
ChatGPT[Slack] List all users in the workspace
slack_lookup_user_by_email
ChatGPT[Slack] Look up a user by email address
slack_search_channels
ChatGPT[Slack] Search public Slack channels by name, topic, or purpose using Slack assistant search. Only public channels are queried.
slack_search_messages
ChatGPT[Slack] Search public Slack messages using Slack assistant search. Only public-channel messages are queried; DMs, MPIMs, and private channels are excluded.
slack_search_users
ChatGPT[Slack] Search Slack users by name, title, or email using Slack assistant search.
submit_feature_request
ChatGPTSubmit a feature request to Replo when the user asks to send feedback about a missing capability. Provide the projectId, a short title, and a concise description of the requested capability. Do not include conversation transcripts, verbatim messages, message references, credentials, or unrelated personal or customer data. Creates one feedback record for Replo's team; retries after success create duplicates.
update_file
ChatGPTRename or move an entry within its project. Set parentId to null to move it to My Files. Existing content is preserved; conflicts never overwrite.
update_product
ChatGPTChange the current catalog details of a Replo-managed product. Null values clear nullable fields.
update_project
ChatGPTUpdate the supplied settings of a Replo project: name, time zone, currency, support email, or checkoutProvider. Changing checkoutProvider affects checkout on the project's sites after publication; Shopify checkout requires a connected store and Replo checkout requires payments onboarding. Publishing is a separate action.
update_site
ChatGPTRename a Replo site's dashboard display name. This does not change its SEO page title or published page content.
update_site_metadata
ChatGPTUpdate site-wide SEO title, description, social preview, favicon references, or search visibility in the selected site's root layout. Does not rename the dashboard label. Starts an asynchronous internal-agent operation; poll get_agent_session. For corrections, call this same tool with its sessionId and unchanged target. Requires a provisioned site. Source edits may execute in its preview. The Replo agent uses its normal tools and connected integrations to implement and verify the requested changes. Use publish_site separately to make changes public.
update_site_navigation
ChatGPTUpdate the selected site's shared navigation, header, or footer in its layout and shared components. Shared component changes affect all pages using them. Starts an asynchronous internal-agent operation; poll get_agent_session. For corrections, call this same tool with its sessionId and unchanged target. Requires a provisioned site. Source edits may execute in its preview. The Replo agent uses its normal tools and connected integrations to implement and verify the requested changes. Use publish_site separately to make changes public.
update_site_tracking
ChatGPTAdd, change, or remove a user-requested analytics or marketing script in the selected site's root layout. Name the provider, identifiers, and requested behavior. After publication, the script may send visitor data to that provider. Starts an asynchronous internal-agent operation; poll get_agent_session. For corrections, call this same tool with its sessionId and unchanged target. Requires a provisioned site. Source edits may execute in its preview. The Replo agent uses its normal tools and connected integrations to implement and verify the requested changes. Use publish_site separately to make changes public.
upload_asset
ChatGPTImport a file or publicly accessible URL into a project's asset library. Replo generates a semantic-search embedding by default.
verify_custom_domain
ChatGPTCheck DNS for a pending or stale custom domain and activate it when records have propagated. If verification cannot complete yet, the tool returns the current domain status instead of failing.
abort_agent_session
Claudeconnect_custom_domain
Claudecreate_product
Claudecreate_project
Claudecreate_task
Claudedelete_task
Claudefind_assets
Claudefind_orders
Claudefind_products
Claudeget_agent_session
Claudeget_custom_domain_status
Claudeget_order
Claudeget_product
Claudeget_task
Claudelist_projects
Claudelist_sites
Claudelist_tasks
Claudequery_replo_analytics
Clauderesolve_agent_interaction
Claudesend_agent_message
Claudestart_agent_session
Claudeupdate_product
Claudeupdate_site
Claudeupdate_task
Claudeupload_asset
Claudeverify_custom_domain
Claude