Bulk Widget Property Updates

SkillDev tools

Lets your agent find widgets across many pages and change their settings in bulk.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Bulk Widget Property Updates skill

About this capability

Discover and bulk-change widget properties across many pages with SHOW WIDGETS and UPDATE WIDGETS. Use when the same widget setting has to change on many pages at once. Experimental, always DRY RUN first and back the project up.

What this skill tells your AI

The instructions your AI receives, as published by mendixlabs/mxcli in .claude/skills/mendix/bulk-widget-updates/SKILL.md and read by ahel’s review.

EXPERIMENTAL: These commands are an untested proof-of-concept. Always use dry run first and backup your project before applying changes.

Use show widgets and update widgets to discover and modify widget properties across pages and snippets in bulk.

When to use which tool:

ScopeTool
One page, one or several related changesalter page — see alter-page
Many pages matched by WHERE filter (across one or more modules)update widgets (this skill)

alter page is the right call for targeted, page-specific edits — it can combine set/insert/drop/replace in a single block. update widgets is for cross-page patterns like "set Class on every Container in MyMod" where naming each page explicitly would be tedious or error-prone.

Prerequisites

Widget commands require a full catalog build:

refresh catalog full;

SHOW WIDGETS - Discover Widgets

Basic Usage

-- Show all widgets
show widgets;

-- Filter by module
show widgets in MyModule;

-- Filter by widget type (case-insensitive LIKE)
show widgets where widgettype like '%combobox%';

-- Filter by name
show widgets where Name = 'myGrid';

-- Combine filters
show widgets where widgettype like '%DataGrid%' and Name like '%Overview%' in MyModule;

Output Columns

ColumnDescription
NAMEWidget name (may be auto-generated)
WIDGET TYPEFull widget type ID (e.g., com.mendix.widget.web.combobox.Combobox)
CONTAINERPage or snippet qualified name
MODULEModule name

Common Widget Type Patterns

PatternMatches
%combobox%ComboBox widgets
%datagrid%DataGrid2 and related widgets
%textbox%TextBox widgets
%dropdown%DropDown widgets
%gallery%Gallery widgets

UPDATE WIDGETS - Modify Properties

Syntax

update widgets
  set 'propertyName' = value [, 'propertyName' = value ...]
  where condition [and condition ...]
  [in module]
  [dry run];

Dry Run (Preview Changes)

Always preview changes first:

-- See what would change without modifying
update widgets
  set 'showLabel' = false
  where widgettype like '%combobox%'
  dry run;

Output shows:

found 5 widget(s) in 3 container(s) matching the criteria

[dry run] The following changes would be made:
  Would set 'showLabel' = false on combobox1 (combobox) in MyModule.OrderForm
  Would set 'showLabel' = false on combobox2 (combobox) in MyModule.CustomerPage
  ...

[dry run] Would update 5 widget(s)

run without dry run to apply changes.

Apply Changes

Remove dry run to apply:

update widgets
  set 'showLabel' = false
  where widgettype like '%combobox%'
  in MyModule;

Property Value Types

TypeExamples
String'contains', 'above'
Number4, 100, 3.14
Booleantrue, false
Nullnull

Examples

-- Hide labels on all comboboxes
update widgets
  set 'showLabel' = false
  where widgettype like '%combobox%';

-- Set multiple properties
update widgets
  set 'showLabel' = false, 'labelWidth' = 4
  where widgettype like '%textbox%'
  in MyModule;

-- Change filter mode on DataGrid filters
update widgets
  set 'filterMode' = 'contains'
  where widgettype like '%DatagridTextFilter%';

Important Notes

Known Limitations (Experimental)

UPDATE WIDGETS functionality is not fully implemented.

  • The DRY RUN mode shows which widgets would be matched
  • Actual property updates require additional implementation work
  • Use SHOW WIDGETS for discovery, then manually update properties in Studio Pro

After Making Changes

  1. Refresh the catalog to see updated data:

    refresh catalog full force;
    
  2. Open the project in Studio Pro to verify changes

Supported Properties

Only primitive properties (string, number, boolean) are supported:

  • showLabel, labelWidth, placeholder
  • filterMode, defaultValue
  • Widget-specific configuration properties

NOT supported:

  • DataSource properties
  • Action properties (onClick, etc.)
  • Nested object properties
  • Expression properties

Finding Property Names

To find the correct property names:

  1. Create a widget in Studio Pro
  2. Use describe page Module.PageName to see widget structure
  3. Or check the Mendix widget documentation

Workflow Example

-- 1. Build catalog
refresh catalog full;

-- 2. Discover widgets
show widgets where widgettype like '%combobox%';

-- 3. Preview changes
update widgets set 'showLabel' = false where widgettype like '%combobox%' dry run;

-- 4. Apply changes
update widgets set 'showLabel' = false where widgettype like '%combobox%';

-- 5. Rebuild catalog
refresh catalog full force;

-- 6. Verify
show widgets where widgettype like '%combobox%';

Signals

GitHub stars
122
Forks
49
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
bulk-widget-updates
Source
github.com/mendixlabs/mxcli