Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add mendixlabs/mxcli --skill upgrade-mendix-versiongit clone --depth 1 https://github.com/mendixlabs/mxcliWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/mendixlabs/mxcli/upgrade-mendix-version)<a href="https://agentmods.dev/skills/mendixlabs/mxcli/upgrade-mendix-version"><img src="https://agentmods.dev/badge/skills/mendixlabs/mxcli/upgrade-mendix-version/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/mendixlabs/mxcli/upgrade-mendix-version"><img src="https://agentmods.dev/badge/skills/mendixlabs/mxcli/upgrade-mendix-version.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 1 finding, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium Rogue Agent · line 50 Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.Fix: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent.
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00075 | $0.02128 |
| Opus 5.5 | $0.00030 | $0.00851 |
| Sonnet 5.5 | $0.00015 | $0.00426 |
| Haiku 4.5 | $0.00007 | $0.00213 |
Grade A, and why
upgrade-mendix-version scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 196 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Find it fast
sed -n '<from>,<to>p' SKILL.md one section rather than reading the file;
./mxcli syntax <topic> answers how do I write this for a fraction of either.
| lines | section |
|---|---|
| 25-37 | Why this needs a skill |
| 38-89 | The check that decides everything |
| 90-119 | Doing it |
| 120-139 | Verifying MPR v2 survived |
| 140-170 | Traps |
| 171-181 | What generalises, and what does not |
| 182-189 | After the upgrade |
| 190-195 | Related |
Upgrading a Mendix version without Studio Pro
Why this needs a skill
Both ways of getting it wrong look like success:
| what you do | what you see | what is true |
|---|---|---|
mxbuild --loose-version-check |
BUILD SUCCEEDED |
the project is still on the old version |
UPDATE _MetaData SET _ProductVersion |
the project reports the new version, and mxcli agrees | every unit is read against the wrong schema |
Neither prints a warning. The first is not hypothetical — it is what happened to the project that reported this, and it took going back to look at the version column to notice that a successful build had upgraded nothing.
The check that decides everything
A .mpr is SQLite. The version lives in one table, _MetaData, with columns
_FormatVersion, _ProductVersion, _BuildVersion and _SchemaHash.
Use Python rather than the sqlite3 CLI: python3 ships with a sqlite3
module, while the CLI is frequently absent (it is not in the mxcli devcontainer).
mprhash() { python3 -c "import sqlite3,sys
print(*sqlite3.connect(sys.argv[1]).execute(
'SELECT _ProductVersion,_SchemaHash FROM _MetaData').fetchone(), sep=' ')" "$1"; }
mprhash app.mpr
11.13.0 {SHA256}5Fk35jOyzj+cWnJe9ZkGWQjMEzsge3nIzS2zxH9jp6M=
For the version alone, mxcli says it on connect — no SQL needed:
Connected to: /path/App.mpr (Mendix 11.14.0)
One UPDATE would make the project claim the new version. Whether that is an
upgrade or a corruption is decided by the fourth column:
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 5d ago Changed · +17 lines 358b7fe9d294
- 1mo ago First seen · 179 lines · 75 tokens per session scan A 38ab5b00f397
upgrade-mendix-version is a skill published in the GitHub repository mendixlabs/mxcli (131 stars, last pushed yesterday), licensed Apache-2.0. It adds 75 tokens to every session and 2,128 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
stuck
Diagnose frozen, stuck, or slow Qwen Code sessions on this machine. Scans for problematic processes, high CPU/memory usage, hung subprocesses, and debug logs. Use /stuck or /stuck to focus on a specific process.
e2e-testing
Guide for running end-to-end tests of the Qwen Code CLI, including headless mode, MCP server testing, and API traffic inspection. Use this skill whenever you need to verify CLI behavior with real model calls, reproduce user-reported bugs end-to-end, test MCP tool integrations, or inspect raw API request/response…
structured-debugging
Hypothesis-driven debugging methodology for hard bugs. Use this skill whenever you're investigating non-trivial bugs, unexpected behavior, flaky tests, or tracing issues through complex systems. Activate proactively when debugging requires more than a quick glance — especially when the first attempt at a fix didn't…
desktop-brand-builder
Generate a branded Qwen Code desktop package from the Tauri desktop shell using a minimal brandId and logo. Use when the user wants a custom, white-label, or rebranded desktop client, installer, DMG/EXE/AppImage/deb, or one-click brand build on top of packages/desktop.
batch-api
Prepare a many-file, single-turn transform (translate, rewrite, extract) as a plan and submit it to the asynchronous, half-price DashScope Batch API; results are delivered as new files hours later. Invoke explicitly with /batch-api.
workflow-creator
Create or update reusable Dynamic Workflow JavaScript files under .qwen/workflows. Use when the user asks to create, save, edit, or reuse a Dynamic Workflow, including requests started from the Web Shell Workflows page.