Connect your AI tools to the Shopify platform. The Toolkit gives your agent access to Shopify's documentation, API schemas, and code validation for building apps, and store management through the CLI's store execute capabilities. For more info, see the docs.
> /plugin marketplace add Shopify/Shopify-AI-Toolkit> /plugin install shopify-plugin@shopify-ai-toolkit
Repo: Shopify/Shopify-AI-Toolkit
What's inside
Connect your AI tools to the Shopify platform.
The Toolkit gives your agent access to Shopify's documentation, API schemas, and code validation for building apps, and store management through the CLI's store execute capabilities. For more info, see the docs.
For Claude Code: In your terminal, run claude plugin install:
claude plugin install shopify-ai-toolkit@claude-plugins-official
For OpenAI Codex: In your terminal, run codex plugin add:
codex plugin add shopify@openai-curated
For Antigravity CLI: In your terminal, install the Shopify plugin:
agy plugin install https://github.com/Shopify/shopify-ai-toolkit
For Cursor: In Cursor Chat, add the Shopify plugin:
/add-plugin shopify
For Hermes: In your terminal, download the install script and run it:
curl -fsSL https://raw.githubusercontent.com/Shopify/Shopify-AI-Toolkit/main/.hermes-plugin/install.sh -o /tmp/shopify-hermes-install.sh
bash /tmp/shopify-hermes-install.sh
For Pi: In your terminal, install the package from git:
pi install git:github.com/Shopify/Shopify-AI-Toolkit
For VS Code:
Ensure the Agent plugins preview is enabled in your VS Code settings.
Open the Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows/Linux) and run:
Chat: Install Plugin From Source
When prompted, enter the repository URL:
https://github.com/Shopify/shopify-ai-toolkit
The skill scripts (scripts/search_docs.mjs, scripts/validate.mjs, scripts/log_skill_use.mjs) send a usage event to https://shopify.dev/mcp/usage on each invocation. The payload includes:
search_docs.mjs)validate.mjs)--user-prompt-base64 to validate.mjs (for skills with validation) or log_skill_use.mjs (for skills without). Encoding the prompt keeps untrusted message text out of shell syntax. Exactly one designated capture point per skill โ search_docs.mjs does not carry user_prompt.sessionId and toolUseId (when supplied via --session-id / --tool-use-id) so analytics can join script events with the hook's skill_invocation event for the same activation.The plugin also registers a PostToolUse hook (hooks/track-telemetry.sh, .ps1) on Claude Code, Cursor, and GitHub Copilot. It emits a skill_invocation event to the same endpoint whenever the agent calls the host Skill tool with a Shopify AI Toolkit skill or reads a SKILL.md from a recognized install path. The payload includes:
skill-tool or skill-md-read)claude-code / cursor / copilot-cli / vscode / vscode-insiders)plugin or skill)sessionId and toolUseId (when supplied)UserPromptSubmit hook that stashes it locally and attached here only when a skill activates. Honors OPT_OUT_INSTRUMENTATION; other hosts carry no prompt on this surface.The same script is also injected into each generated SKILL.md as a hooks: frontmatter block, so Claude Code emits the same event when skills are installed standalone (e.g. via npx skills add Shopify/shopify-ai-toolkit) without the plugin. Events from each source are labeled with hookSource and carry sessionId + toolUseId inside the body's parameters object, so downstream consumers can dedup on (sessionId, toolUseId) when both surfaces are installed.
The hook does not report tool inputs, file contents, generated code, or other tool arguments. On Claude Code it can additionally attach user_prompt (the most recent prompt verbatim) via the UserPromptSubmit stash, but only when a Shopify skill activates. On other hosts (Cursor, Copilot) the hook carries no prompt and user_prompt capture happens on the script surfaces only (validate.mjs for skills with validation, log_skill_use.mjs for skills without). See hooks/README.md for full coverage details.
This is on by default. To opt out โ for skill scripts, the MCP server, and the hook โ set the environment variable:
OPT_OUT_INSTRUMENTATION=true
If your platform doesn't support plugins, you can install agent skills or the Dev MCP server directly. For instructions, see shopify.dev/docs/apps/build/ai-toolkit.
Thanks for your interest but we don't accept pull requests. Any pull requests will be automatically closed.
.agents/
plugins/
marketplace.json
.claude-plugin/
marketplace.json
plugin.json
.codex-plugin/
plugin.json
.cursor-plugin/
marketplace.json
plugin.json
.github/
CODE_OF_CONDUCT.md
CODEOWNERS
CONTRIBUTING.md
PULL_REQUEST_TEMPLATE.md
.gitignore
.hermes-plugin/
__init__.py
install.sh
plugin.yaml
README.md
.mcp.json
assets/
shopify_glyph.svg
CHANGELOG.md
gemini-extension.json
hooks/
copilot-hooks.json
cursor-hooks.json
hooks.json
README.md
scripts/
track-telemetry.ps1
track-telemetry.sh
LICENSE
package.json
plugin.json
README.md
skills/
shopify-admin/
assets/
admin_2025-10.json.gz
admin_2026-01.json.gz
admin_2026-04.json.gz
admin_2026-07.json.gz
admin_2026-10.json.gz
admin_unstable.json.gz
data/
supported-versions-schema.json
scripts/
search_docs.mjs
track-telemetry.ps1
track-telemetry.sh
validate.mjs
SKILL.md
shopify-app-store-review/
scripts/
log_skill_use.mjs
track-telemetry.ps1
track-telemetry.sh
SKILL.md
shopify-custom-data/
scripts/
log_skill_use.mjs
track-telemetry.ps1
track-telemetry.sh
SKILL.md
shopify-customer/
assets/
customer_2025-10.json.gz
customer_2026-01.json.gz
customer_2026-04.json.gz
customer_2026-07.json.gz
customer_2026-10.json.gz
customer_unstable.json.gz
data/
supported-versions-schema.json
scripts/
search_docs.mjs
track-telemetry.ps1
track-telemetry.sh
validate.mjs
SKILL.md
shopify-dev/
scripts/
log_skill_use.mjs
search_docs.mjs
track-telemetry.ps1
track-telemetry.sh
SKILL.md
shopify-functions/
assets/
functions_cart_checkout_validation_2025-10.json.gz
functions_cart_checkout_validation_2026-01.json.gz
functions_cart_checkout_validation_2026-04.json.gz
functions_cart_checkout_validation_2026-07.json.gz
functions_cart_checkout_validation_2026-10.json.gz
functions_cart_checkout_validation_unstable.json.gz
functions_cart_transform_2025-10.json.gz
functions_cart_transform_2026-01.json.gz
functions_cart_transform_2026-04.json.gz
functions_cart_transform_2026-07.json.gz
functions_cart_transform_2026-10.json.gz
functions_cart_transform_unstable.json.gz
functions_delivery_customization_2025-10.json.gz
functions_delivery_customization_2026-01.json.gz
functions_delivery_customization_2026-04.json.gz
functions_delivery_customization_2026-07.json.gz
functions_delivery_customization_2026-10.json.gz
functions_delivery_customization_unstable.json.gz
functions_discount_2025-10.json.gz
functions_discount_2026-01.json.gz
functions_discount_2026-04.json.gz
functions_discount_2026-07.json.gz
functions_discount_2026-10.json.gz
functions_discount_unstable.json.gz
functions_discounts_allocator_unstable.json.gz
functions_fulfillment_constraints_2025-10.json.gz
functions_fulfillment_constraints_2026-01.json.gz
functions_fulfillment_constraints_2026-04.json.gz
functions_fulfillment_constraints_2026-07.json.gz
functions_fulfillment_constraints_2026-10.json.gz
functions_fulfillment_constraints_unstable.json.gz
functions_local_pickup_delivery_option_generator_unstable.json.gz
functions_order_discounts_2025-10.json.gz
functions_order_discounts_2026-01.json.gz
functions_order_discounts_2026-04.json.gz
functions_order_discounts_2026-07.json.gz
functions_order_discounts_2026-10.json.gz
functions_order_discounts_unstable.json.gz
functions_order_routing_location_rule_2025-10.json.gz
functions_order_routing_location_rule_2026-01.json.gz
functions_order_routing_location_rule_2026-04.json.gz
functions_order_routing_location_rule_2026-07.json.gz
functions_order_routing_location_rule_2026-10.json.gz
functions_order_routing_location_rule_unstable.json.gz
functions_payment_customization_2025-10.json.gz
functions_payment_customization_2026-01.json.gz
functions_payment_customization_2026-04.json.gz
functions_payment_customization_2026-07.json.gz
functions_payment_customization_2026-10.json.gz
functions_payment_customization_unstable.json.gz
functions_pickup_point_delivery_option_generator_unstable.json.gz
functions_product_discounts_2025-10.json.gz
functions_product_discounts_2026-01.json.gz
functions_product_discounts_2026-04.json.gz
functions_product_discounts_2026-07.json.gz
functions_product_discounts_2026-10.json.gz
functions_product_discounts_unstable.json.gz
functions_shipping_discounts_2025-10.json.gz
functions_shipping_discounts_2026-01.json.gz
functions_shipping_discounts_2026-04.json.gz
functions_shipping_discounts_2026-07.json.gz
functions_shipping_discounts_2026-10.json.gz
functions_shipping_discounts_unstable.json.gz
data/
supported-versions-schema.json
scripts/
search_docs.mjs
track-telemetry.ps1
track-telemetry.sh
validate.mjs
SKILL.md
shopify-hydrogen/
assets/
supported-versions-schema.json
types/
@react-router/
dev/
7.12.0/
dist/
cli/
index.d.ts.gz
config.d.ts.gz
routes-CZR-bKRt.d.ts.gz
routes.d.ts.gz
vite/
vite.d.ts.gz
cloudflare.d.ts.gz
package.json.gz
rsc-types.d.ts.gz
7.16.0/
dist/
cli/
index.d.ts.gz
config.d.ts.gz
routes-CZR-bKRt.d.ts.gz
routes.d.ts.gz
vite/
vite.d.ts.gz
cloudflare.d.ts.gz
package.json.gz
rsc-types.d.ts.gz
@shopify/
hydrogen/
hydrogen-react/
2025.10.0/
dist/
types/
AddToCartButton.d.ts.gz
analytics-constants.d.ts.gz
analytics-schema-custom-storefront-customer-tracking.d.ts.gz
analytics-schema-trekkie-storefront-page-view.d.ts.gz
analytics-types.d.ts.gz
analytics-utils.d.ts.gz
analytics.d.ts.gz
BaseButton.d.ts.gz
BuyNowButton.d.ts.gz
cart-constants.d.ts.gz
cart-hooks.d.ts.gz
cart-queries.d.ts.gz
cart-types.d.ts.gz
CartCheckoutButton.d.ts.gz
CartCost.d.ts.gz
CartLineProvider.d.ts.gz
CartLineQuantity.d.ts.gz
CartLineQuantityAdjustButton.d.ts.gz
CartProvider.d.ts.gz
codegen.helpers.d.ts.gz
cookies-utils.d.ts.gz
customer-account-api-types.d.ts.gz
ExternalVideo.d.ts.gz
flatten-connection.d.ts.gz
getProductOptions.d.ts.gz
Image.d.ts.gz
index.d.ts.gz
load-script.d.ts.gz
MediaFile.d.ts.gz
ModelViewer.d.ts.gz
Money.d.ts.gz
optionValueDecoder.d.ts.gz
parse-metafield.d.ts.gz
ProductPrice.d.ts.gz
ProductProvider.d.ts.gz
RichText.components.d.ts.gz
RichText.d.ts.gz
RichText.test.helpers.d.ts.gz
RichText.types.d.ts.gz
ShopifyProvider.d.ts.gz
ShopPayButton.d.ts.gz
storefront-api-constants.d.ts.gz
storefront-api-response.types.d.ts.gz
storefront-api-types.d.ts.gz
storefront-client.d.ts.gz
tracking-utils.d.ts.gz
useCartActions.d.ts.gz
useCartAPIStateMachine.d.ts.gz
useMoney.d.ts.gz
useSelectedOptionInUrlParam.d.ts.gz
useShopifyCookies.d.ts.gz
Video.d.ts.gz
package.json.gz
2025.7.2/
dist/
types/
AddToCartButton.d.ts.gz
analytics-constants.d.ts.gz
analytics-schema-custom-storefront-customer-tracking.d.ts.gz
analytics-schema-trekkie-storefront-page-view.d.ts.gz
analytics-types.d.ts.gz
analytics-utils.d.ts.gz
analytics.d.ts.gz
BaseButton.d.ts.gz
BuyNowButton.d.ts.gz
cart-constants.d.ts.gz
cart-hooks.d.ts.gz
cart-queries.d.ts.gz
cart-types.d.ts.gz
CartCheckoutButton.d.ts.gz
CartCost.d.ts.gz
CartLineProvider.d.ts.gz
CartLineQuantity.d.ts.gz
CartLineQuantityAdjustButton.d.ts.gz
CartProvider.d.ts.gz
codegen.helpers.d.ts.gz
cookies-utils.d.ts.gz
customer-account-api-types.d.ts.gz
ExternalVideo.d.ts.gz
flatten-connection.d.ts.gz
getProductOptions.d.ts.gz
Image.d.ts.gz
index.d.ts.gz
load-script.d.ts.gz
MediaFile.d.ts.gz
ModelViewer.d.ts.gz
Money.d.ts.gz
optionValueDecoder.d.ts.gz
parse-metafield.d.ts.gz
ProductPrice.d.ts.gz
ProductProvider.d.ts.gz
RichText.components.d.ts.gz
RichText.d.ts.gz
RichText.test.helpers.d.ts.gz
RichText.types.d.ts.gz
ShopifyProvider.d.ts.gz
ShopPayButton.d.ts.gz
storefront-api-constants.d.ts.gz
storefront-api-response.types.d.ts.gz
storefront-api-types.d.ts.gz
storefront-client.d.ts.gz
tracking-utils.d.ts.gz
useCartActions.d.ts.gz
useCartAPIStateMachine.d.ts.gz
useMoney.d.ts.gz
useSelectedOptionInUrlParam.d.ts.gz
useShopifyCookies.d.ts.gz
Video.d.ts.gz
package.json.gz
2026.1.2/
dist/
types/
AddToCartButton.d.ts.gz
analytics-constants.d.ts.gz
analytics-schema-custom-storefront-customer-tracking.d.ts.gz
analytics-schema-trekkie-storefront-page-view.d.ts.gz
analytics-types.d.ts.gz
analytics-utils.d.ts.gz
analytics.d.ts.gz
BaseButton.d.ts.gz
BuyNowButton.d.ts.gz
cart-constants.d.ts.gz
cart-hooks.d.ts.gz
cart-queries.d.ts.gz
cart-types.d.ts.gz
CartCheckoutButton.d.ts.gz
CartCost.d.ts.gz
CartLineProvider.d.ts.gz
CartLineQuantity.d.ts.gz
CartLineQuantityAdjustButton.d.ts.gz
CartProvider.d.ts.gz
codegen.helpers.d.ts.gz
cookies-utils.d.ts.gz
customer-account-api-types.d.ts.gz
ExternalVideo.d.ts.gz
flatten-connection.d.ts.gz
getProductOptions.d.ts.gz
Image.d.ts.gz
index.d.ts.gz
load-script.d.ts.gz
MediaFile.d.ts.gz
ModelViewer.d.ts.gz
Money.d.ts.gz
optionValueDecoder.d.ts.gz
parse-metafield.d.ts.gz
ProductPrice.d.ts.gz
ProductProvider.d.ts.gz
RichText.components.d.ts.gz
RichText.d.ts.gz
RichText.test.helpers.d.ts.gz
RichText.types.d.ts.gz
ShopifyProvider.d.ts.gz
ShopPayButton.d.ts.gz
storefront-api-constants.d.ts.gz
storefront-api-response.types.d.ts.gz
storefront-api-types.d.ts.gz
storefront-client.d.ts.gz
tracking-utils.d.ts.gz
useCartActions.d.ts.gz
useCartAPIStateMachine.d.ts.gz
useMachine.d.ts.gz
useMoney.d.ts.gz
useSelectedOptionInUrlParam.d.ts.gz
useShopifyCookies.d.ts.gz
Video.d.ts.gz
package.json.gz
2026.4.3/
dist/
types/
AddToCartButton.d.ts.gz
analytics-constants.d.ts.gz
analytics-schema-custom-storefront-customer-tracking.d.ts.gz
analytics-schema-trekkie-storefront-page-view.d.ts.gz
analytics-types.d.ts.gz
analytics-utils.d.ts.gz
analytics.d.ts.gz
BaseButton.d.ts.gz
BuyNowButton.d.ts.gz
cart-constants.d.ts.gz
cart-hooks.d.ts.gz
cart-queries.d.ts.gz
cart-types.d.ts.gz
CartCheckoutButton.d.ts.gz
CartCost.d.ts.gz
CartLineProvider.d.ts.gz
CartLineQuantity.d.ts.gz
CartLineQuantityAdjustButton.d.ts.gz
CartProvider.d.ts.gz
codegen.helpers.d.ts.gz
cookies-utils.d.ts.gz
customer-account-api-types.d.ts.gz
ExternalVideo.d.ts.gz
flatten-connection.d.ts.gz
getProductOptions.d.ts.gz
Image.d.ts.gz
index.d.ts.gz
load-script.d.ts.gz
MediaFile.d.ts.gz
ModelViewer.d.ts.gz
Money.d.ts.gz
... 1600 moreShowing a partial view of a very large repo.
FAQ
shopify-plugin is a Claude Code plugin with 21 hand-picked skills for development work, indexed on Flowy. Install it with the command on its page. It includes shopify-admin, shopify-app-store-review, shopify-custom-data. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.