Agentic commerce

Sidekick can now find your app without a tools file

A September 28 change made intent-only extensions eligible for Sidekick. What app intents are, how they differ from the admin intents with the same name, and the two config fields that decide whether Sidekick ever surfaces you.

Bas Lefeber

Founder, learnshopify.dev · September 29, 2026 · 5 min read

Ready to learn Shopify development?Short, interactive lessons where you write real Liquid against a live storefront and watch it change as you type. Free, and genuinely fun.

On September 28, 2026, Shopify shipped a change with a title only an app developer could love: Sidekick can now invoke app intents without tools. Underneath it is something larger than a config tweak. A merchant asking Sidekick a question is now a place your app can be discovered, and the text that decides whether you show up is two fields long.

It applies to every store immediately. No API version to target, no developer preview to join, nothing to wait for.

Registering an intent is not a feature. It is the difference between being installed and being reachable.

The short version

Before, an extension had to declare tools to be eligible for Sidekick at all, so intent-only extensions were invisible no matter how useful. Now Sidekick surfaces apps from registered intents alone. To be eligible you need an [[extensions.targeting.intents]] block on the extension and an extensions_summary under [sidekick] in shopify.app.toml. Then deploy and actually ask Sidekick something.

First, the naming collision

Shopify's docs use the word intents for two different mechanisms that point in opposite directions. Nearly everyone reading about one ends up in the docs for the other, so it is worth thirty seconds to separate them.

Same word, opposite directions. Admin intents are you calling Shopify. App intents are Shopify calling you.
Admin intentsApp intents
DirectionYour app calls ShopifyShopify calls your app
What it doesLaunches Shopify's native resource editors so you do not build a product formLets Sidekick hand a task to your app
How you use itshopify.intents.invoke('create:shopify/Product')[[extensions.targeting.intents]] in shopify.extension.toml
This post is aboutNoYes
If you are reading about shopify.intents.invoke, you are in the other doc.

What changed on September 28

An app intent is declared on an extension target, along with the route Shopify should open and, optionally, a tools file and an instructions file. Here is the shape, quoted from Shopify's own example:

extensions/open-email/shopify.extension.toml
[[extensions]]name = "Open email"description = "Edit an email campaign"handle = "open-email"type = "admin_link" [[extensions.targeting]]target = "admin.app.intent.link"url = "/edit/{id}"tools = "./tools.json"instructions = "./instructions.md" [[extensions.targeting.intents]]type = "application/email"action = "edit"schema = "./email-schema.json"

Until this change, the tools line was load-bearing in a way nothing said out loud: no tools, or an empty tools.json, and the intent was never registered with Sidekick. An extension could declare exactly what it handled and still be passed over. That is now gone. The intent block alone makes you eligible.

Tools did not become useless, they became optional and they changed job. They still execute while the intent's destination page is open, so they are how Sidekick does something once it has arrived in your app rather than how it decides to come at all.

Docs pages lag changelog entries

Some Sidekick documentation still reads "Sidekick only supports invoking intents that have tools". That sentence described the world until September 28. When a changelog entry and a docs page disagree about a dated behaviour change, the changelog is the one with a date on it. Check both, believe the newer one, and re-test rather than reasoning from either.

The two fields that decide whether you get matched

Eligibility is not visibility. Once you are eligible, whether Sidekick actually surfaces you for a given merchant question comes down to text you wrote, and there is not much of it.

shopify.app.toml
[sidekick]extensions_summary = "Search and analyze product reviews, create review request campaigns"

That summary is capped at 256 tokens, and an app can register at most five intents. Both limits push the same way: this is not a place to describe your product, it is a place to name the concrete jobs a merchant might ask about. "Marketing automation platform" matches nothing a person actually types. "Create and schedule email campaigns, check campaign open rates" matches a question.

The same applies one level down. Each extension's description should name the domain it covers and the tasks it supports, not restate your app's tagline. And the optional instructions.md is where you tell Sidekick how to behave once it is inside your extension, which is the closest thing the platform currently offers to a system prompt you control.

256

tokens

cap on extensions_summary

5

intents

maximum registered per app

0

API versions to target

live on all stores now

Why this is a distribution change, not a feature

For a decade, being found inside the admin meant one thing: your App Store listing. A merchant went looking, searched a category, read a listing, installed. Everything about how apps are named and described was shaped by that one funnel.

A merchant asking Sidekick "how do I follow up with people who left a review" is a different funnel with different mechanics. There is no browsing, no comparison, no listing page. There is a question, and a matcher deciding which of the installed apps claims that job. Your extensions_summary is the thing being matched against, and it is about twenty words long.

There is a real limit worth being honest about: this surfaces apps a merchant has already installed. It is not a new acquisition channel, it is a retention and engagement one. The app that gets used is the app that does not get uninstalled at the next subscription review, and "Sidekick keeps sending me here" is a strong position to hold.

Learn this properly · free lesson

Make your products readable to AI agents

Structure a store's data so an AI agent can actually use it, and see why the shape of what you expose decides what an agent can do with it. Free to work through from here.

Try this lesson — free

What to actually do this week

  1. Check whether you have intents at all. Grep your extensions for extensions.targeting.intents. No matches means you are not in this conversation yet, and adding one intent is a small change.
  2. Check for the [sidekick] block. Intents without extensions_summary is the most likely reason a correctly configured app never appears.
  3. Rewrite the summary as tasks, not positioning. Read it back and ask whether a merchant would ever type those words into a chat box.
  4. Deploy, then actually ask Sidekick. Configuration that is not exercised is configuration you are guessing about. Ask the three questions a real merchant would ask.
  5. If you had tools only to be eligible, reconsider them. They are now for doing work on the destination page, which is a different design question from discovery.

Small change, and a good tell about direction. Shopify is steadily making the admin a place where a merchant describes an outcome instead of navigating to a screen. Apps that can be addressed by name in that world are in a different position from apps that can only be clicked.

Frequently asked questions

Do Shopify app intents still require a tools file for Sidekick?

No. As of September 28, 2026, Sidekick surfaces and invokes apps based on registered intents alone. Before that change an extension had to declare tools to be eligible, and intent-only extensions were passed over entirely. Tools are still useful, but they now run while the intent's destination page is open rather than gating eligibility.

What is the difference between admin intents and app intents?

They point in opposite directions despite the shared name. Admin intents are your app calling Shopify, using shopify.intents.invoke to launch Shopify's native resource editors so you do not build your own product or discount form. App intents are Shopify calling your app, declared with an [[extensions.targeting.intents]] block on a target like admin.app.intent.link, which is what lets Sidekick hand a task to you.

What is extensions_summary in shopify.app.toml?

A short description under the [sidekick] section that Sidekick matches merchant questions against. It is capped at 256 tokens. It should name concrete tasks and queries your app supports rather than describing your product category, because it is matched against what a merchant actually types.

How many app intents can one Shopify app register?

Five. Combined with the 256-token summary cap, the platform is pushing you to pick the handful of jobs you genuinely own rather than claiming everything.

Which targets support app intents?

admin.app.intent.link navigates the merchant to a URL in your app, and since August 2026 it opens as a full-page navigation rather than rendering inside the Sidekick panel. admin.app.intent.render renders an admin UI extension inline and requires API version 2026-04 or later.

Does Sidekick integration help me get new installs?

Not directly. Sidekick surfaces apps a merchant already has installed, so this is engagement and retention rather than acquisition. The practical value is that an app Sidekick routinely routes work to is an app that survives the next subscription review.

Start free

Ready to become a Shopify developer?

You just read how it works. Now write it yourself: real tickets from a live store, in an editor where the storefront updates as you type. Module 1 is free, no card.

Start your first lesson

Free · No credit card · Your first win in minutes

Agentic commerceApp developmentSidekickPlatform

About the author

Bas Lefeber, Founder, learnshopify.dev

Bas builds learnshopify.dev, where developers learn production-grade Shopify theme development against a live storefront. He writes about Liquid, theme architecture, and the parts of the job that still matter now that AI writes the code.

Keep going in the curriculum