analyze-runtime

A method for investigating what a running Mendix app actually does by combining logs, measurements, request traces, and the app's model catalog. Logs record events, metrics measure activity, and traces show where time is spent.

In plain words
What is it for?
Use it to profile slow pages or microflows, find database activity, investigate errors, and compare runtime costs with the app's model structure.
Why use it?
It connects runtime symptoms, such as a slow page or error, with the app logic and database work that caused them.

Skill for Claude CodeCodex

Install

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.

agentmods
npx agentmods add skills/mendixlabs/mxcli/analyze-runtime
Any agent
npx skills add mendixlabs/mxcli --skill analyze-runtime
Clone the repo
git clone --depth 1 https://github.com/mendixlabs/mxcli

Made for: Claude Code, Codex.

Per session 68 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,928 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5 $0.00068 $0.02928
Opus 5 $0.00034 $0.01464
Sonnet 5 $0.00014 $0.00586
Haiku 4.5 $0.00007 $0.00293

Measured yesterday against content hash d2844227fb74, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

analyze-runtime scanned grade A with 1 finding 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 yesterday.

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.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

curl -s http://127.0.0.1:8090/prometheus | grep -E 'connectionbus_|handler_requests|sessions_|taskqueue_'
.claude/skills/mendix/analyze-runtime/SKILL.md · 227 lines

How it starts

The opening of the file, as written. The whole thing — 227 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Analyze an App's Runtime Behavior — Logs, Metrics, Traces, Catalog

Overview

When you need to understand what an app actually does at runtime — why a page is slow, which microflow dominates cost, what hits the database, whether an error is network or logic — the signals live in four places. This skill is the procedure for collecting them and, crucially, joining them, because the useful questions cross sources that no single tool answers alone.

Signal Where How you get it
Logs (server stack traces + your LOG output) <projectDir>/.mxcli/runtime.log mxcli run --local tees it automatically
Metrics (throughput, DB counts, sessions, queues) /prometheus on the admin port mxcli run --local --metrics
Traces (per-microflow / per-activity spans + timings) console→runtime.log, or an OTLP collector mxcli run --local --trace / --trace-otlp
Model shape (activities, complexity, refs, XPath) .mxcli/catalog.db (SQLite) mxcli … "refresh catalog full" then SELECT … FROM CATALOG.*

When to Use This Skill

  • A page/microflow is slow and you need to find where the time goes.
  • You want to know which entities/queries the app actually hits, and how often.
  • A server-side error shows only a generic dialog in the browser.
  • You're profiling and need a flame chart, or want cost correlated with model shape.

Prerequisite: run the app with the fast local loop — see run-local. Everything below assumes mxcli run --local (add the flags noted per signal).

1. Logs — the first stop for errors

run --local writes the runtime log to <projectDir>/.mxcli/runtime.log (override --runtime-log, - disables). It carries JVM stdout/stderr and the application log — server stack traces, your microflow/nanoflow LOG output, and the DB synchronization counts at startup.

mxcli run --local -p app.mpr
tail -f .mxcli/runtime.log

Gotchas:

  • Nanoflow LOG lands under the Client_Nanoflow node, not the node name you declared — a filter built around microflow node names silently drops it. LOG DEBUG from a nanoflow is dropped server-side (browser console only). See write-nanoflows.
  • A spike in "Executing N database synchronization command(s)" on an unchanged model is a red flag (see the create or modify data-loss class of bug).

Read the full file on GitHub · 227 lines

Changes

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.

  1. yesterday First seen · 227 lines · 68 tokens per session scan A d2844227fb74

Subscribe to this mod's changes

analyze-runtime is a skill published in the GitHub repository mendixlabs/mxcli (115 stars, last pushed 2d ago), licensed Apache-2.0. It adds 68 tokens to every session and 2,928 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.