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 write-nanoflowsgit 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/write-nanoflows)<a href="https://agentmods.dev/skills/mendixlabs/mxcli/write-nanoflows"><img src="https://agentmods.dev/badge/skills/mendixlabs/mxcli/write-nanoflows/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/write-nanoflows"><img src="https://agentmods.dev/badge/skills/mendixlabs/mxcli/write-nanoflows.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.00058 | $0.06446 |
| Opus 5.5 | $0.00023 | $0.02578 |
| Sonnet 5.5 | $0.00012 | $0.01289 |
| Haiku 4.5 | $0.00006 | $0.00645 |
Grade A, and why
write-nanoflows 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 4d 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 — 688 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 |
|---|---|
| 35-44 | When to Use This Skill |
| 45-78 | Changing an Existing Nanoflow |
| 79-97 | When to Use a Nanoflow vs a Microflow |
| 98-112 | Key Differences from Microflows |
| 113-136 | Nanoflow Structure |
| 137-145 | Naming Convention |
| 146-214 | Supported Activities |
| 215-481 | Real-World Patterns |
| 482-552 | NanoflowCommons JavaScript Actions Reference |
| 553-591 | Disallowed Activities |
| 592-595 | Return Type Restrictions |
| 596-640 | Error Handling in Nanoflows |
| 641-648 | Security (GRANT/REVOKE) |
| 649-661 | Management Commands |
| 662-672 | Common Mistakes |
| 673-687 | Validation Checklist |
Mendix Nanoflow Skill
This skill provides guidance for writing Mendix nanoflows in MDL syntax. Nanoflows share syntax with microflows but execute client-side with restricted capabilities.
When to Use This Skill
Use this skill when:
- Writing CREATE NANOFLOW statements
- Debugging nanoflow validation errors
- Understanding nanoflow restrictions vs microflows
- Building mobile or offline-capable features
If you're not sure whether the logic belongs in a nanoflow or a microflow, read the next section first. The mirror lives in write-microflows — keep both copies in sync.
Changing an Existing Nanoflow
Choose the mode by who owns the nanoflow (choose-edit-mode):
- Created by your MDL scripts, and not edited in Studio Pro since: edit the script
(or fresh
describeoutput) and re-runcreate or modify. - Authored in Studio Pro: prefer
alter nanoflow X { insert/replace/drop … }(targets by output variable, caption or statement pattern).create or modifyofdescribeoutput also works as a patch: an unchanged definition writes nothing, and an inserted, replaced or dropped statement (at the top level or in anifbranch) is spliced in, leaving every other node, merge and curve as stored — a guard clause (if … then return; end if;) too, its return a new end event, and so is thereturnending a new activity's error handler; a changedreturnvalue orifcondition is set on the stored end event or decision, and a body without a trailingreturnmeans the stored end. The header (documentation, return type, parameters added, retyped or — when unused — removed) is set on the stored document, and a stated@positionor@startmoves the stored node, keeping its flows. A change it cannot patch — anything inside a loop body or error handler, a redrawn@anchor/@curve, any otherreturnadded or taken away — rebuilds the whole nanoflow under mdl 0 (warningMDL-V1-REBUILD: element IDs renumbered, merges removed, curves reset) and is refused undermdl 1;. - Rebuilding deliberately:
drop nanoflow X;andcreate nanoflow X …in ONE script. The drop's module-role grants (and the unit's ID and folder) carry only to a create later in the same script or REPL session; a drop in one run and a create in the next loses everygrant execute.dropprints the roles it removed and thegrantto restore them. - Changing something inside a loop body (either owner)
: an activity replaced by one of the same kind (new values, same statements in the same
order) is spliced in place by both
create or modifyandalter. Anything else — a statement added, removed, reordered or moved — neither can make: replace the whole loop, addressed by its handle, with the body as it should be (replace loop $Item in $Items with begin loop $Item in $Items begin … end loop; end;). Everything outside the loop keeps its$IDs, positions and curves; the loop and its body are rebuilt. For a nested loop, replace the outer one.
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.
- 4d ago Changed · +1 lines 53d8bddbd715
- 5d ago Changed · +26 lines 4810f548e53a
- 13d ago Changed · +11 lines 4065df00c89b
- 14d ago Changed · +5 lines cdb889ecea97
- 15d ago Changed · +10 lines 98798e03c1f9
- 16d ago Changed · +20 lines c84e7c5da07d
- 1mo ago Changed · +17 lines b2d2048ac0fd
- 1mo ago First seen · 598 lines · 58 tokens per session scan A f73c76ace682
write-nanoflows is a skill published in the GitHub repository mendixlabs/mxcli (131 stars, last pushed yesterday), licensed Apache-2.0. It adds 58 tokens to every session and 6,446 once invoked, about $0.0002 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.