matlab-migrate-settings
Diff MATLAB settings between releases AND update any .m file that configures MATLAB settings to use the correct setting paths for the target release. Use when upgrading MATLAB releases and startup scripts or preference files need path/type updates for the new release.
npx skills add matlab/matlab-agentic-toolkit --skill matlab-migrate-settings --agent claude-code
Same command for any agent — swap --agent for codex, cursor, copilot.
Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.
What it does
Diff MATLAB settings between releases and automatically update any .m file that configures MATLAB settings (via .PersonalValue or .TemporaryValue assignments) so that setting paths point to the correct locations in the target release. Works with startup scripts, team preference files, test setup scripts, deployment configs, or any code that programmatically sets MATLAB settings.
How it works
- Identifies when to use (upgrading MATLAB releases with path updates).
- Parses an argument list to extract the script path and optional
from:andto:releases. If only the script path is provided, auto-detects source/target by inspecting installed MATLAB releases. - Performs Phase 0 auto-detection to determine platform, list installed releases, and identify the source release the script targets, then selects the target release (latest by default unless overridden by
to:). - Reads the specified script to collect all settings references (variable name and full setting path with
PersonalValue/TemporaryValue). - In a single batch operation, looks up each unique setting key in the target release (preferring HPP path if available; otherwise using SO/DLL), reconstructing the full dotted path for comparison.
- Classifies each setting as Unchanged, Moved, Renamed, or Removed based on presence and path in the target versus source, including type-change considerations when necessary.
- Writes a new migrated script file (same directory, with
_R<target>appended to the filename) rather than overwriting the original. Applies transformations for each setting, including path changes and value translations when type changes occur, and handles try/catch blocks, version-conditional blocks, and removals per the target release observations. - Preserves user intent by keeping original variable names, maintaining documentation statements, and adding
% REVIEW:notes only when ambiguous.
When to use it
- Upgrading MATLAB releases and startup scripts need path updates for the new release.
- Migrating team preference files or CI configs to a newer MATLAB version.
- Settings paths have changed between releases (moved, renamed, type-changed, or removed).
- You need to know what settings changed between two specific MATLAB releases.
What it can touch
- The script analyzes and rewrites MATLAB
.mfiles that assignPersonalValueorTemporaryValue. - It may reference
settings()-based configurations and various MATLAB path expressions to update them for the target release.
Caveats
- License: NOASSERTION
- If a setting is not found in the target release or has no plausible match, it is marked as Removed or Left for review per the target’s factory settings; exact behavior is determined by target observations.
- If only the source release is installed and no
to:is provided, the tool cannot determine a valid target automatically and requires explicitto:or user input.
# MATLAB Settings Migration Diff MATLAB settings between two releases and automatically update any `.m` file that configures MATLAB settings (via `.PersonalValue` or `.TemporaryValue` assignments) so that setting paths point to the correct locations in the target release. Works with startup scripts, team preference files, test setup scripts, deployment configs, or any code that programmatically sets MATLAB settings. ## When To Use - Upgrading MATLAB releases and startup scripts need path updates for the new release - Migrating team preference files or CI configs to a newer MATLAB version - Settings paths have changed between releases (moved, renamed, type-changed, or removed) - You need to know what settings changed between two specific MATLAB releases ## When Not To Use - The script does not use `settings()` API (no `.PersonalValue` or `.TemporaryValue` assignments) - Both source and target MATLAB releases are not installed on this machine - You want to change MATLAB preferences via the GUI (use Preferences dialog instead) ## Arguments - `<script-path>` — **(required)** Path to any `.m` file that sets PersonalValue/TemporaryValue on MATLAB settings - `[from:R20XXy]` or `[from:/pat
- When To Use
- When Not To Use
- Arguments
- Argument parsing
- Phase 0: Auto-detect MATLAB installations (skip if both roots provided)
- Step 1: Determine platform
- Step 2: Find all installed releases
- Step 3: Identify the source release (what the script was written for)
- Step 4: Determine the target release
- How to execute
- Phase 1: Read script + locate factory settings (parallel)
- Phase 2: Parse the user's script
- Phase 3: Look up ONLY the script's settings in the target (ONE batch command)
- Phase 4: Write the migrated script
One command to determine platform uname -s ls -d /usr/local/MATLAB/R20* 2>/dev/null | sort ls -d /Applications/MATLAB_R20*.app 2>/dev/null | sort Windows (from Git Bash / MSYS): ls -d "/c/Program Files/MATLAB/R20"* 2>/dev/null | sort Check for hpp source first ls "$NEW_HPP"/*.hpp 2>/dev/null | head -3 find "<matlab-root>/bin" -path "*factory_settings*" -name "mwmatlab_factory_settings.*" 2>/dev/null Batch-verify ALL keys AND get their group context in ONE command:
What does the matlab-migrate-settings skill do?
Diff MATLAB settings between releases AND update any .m file that configures MATLAB settings to use the correct setting paths for the target release. Use when upgrading MATLAB releases and startup scripts or preference files need path/type updates for the new release.
How do I install it?
Run `npx skills add matlab/matlab-agentic-toolkit --skill matlab-migrate-settings --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.
Where does this skill come from?
From matlab/matlab-agentic-toolkit, a repository with 868 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.
Is a popular skill a good skill?
Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.
