Agent skill

Debug Microflows

by mendixlabs in mendixlabs/mxcli

Drive the Mendix runtime's microflow and nanoflow debugger from the command line with mxcli debug — breakpoints by name, variable inspection, step and continue.

Apache-2.0Auto-check passedFrontend & Design

Install Debug Microflows

skills CLI
$ npx skills add mendixlabs/mxcli --skill debug-microflows -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install mendixlabs/mxcli debug-microflows --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/mendixlabs/mxcli.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/mendix/debug-microflows .claude/skills/debug-microflows && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
debug-microflows
GitHub stars
128
Token cost
~1.9k tokens
SKILL.md length
885 words
Files
1
Skills in repo
75
Repo updated
First seen
Licence
Apache-2.0

At a glance

Drive the Mendix runtime's microflow and nanoflow debugger from the command line with mxcli debug — breakpoints by name, variable inspection, step and continue.

  • Works in 5 steps: A breakpoint pauses whoever hits it —… → Always finish with mxcli debug disable.… → Use the same -p everywhere. The session… → …
  • A microflow produces the wrong result and reading it is not enough
  • SKILL.md covers Overview, When to use this skill, Prerequisites and The loop, plus 5 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Debug Microflows is an agent skill from mendixlabs/mxcli. Drive the Mendix runtime's microflow and nanoflow debugger from the command line with mxcli debug — breakpoints by name, variable inspection, step and continue. Use when a microflow produces the wrong result and reading it is not enough.

Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Frontend & Design, covering Responsive design and Debugging. The repository describes itself as: Mendix cli tool, a headless way to work with Mendix projects. Enables Mendix projects for use with 3rd party agentic coding tools like Claude Code and Copilot. Includes a… The licence is Apache-2.0.

When your agent uses it

  • A microflow produces the wrong result and reading it is not enough
  • Tasks that involve Responsive design
  • Tasks that involve Debugging

Example prompts

  • “/debug-microflows”

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. A breakpoint pauses whoever hits it — the browser included. The triggering
  2. Always finish with mxcli debug disable. run --local --debug disables it
  3. Use the same -p everywhere. The session token and breakpoint record live
  4. Conditions are Mendix expressions (--if '$Game/Solved = false'), same
  5. Overriding the target runtime: --app-url, --admin-port, --admin-pass,

What it can do on your machine

Read from SKILL.md and the folder at commit a924d11. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are bash).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Debug Microflows loads about 1.9k tokens when it runs. Until then it costs about 64 tokens; SKILL.md has 885 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~64
When it runs · the whole SKILL.md, loaded when a task matches
~1.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from mendixlabs/mxcli at commit a924d11, republished under its Apache-2.0 licence (© mendixlabs). 885 words, ~1,889 tokens.

Download SKILL.mdSave it as .claude/skills/debug-microflows/SKILL.md (or your agent's skills folder).
name
debug-microflows
description
Drive the Mendix runtime's microflow and nanoflow debugger from the command line with `mxcli debug` — breakpoints by name, variable inspection, step and continue. Use when a microflow produces the wrong result and reading it is not enough.

Debug Microflows — mxcli debug

Overview

mxcli debug drives the Mendix runtime's microflow debugger from the command line: set breakpoints by name, inspect a paused microflow's variables, and step/continue — against an app started by mxcli run --local. It is the headless counterpart to Studio Pro's debugger, so you can debug a server-side microflow without leaving the warm loop.

mxcli is uniquely able to offer breakpoints by name because it owns both halves: the admin password + app URL (from run --local) and the activity model GUIDs (from the .mpr). You never deal with raw GUIDs.

When to use this skill

  • A page action throws or misbehaves and you need to see where in a microflow it goes wrong, with the in-scope variables.
  • You want to confirm a microflow takes the branch/value you expect.

For a server stack trace / LOG output (not stepping), you usually just want the runtime log — see run-local (--runtime-log). Use the debugger when you need to pause and inspect live execution.

Prerequisites

  • The app running under mxcli run --local (Mendix 11.x).

  • Start it with --debug so the debugger is enabled and a session is ready:

    bash
    mxcli run --local -p app.mpr --debug

    --debug alone does not change runtime behaviour — nothing pauses until you set a breakpoint. It caches a debug session token under <projectDir>/.mxcli/ so the mxcli debug commands below (run from another terminal, same -p) work immediately, with no separate mxcli debug enable.

The loop

bash
# terminal 1: app + debugger
mxcli run --local -p app.mpr --debug

# terminal 2: find the activity, break on it by name
mxcli debug activities Sudoku.ACT_Hint -p app.mpr
mxcli debug break Sudoku.ACT_Hint --activity 'Retrieve' -p app.mpr

# now trigger the microflow in the browser — the request pauses. Then:
mxcli debug paused -p app.mpr                 # which flow is paused + its variables
mxcli debug inspect Game -p app.mpr           # one variable in detail
mxcli debug step over -p app.mpr              # over | into | out
mxcli debug continue -p app.mpr               # resume (the browser request completes)

# when done — ALWAYS:
mxcli debug disable -p app.mpr

Commands

CommandWhat it does
mxcli debug statusIs the debugger on? How many microflows are paused?
mxcli debug enable / disableTurn the debugger on/off (use --debug on run --local instead of enable for the warm loop)
mxcli debug activities <Module.Flow>List a microflow's activities with the object IDs you can break on
mxcli debug break <Module.Flow> --activity <#n|caption> [--if <expr>]Set a breakpoint, resolved by name (--if = conditional)
mxcli debug unbreak <Module.Flow> --activity <#n|caption>Clear a breakpoint
mxcli debug breaksList the breakpoints mxcli has set this session (name → object ID)
mxcli debug pausedShow paused microflows + full state (variables)
mxcli debug inspect <var> [--list] [--flow <debug_id>]Inspect one variable of a paused flow (--list for a list variable → get_list)
mxcli debug step [over|into|out] [--flow <debug_id>]Advance one step (default over)
mxcli debug continue [--all]Resume the paused flow (or all with --all)

Selecting an activity: --activity '#2' (the index from activities) or a caption substring like --activity 'Retrieve' (must match exactly one, case- insensitive). Selecting a paused flow: --flow <debug_id> (from paused); with a single paused flow it is auto-selected.

Nanoflows (client-side)

mxcli debug works for nanoflows too — break/activities/unbreak auto-detect whether Module.Flow is a microflow or a nanoflow and set the breakpoint the right way (a nanoflow needs the nanoflow_name param; the wrong key NPEs the runtime — mxcli handles this for you). Break by name exactly as for a microflow:

bash
mxcli debug break Sudoku.NF_ToggleNotes --activity 'Change' -p app.mpr

A paused nanoflow does not appear in get_paused_microflows — it surfaces only in the runtime's poll_events. mxcli debug paused (and step/inspect/continue) merge both sources, so a paused nanoflow shows up with its debug_id like any other; its variables are in the "Client events (poll_events)" section of paused.

Symptom of a paused nanoflow without mxcli: a frozen browser, the console logging "Starting execution" but never "Finished", and mxcli debug status showing client_connected: true.

Nanoflow debug_id is single-use. Unlike a microflow (stable id), a nanoflow gets a new debug_id after every step — the old one is invalidated. Because each mxcli debug command re-reads the current state, just let step/inspect/continue auto-resolve the flow (don't pass --flow): a bare mxcli debug step over picks up the fresh id each time. Reusing a --flow <debug_id> copied from an earlier paused will fail on the second nanoflow step with "could not find … in debug with id".

For nanoflow log output, see write-nanoflows — the runtime rewrites the log node to Client_Nanoflow, so grep runtime.log for Client_Nanoflow, not your node name.

Show full SKILL.md (251 more words)Show less

Gotchas

  1. A breakpoint pauses whoever hits it — the browser included. The triggering request hangs until continue (or disable). This is normal; just don't walk away from a paused session.
  2. Always finish with mxcli debug disable. run --local --debug disables it for you on shutdown, but if you enabled it by hand, turn it off by hand.
  3. Use the same -p everywhere. The session token and breakpoint record live under <projectDir>/.mxcli/; a different -p (or none) looks in a different place and won't see the session run --local --debug started.
  4. Conditions are Mendix expressions (--if '$Game/Solved = false'), same syntax as a Studio Pro conditional breakpoint.
  5. Overriding the target runtime: --app-url, --admin-port, --admin-pass, --debug-pass (or MXCLI_APP_URL / MXCLI_ADMIN_PASS / MXCLI_DEBUG_PASS) default to a run --local runtime; set them to debug a differently-configured or remote runtime.

Validation checklist

  • App started with mxcli run --local --debug.
  • mxcli debug status shows enabled.
  • mxcli debug activities <Module.Flow> lists the activity you want.
  • After triggering the flow, mxcli debug paused shows it with variables.
  • Finished with mxcli debug disable.

Microflow/nanoflow debugger (mxcli debug)

set breakpoints by name (activity resolved from the model), inspect paused flows + variables, step over/into/out, continue — against a run --local runtime. Two M2EE planes wired behind one command (admin enable/disable/status, app /debugger/ session); run --local --debug enables it at boot. Nanoflows are auto-detected (uses the nanoflow_name breakpoint param; paused nanoflows are merged from poll_events, which get_paused_microflows omits). Nanoflow LOG output is rewritten to the Client_Nanoflow node in the runtime log. and docs/11-proposals/PROPOSAL_microflow_debugger.md

© mendixlabs, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/mendix/debug-microflows of mendixlabs/mxcli.

Open the folder on GitHubat commit a924d11

Compare with similar skills

Debug Microflows next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Debug Microflows compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Debug Microflows this skillmendixlabs/mxcli128—~1.9kAutomated safety check: PassApache-2.0
Eclipse Debuggradusnikov/eclipse-chatgpt-plugin171—~1.3kAutomated safety check: PassMIT
Tui Bug Huntuw-syfi/vibesys103—~6.5kAutomated safety check: PassMIT
Cross Device DiagnoseUniClipboard/UniClipboard1.8k—~3.8kAutomated safety check: WarnAGPL-3.0
Tabz BrowserGGPrompts/TabzChrome147—~730Automated safety check: PassMIT
Local Log DebugUniClipboard/UniClipboard1.8k—~2.6kAutomated safety check: PassAGPL-3.0

Similar skills

  • Eclipse Debug

    gradusnikov/eclipse-chatgpt-plugin

    Debug Java applications in Eclipse — set breakpoints, launch in debug mode, step through code, inspect stack traces, evaluate expressions, and hot-swap code changes.

    171 GitHub stars~1.3k tokensUpdated 9 days ago
    Frontend & DesignAuto-check passed
  • Tui Bug Hunt

    uw-syfi/vibesys

    Drive the VibeSys terminal UI (TUI) headlessly via tmux against real Claude-Code-provider runs, to find and report display bugs, frontend/interaction glitches, backend/protocol problems, and…

    103 GitHub stars~6.5k tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Cross Device Diagnose

    UniClipboard/UniClipboard

    Agent Loop for cross-device sync/transfer issues: collect environment fingerprints from BOTH machines first, check memory for known patterns, manage hypotheses with forced falsification, and persist…

    1.8k GitHub stars~3.8k tokensUpdated today
    Frontend & DesignAuto-check: warnings
  • Tabz Browser

    GGPrompts/TabzChrome

    Browser automation via 70 tabz MCP tools. An agent skill from GGPrompts/TabzChrome.

    147 GitHub stars~730 tokensUpdated 10 days ago
    Productivity & AutomationAuto-check passed
  • Local Log Debug

    UniClipboard/UniClipboard

    Inspect and analyze uniclipboard's local JSONL logs on a SINGLE machine — query, filter, and time-merge the per-role (gui/daemon/cli) log files to answer "what just happened" or trace a symptom…

    1.8k GitHub stars~2.6k tokensUpdated today
    DevelopmentAuto-check passed
  • Debugging Code

    sickn33/agentic-awesome-skills

    Interactively debug source code — set breakpoints, step through execution line by line, inspect live variable state, evaluate expressions against the running program, and navigate the call stack to…

    47k GitHub starsUsed in 1 repo~3.1k tokens
    DevelopmentAuto-check passed

More from mendixlabs/mxcli

All 75 skills in this repo
  • Mendix Odata Pushdown

    mendixlabs/mxcli

    Push OData query options into the SQL of a Mendix resource served by a read microflow, so $filter, $orderby, $top, $skip, $count and the key lookup reach the database instead of being silently…

    128 GitHub stars~2.5k tokensUpdated today
    Auto-check passed
  • Mendix Vega Charts

    mendixlabs/mxcli

    Chart a Mendix app with Vega-Lite through a pluggable widget that takes the specification and the data as separate properties, so the model emits rows and never assembles a chart payload.

    128 GitHub stars~3k tokensUpdated today
    Auto-check passed
  • Agents

    mendixlabs/mxcli

    Author Mendix AI agent documents in MDL — Model, Knowledge Base, Consumed MCP Service and Agent, with variables, tools and multi-line prompts.

    128 GitHub starsUsed in 1 repo~2.2k tokens
    Auto-check passed
  • Mendix Bulk Oql Dml

    mendixlabs/mxcli

    Run set-based INSERT, UPDATE and DELETE against Mendix entities through OQL statements, which the runtime supports and Studio Pro cannot author.

    128 GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • Mock REST APIs

    mendixlabs/mxcli

    Stand up an HTTP endpoint you control instead of a live third-party API, and point the Mendix app at it — Prism from an OpenAPI contract, a constant swap, or a forward proxy.

    128 GitHub starsUsed in 1 repo~2.5k tokens
    Auto-check passed
  • REST Client

    mendixlabs/mxcli

    Call external REST APIs from Mendix — the three approaches (inline REST CALL, consumed REST client document, generated from OpenAPI) and how to choose.

    128 GitHub starsUsed in 1 repo~3.9k tokens
    Auto-check passed

Questions about Debug Microflows

What does Debug Microflows do?

Drive the Mendix runtime's microflow and nanoflow debugger from the command line with mxcli debug — breakpoints by name, variable inspection, step and continue. Debug Microflows is an agent skill from mendixlabs/mxcli. Drive the Mendix runtime's microflow and nanoflow debugger from the command line with mxcli debug — breakpoints by name, variable inspection, step and continue.

When should I use Debug Microflows?

Debug Microflows fits situations like: A microflow produces the wrong result and reading it is not enough; tasks that involve Responsive design; tasks that involve Debugging.

How do I install Debug Microflows in Claude Code?

Run `npx skills add mendixlabs/mxcli --skill debug-microflows -a claude-code`. Or copy the skill folder (.claude/skills/mendix/debug-microflows in mendixlabs/mxcli) into .claude/skills/debug-microflows in your project. Claude Code loads it when a task matches its description.

How do I install Debug Microflows in Codex?

Run `npx skills add mendixlabs/mxcli --skill debug-microflows -a codex`. Or copy the skill folder (.claude/skills/mendix/debug-microflows in mendixlabs/mxcli) into .agents/skills/debug-microflows in your project. Codex loads it when a task matches its description.

Can I use Debug Microflows in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mendixlabs/mxcli --skill debug-microflows -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/debug-microflows, .gemini/skills/debug-microflows, .github/skills/debug-microflows and .opencode/skills/debug-microflows in your project.

What does Debug Microflows need to run?

SKILL.md names no scripts, command-line tools or credentials: Debug Microflows is instructions for the agent only.

Does Debug Microflows access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Debug Microflows safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Debug Microflows use?

Debug Microflows is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Debug Microflows use?

About 1.9k tokens (SKILL.md is roughly 7.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Debug Microflows?

Skills that share tags, products or a category with Debug Microflows: Eclipse Debug (gradusnikov/eclipse-chatgpt-plugin, 171 stars), Tui Bug Hunt (uw-syfi/vibesys, 103 stars), Cross Device Diagnose (UniClipboard/UniClipboard, 1.8k stars) and Tabz Browser (GGPrompts/TabzChrome, 147 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Debug Microflows?

mendixlabs (a GitHub organization) maintains it in mendixlabs/mxcli, which has 128 GitHub stars. The repository holds 75 skills in this directory. The repository was last updated on October 7, 2026.

Source: mendixlabs/mxcli on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.