Features.
One dockable panel with a footer row of pickers. Everything reads from the client-side React Fiber tree.
Four sections (Page Parameters, Context Objects, On Page, Other Cached) with search across everything. Hover an entity row and its containers pulse on the page; click an attribute to copy the value. Dirty and new badges per object, system members shown separately.
A document-start tracker captures Load, DOM nodes, request count, JS heap, FCP, LCP, TTFB and CLS, colour-coded against industry thresholds with a tooltip per metric explaining what to aim for.
Deduped by operationId on Mendix 10 or microflow name on classic. Repeat calls are flagged ×2+ as likely nested data sources, with inferred shape and average duration. Refreshes every five seconds without redrawing the panel.
CVE check against the detected runtime version, secret detection across Mendix Constants (JWT, AWS, GitHub, Slack, Stripe, Google, OpenAI/Anthropic, PEM, connection strings) with an entropy fallback, demo users, anonymous session, dev-mode indicators and writable sensitive entities.
Hover any element for its tag, Mendix and custom class chips, full typography and CSS box in a single tooltip. Margin and padding are painted on the page: orange for margin, green for padding.
A 0–100 score weighted across performance, accessibility, security and nesting, with exact deductions. Page-wide audits cover WCAG level and failures, ARIA, landmarks, skip links and touch-target sizes, plus typography and CSS analysis.
Installation.
Chrome Web Store and Firefox Add-ons: live Chrome, Edge and other Chromium browsers install MxInspector from the Chrome Web Store, Firefox from Firefox Add-ons. Both builds come out of the same source tree and are functionally identical.
Add to ChromeFrom the Chrome Web Store. Edge asks once to allow extensions from other stores. Prefer the zip? Load it unpacked:
chrome://extensions (or edge://extensions).Add to FirefoxFrom Firefox Add-ons, signed by Mozilla. Prefer the zip? Firefox only installs an unsigned extension permanently in Developer Edition, so there are two ways to load it:
Works in any Firefox 128+. Open about:debugging → This Firefox → Load Temporary Add-on and pick manifest.json from the unzipped Firefox zip. Unloads when Firefox closes.
Permanent. In Developer Edition, Nightly or ESR set xpinstall.signatures.required to false in about:config, then install the Firefox zip itself from about:addons.
Permissions.
What the browser asks you to allow, and why. None of it sends data anywhere: everything MxInspector reads stays in your tab.
The full policy is on the privacy page.
Usage.
Click the toolbar icon on any Mendix app. The panel slides in from the right. Drag the header to reposition, double-click it to minimise.
Escleave any picker modeDouble-click headerminimise / restoreAgent API.
window.__mxiAgent is a read-only, JSON-serialisable view of the page aimed at AI coding assistants. getComputedStyle() tells you a padding is 24px; it never tells you which rule, file and token produced it.
The module rebuilds the cascade from document.styleSheets, so every declaration comes back with its origin. It is only injected on the icon click, so it does not exist on pages where you never opened the panel.
guide()probe()styles(target, opts)capture(target, opts)vars(target, filter)widgets()annotate([targets])Reports the defining rule, not just the value. Tokens defined in terms of other tokens are followed through a via chain.
A shorthand holding a var() cannot expand at parse time, so the longhand falls back and says which shorthand it came from.
Empty means nothing declared it: add a rule. Non-empty means a real competitor won on specificity. Opposite fixes.
Use it with your assistant
Keep each question to one widget. The API answers per element and never dumps the whole page, which keeps answers fast and small.
The panel header carries an AGENT badge whenever the module is loaded: green when armed, grey when off, pulsing briefly on each call. It starts switched off; switch it on from the badge and the choice is remembered. Click it for the last ten calls with method, target, payload size and duration. Switching off disarms every method and stays off on the next page; probe() deliberately keeps answering so an agent discovers the state instead of silently receiving nothing.
Known limitations.
It reads a client that wasn't built to be read. The honest list:
What's next.
Live attribute editing, a client state viewer and a translation check are planned, with more ideas being explored. Requests from Mendix developers decide the order.
PolyForm Shield 1.0.0
Free to use for any purpose, including commercially. The one thing it doesn't allow is using the software to build a product that competes with it.
Credits.
MxInspector stands on good type and good icons. Thank you to the people who made them. The same typefaces run this site and the extension panel.
Source · Google Fonts · Licence
Source · Licence
phosphoricons.com · Licence
The extension package carries every licence in full: THIRD-PARTY-NOTICES.txt and the licence files in fonts/.