UCP CLI and Global Catalog — article thumbnail

Shopify's New UCP CLI and Global Catalog ── Trying Out the Product Search Infrastructure for AI Agents

On May 19, 2026, Shopify's official developer account announced that a new mechanism for AI agents had gone fully live. Specifically, it was the release of a command-line tool called UCP CLI, along with a new product search index called Global Catalog.

The Universal Commerce Protocol is now fully live for all merchants. Teach your agents how to search billions of products in the Shopify Catalog, create carts, and check out with the new UCP skill.

Announcement from Shopify Developers (2026-05-19)

In a recent article, we covered how Shopify had automatically deployed AI-agent endpoints (/llms.txt / /agents.md / /.well-known/ucp) across every store, and this article is the follow-up. Here, we organize what the newly released UCP CLI and Global Catalog are for and what they make possible, while sharing a record of actually running the tools ourselves.

What was released

Broadly speaking, two things were released.

The first is the UCP CLI. There is a common protocol called the Universal Commerce Protocol (UCP) that allows AI agents to interact with e-commerce stores, and this is a command-line tool that serves as its reference implementation.

npm install -g @shopify/ucp-cli

It can be installed with the command above, and is intended to be built into an AI agent as a "shopping playbook."

The second is Global Catalog. It is a centralized product index operated by Shopify at catalog.shopify.com, aggregating products from Shopify merchants worldwide so that AI agents can search across all of them. It supports real-time pricing, inventory, region, and currency, and it handles product data normalization and ranking internally.

What is this mechanism for?

It's a bit abstract, so let's break down what this mechanism is actually for.

Until now, even if you asked an AI for "a keyboard," the most it could do was search Google and read out the contents of the pages that came up. To actually compare products, add them to a cart, and pay, you had to open a browser and do the work yourself.

This announcement changes that situation dramatically. With Global Catalog, AI agents can now search across products from Shopify stores worldwide simply by querying a single endpoint. No crawling or scraping is required. Pricing and inventory are real-time as well.

And once a product is found, the agent can create a cart, select shipping options, and complete payment with the merchant that the product belongs to (the individual Shopify store), all using the same UCP protocol. In other words, the path that lets an AI agent handle everything from "finding a product" to "actually buying it" end to end is already in place.

The UCP CLI is the reference implementation for actually exercising that path. Developers building their own agents can install it and make it callable from their agent, allowing them to run "product search → cart → checkout" in their implementation.

A design that separates "search" from "purchase"

Architecturally, what's interesting is that "search" and "purchase" are split into different layers.

Search is handled by Global Catalog (catalog.shopify.com). This is an endpoint dedicated to product search and product lookup; it has no cart or payment functionality. Indeed, the UCP profile you get by hitting catalog.shopify.com/.well-known/ucp lists only the catalog.search and catalog.lookup capabilities.

Purchase execution, on the other hand, is handled by the individual Shopify merchant. Each store's /.well-known/ucp exposes a full set of commerce capabilities such as cart / checkout / fulfillment / discount / payment_handlers. The flow is that the AI agent directly creates a cart with the merchant that owns a product found in Global Catalog, and proceeds through checkout.

Thanks to this division of roles, AI agents can handle Shopify stores worldwide with a simple pattern: "first find the best product at the central search endpoint, then proceed through the purchase flow with the individual merchant from there."

Actually setting up the UCP CLI

The installation itself is done with npm install -g @shopify/ucp-cli. It requires Node.js 22 or higher, so if you're on an older environment, that's the one thing to watch out for.

After installation, there is one mandatory step: you need to create an agent-side profile. Because UCP identifies "which AI agent the request is coming from" at the protocol level, without a profile, commands like search will return nothing at all.

ucp profile init --name agent

The profile name (the string after --name) is just for identifying it on your end, so any name will do. Something easy for you to recognize, like agent / shopper / mybot, is enough. If you want to use multiple agents, giving each a purpose-specific name makes them easy to tell apart.

This creates a profile under ~/.ucp/profiles/agent, which you can then use in subsequent commands. That's all the preparation needed.

Trying out product search

After setup, let's actually run a command. The idea is to pass a "keyword" and "context" (region and purchase intent) directly from the CLI to search.

ucp catalog search \
  --set /query='本革 リュック レディース' \
  --set /context/address_country=JP \
  --view :compact --format md

Running this returns products matching the query from Shopify stores around the world, spanning multiple merchants. In addition to the product name, price, and currency, each product also lists the domain of the seller it belongs to, so the agent can proceed from there to the next action (creating a cart).

Here are the actual results we got (the top 10).

## result

| title                                                | price | currency | seller            |
|------------------------------------------------------|-------|----------|-------------------|
| Women's Classic Leather Belt | Black Matte           | 13100 | JPY      | thursdayboots.com |
| Classic Belt – Black                                 |  6500 | JPY      | bellabelts.com    |
| Custom Handbag with Kid's Name / Little Sweethearts  |  9684 | JPY      | suzitee.com       |
| Modern Belt – Navy Blue                              |  6500 | JPY      | bellabelts.com    |
| Women's Western Leather Belt | Black                 | 13100 | JPY      | thursdayboots.com |
| Original Bag Stone & Accessories                     |  7496 | GBP      | pompomlondon.com  |
| "Frankenstein" Old Parchment Leather Handbag         | 14299 | USD      | litborne.com      |
| Penrose Pocket Tote 25                               | 30000 | JPY      | dooney.com        |
| Modern Belt – Beige                                  |  6500 | JPY      | bellabelts.com    |
| Women's Transport                                    | 11996 | USD      | dardanos.com      |

If you want to narrow the search to a specific merchant only, add --business <url>. In that case, the CLI goes directly to the specified merchant's UCP endpoint rather than Global Catalog.

The end of each response always includes a hint about "the next action the agent should take", even generating an example command such as "to create a cart, pass this business and variant ID." It's designed so that every response acts as a playbook, making it easy for the AI agent to run autonomously.

The difference between Japanese and English queries

Looking closely at the results above, even though the search query was "本革 リュック レディース" (genuine leather backpack, women's), the top hits were all belts and handbags, and not a single backpack, the very thing we wanted, appeared. On top of that, the currencies were a mix of JPY / USD / GBP, with products centered on overseas merchants. Despite specifying /context/address_country=JP, products from Japanese merchants didn't come up very prominently.

This may be because, among "本革" (genuine leather), "レディース" (women's), and "リュック" (backpack), the terms that are well-represented in English-language data (leather, women's) matched more broadly, while the compound concept of "genuine leather + backpack" wasn't being applied as an AND condition. As a test, we replaced the same intent with an English query.

ucp catalog search \
  --set /query='leather backpack women' \
  --set /context/address_country=JP \
  --view :compact --format md

Here are the results.

## result

| title                                                            | price | currency | seller                       |
|------------------------------------------------------------------|-------|----------|------------------------------|
| Top Grain Leather Backpack Women City Backpack Natural Cowhide   | 12500 | USD      | rockcowleatherstudio.com     |
| Top Grain Leather Backpack For Women Female Designer Backpack    | 12500 | USD      | rockcowleatherstudio.com     |
| Women Leather Knapsack, Stylish Leather Backpack, Shoulder Bag   | 13900 | USD      | rockcowleatherstudio.com     |
| Real Leather Backpack For Women Daypack Organiser Bags HOL0791   |  7700 | JPY      | houseofleatheruk.com         |
| Womens Real Leather Casual Backpack Eliza Coffee                 | 10900 | JPY      | houseofleatheruk.com         |
| Vintage Leather Women Backpack, School Backpack, Designer Bag    | 17900 | USD      | rockcowleatherstudio.com     |
| Viola Womens Leather Backpack                                    | 24430 | AUD      | mimiandcoco.com.au           |
| Vintage Full Grain Leather Backpack, Women Backpack Purse        | 22900 | USD      | rockcowleatherstudio.com     |
| Genuine Leather Backpack Purse for Women, Full Grain Leather     | 14200 | USD      | rockcowleatherstudio.com     |
| Multicolor Women Leather Zipper Backpack                         | 17900 | JPY      | buykud.com                   |

This time, all 10 results came back as spot-on "Women's Leather Backpack" products. The intent of the query is directly reflected in the results.

The fact that the results differ this much between Japanese and English queries for the same intent shows that Global Catalog's natural language processing is currently more mature for English, and that Japanese is not yet fully optimized. Since Global Catalog itself only began full operation in May 2026, support for Japanese queries is likely an area that will improve going forward.

That said, even with a Japanese query, if you search precisely by brand name or product name, Shopify store products do come back from the index. Our impression at this point is that "accuracy for vague searches by category or features is still a work in progress."

Cart creation and checkout are possible too

When you want to add a product found via search to a cart, you pass the relevant merchant's URL and a variant ID to ucp cart create. From the merchant side, you get back a confirmed price, a shipping estimate, and even a URL to transition into the payment flow.

From there, the flow is: convert to a checkout with ucp checkout create, specify the shipping address and payment details with ucp checkout update, and finally confirm with ucp checkout complete.

When a situation arises mid-flow that "requires human confirmation" (for example, 3-D Secure authentication or a regulatory consent check), UCP is specified to return a continue_url to the AI agent on the spot. Depending on the hooks configured on the agent side (opening a browser / sending a notification / hitting a webhook, etc.), the buyer can be handed off smoothly.

By the way, who installs the UCP CLI?

This is a bit easy to misunderstand, but it is not the merchant (the seller) who installs the UCP CLI. The merchant side is automatically UCP-ready simply by using Shopify, so no additional work is required.

The ones who install the UCP CLI are the people building the AI agent side. Specifically, this applies to developers who want to add "shopping functionality" to their agents, and to power users who incorporate it as a skill into an existing agent framework like Hermes Agent.

In the future, if general-purpose AI assistants such as ChatGPT or Claude officially support UCP, ordinary consumers will be able to use this mechanism without installing anything. At this point, it's positioned as a phase where developers and advanced users are the first to be hands-on with it.

What's likely to change from the merchant's perspective

Thinking from the merchant's point of view, a slightly different perspective from traditional store traffic acquisition seems to be needed.

Until now, the main axis of customer acquisition was increasing visits to the store itself through SEO and advertising. The flow was for visitors to look at products within the store, add them to a cart, and pay.

With purchases via AI agents, on the other hand, consumers don't directly specify a store name. They simply ask the AI for "a keyboard" or "a genuine leather business bag," and the AI completes the journey: cross-searching Global Catalog → selecting the best product from the top results → purchasing from that merchant. The merchant's role concentrates on "getting found within the Catalog."

When we tried a global search using our own store on real hardware, we also observed that our products don't easily appear at the top for general category searches (for example, a search like "genuine leather bag"). On the other hand, if you do a precise search by brand name or product name, they do show up in the results. In other words, it's a state where "the data is in the index, but it's buried by others in the ranking."

This gap likely arises from the richness of the information the AI references when comparing products: how product names are written, the content of product descriptions, how well metafields and product type are maintained, the freshness of pricing and inventory, reviews, and so on. Just as keyword and content quality were tested in the context of Google SEO, "how well product information is maintained for AI" looks set to become the new battleground going forward.

Points to watch going forward

What got moving with this announcement is probably just the starting line. Here are a few points we want to keep an eye on going forward.

One is UCP support in general-purpose AI assistants. If the AI assistants already used by many people, such as ChatGPT, Claude, and Gemini, come to officially support UCP, "shopping via AI" will become an everyday thing for consumers without them even being aware of it. When that moment comes, a store that can't be found within the Catalog may, quite literally, be the same as a "store that doesn't exist."

Another is the Universal Cart API (currently in preview). This is an API that lets you handle products from multiple merchants in a single cart while preserving real-time pricing, inventory, and discount information. Once it goes fully live, AI agents will be able to offer consumers an experience of selecting products from multiple stores and buying them all at once.

And then there's the ranking logic of Global Catalog. Even if Shopify never fully discloses "what it looks at" officially, we can infer a certain direction: structured product information, natural-language descriptions, normalized attributes, the freshness of pricing and inventory, reviews, and so on. We think there's value in getting the preparation that merchants can do underway now.

Summary

With the UCP CLI and Global Catalog released by Shopify, AI agents can now perform the entire sequence of "cross-searching products from Shopify stores worldwide, and buying a found product directly from the merchant it belongs to" using a common protocol.

Because Shopify stores are already set up to be UCP-ready, if developers build an agent, "shopping via AI" can be made to work starting today.

From the merchant's perspective, the previous premise of "getting people to visit the store" may gradually be replaced by the premise of "getting found within the Catalog." Beyond just building out the store, the steady preparation of shaping the product information itself into a form that AI can easily interpret is likely to pay off in the phase ahead.

Reference links

Back to blog