Skip to content
VTEX Companion
EN PT Switch to Portuguese

Chrome and Firefox extension

VTEX Companion

Reads the stack, catalog and SEO of the VTEX store open in your tab.

It also calls the store APIs with the session the tab already has, and adds a Localhost button to the FastStore CMS that opens the preview on your dev server. The extension’s interface is in Portuguese only.

The VTEX Companion popup open over a product page, showing the SKU table with ID, name, EAN, reference, stock and price, and the button that opens the product in the admin.
Version
v1.3.0
License
MIT
Telemetry
None
Browsers
Chrome and Firefox

What it does

FastStore preview on localhost

In the FastStore CMS, both the legacy Headless CMS and Storefront > Content, the Preview button opens the published store. The extension adds a Localhost button next to it that opens the same URL on your dev server, with the whole query string. It works on both CMS versions and does not need cmsDevMode. Stores on VTEX IO and on the legacy portal preview by workspace and do not use this flow.

The FastStore CMS admin with the injected Localhost button next to Preview, and the Development Mode panel showing a clickable Localhost URL beside the API URL.

Fetch runner

Calls the store’s APIs from inside the tab, with the session it already has. It comes with presets for Session, Checkout, Catalog, Intelligent Search, OMS and Master Data. Responses show formatted or raw, calls stay in a session history, and you can copy everything as JSON or CSV. Before it runs a method that changes data, it asks for confirmation.

The VTEX panel inside DevTools, with the request on the left and the formatted 200 response on the right, plus the history of the session’s calls.

Stack, segment and session

The extension tells you whether the store runs on IO, FastStore, legacy CMS Portal or headless, and shows the account, workspace, binding and the signals behind each conclusion. The same tab holds the vtex_segment cookie and the session. It reports whether store and admin logins exist on the origin, and clones the session from {account}.myvtex.com to the store domain without the token going through the clipboard.

The popup on the Store tab over a VTEX IO store, with the Segment block showing editable sales channel, culture info, currency and region id, and the Session block below it with the clone from admin and clear session buttons.

SEO and third-party scripts

Checks indexing, canonical, hreflang, JSON-LD, headings and images missing alt, with rules per page type: it flags a PDP with no Product or a listing with no ItemList. Next to it are the vendors loaded on the page (GTM, GA4, Meta, TikTok, Clarity, Criteo and others), with the account id where there is one.

The popup on the Page tab showing the page’s SEO tags (title, description, canonical, robots, lang and H1) and, below them, the detected third-party scripts, Google reCAPTCHA and VTEX Pixel Manager.

Other features

Page catalog
On a PDP, the SKU list with EAN, refId, seller, price and availability, plus a shortcut into the admin. On listings and search, the category, path, term, map and sort order.
Store segment
The vtex_segment cookie decoded: sales channel, culture info, currency and region id as editable fields, plus the whole JSON for priceTables, campaigns and everything else. Saving reloads the tab.
Workspace and URL flags
Opens the same route in another workspace, lists the recent ones and has a shortcut back to master. The render-runtime flags (__siteEditor, __disableSSR, __disablePixels, binding and sales channel) toggle with one click and leave the rest of the query alone.
DevTools panel
Besides the popup, the runner lives in a VTEX tab in DevTools, where it gets the whole window.
Chrome and Firefox
The same source produces two MV3 builds, with service_worker on Chrome and background.scripts on Firefox.

Install

  1. Install it from the Chrome Web Store, for Chrome, Edge and other Chromium-based browsers, or from AMO, for Firefox and Firefox for Android.
  2. Open a VTEX store and click the extension icon. The first time on each store domain, the popup asks for access to the site: click Conceder acesso a este site (grant access to this site). The permission covers that origin only.
  3. For the FastStore preview, keep the store’s pnpm dev running. The extension opens your dev server on port 3000; if yours uses another one, change the Porta (port) field in the popup’s Preview tab.
  4. In the FastStore CMS, click Localhost, next to Preview. To send every preview tab straight to your dev server, turn on Redirecionar a aba de preview para o localhost in the same popup tab.
Load it from source

To try a version that has not reached the stores yet, clone the repository and build it:

pnpm install
pnpm build            # .output/chrome-mv3
pnpm build:firefox    # .output/firefox-mv3

In Chrome, open chrome://extensions, turn on Developer mode and use Load unpacked on the .output/chrome-mv3 folder. In Firefox, open about:debugging#/runtime/this-firefox and use Load Temporary Add-on with .output/firefox-mv3/manifest.json.

FAQ

Which browsers does it work on?

Chrome, Chromium-based browsers and Firefox, including Firefox for Android. There everything happens in the popup, because the browser has no DevTools on the device.

Do I need to be logged into VTEX?

Not to read the page: stack detection, SEO and third-party scripts work on any public VTEX store. To call an endpoint that needs an admin session, you have to be logged into that account’s admin.

Does the extension send my data anywhere?

No. Fetch runner calls go straight from the tab to the store’s domain, and the extension does not copy the responses anywhere.

Why doesn’t installing it ask for access to all websites?

Because there is no global content script: page reading is injected only when you open the popup. Fixed access covers only *.myvtex.com and localhost. Store domains are optional, and you grant them site by site.

I found a bug. Where do I report it?

In the repository issues. It is an independent project maintained in spare time, but I read everything.

It collects nothing

The extension has no server and sends nothing outside the browser. What it reads from the tab is discarded when the panel closes, and the session token is never written to disk.

Privacy policy

An independent project, not affiliated with VTEX. It is not an official VTEX product.