maui-performance

maui-performance is a skill for Claude Code, Codex from dotnet/maui-labs. It costs 85 tokens per session (1,107 once invoked), scanned A, original, MIT.

A workflow for finding and fixing measured performance problems in .NET MAUI apps. It covers startup, page rendering, list scrolling, image loading, memory, navigation, and build-related regressions.

In plain words
What is it for?
Use it to profile startup, investigate slow bindings or scrolling, reduce layout and image costs, and check trimming or NativeAOT regressions.
Why use it?
It helps distinguish a real performance problem from an inaccurate test, such as measuring a debug build on an emulator. It uses profiling and remeasurement to connect each change to the reported symptom.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit Use it to profile startup, investigate slow bindings or scrolling, reduce layout and image costs, and check trimming or NativeAOT regressions.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/dotnet/maui-labs/maui-performance
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.

Any agent
npx skills add dotnet/maui-labs --skill maui-performance
Clone the repo
git clone --depth 1 https://github.com/dotnet/maui-labs

Made for: Claude Code, Codex.

Wrote 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.

agentmods badge for maui-performance

README.md
[![agentmods](https://agentmods.dev/badge/skills/dotnet/maui-labs/maui-performance/github.svg)](https://agentmods.dev/skills/dotnet/maui-labs/maui-performance)
Your own site
<a href="https://agentmods.dev/skills/dotnet/maui-labs/maui-performance"><img src="https://agentmods.dev/badge/skills/dotnet/maui-labs/maui-performance/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.

agentmods 80×15 button for maui-performance

Your own site · 80×15
<a href="https://agentmods.dev/skills/dotnet/maui-labs/maui-performance"><img src="https://agentmods.dev/badge/skills/dotnet/maui-labs/maui-performance.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 85 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,107 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector pass 7 Sept 2026
How audits are shown
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.1 $0.00085 $0.01107
Opus 5 $0.00043 $0.00553
Sonnet 5 $0.00017 $0.00221
Haiku 4.5 $0.00009 $0.00111

Measured 5d ago against content hash dabc34062595, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-08, from the pricing page.

Security

Grade A, and why

maui-performance 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.

plugins/dotnet-maui/skills/maui-performance/SKILL.md · 117 lines

How it starts

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

MAUI Performance

Use this skill when the user reports a measurable performance symptom or asks for a performance review. Measure first, then change the smallest thing that can explain the symptom.

Workflow

  1. Identify the symptom: startup, first page render, scrolling, navigation, memory, image loading, or network-bound delays.

  2. Inspect target frameworks and configuration. Prefer Release builds for meaningful startup and runtime measurements.

  3. For startup, use the MAUI CLI profiling surface:

    maui profile startup --help
    

    Then run the target app with the appropriate platform/device options.

  4. For UI runtime issues, inspect visual tree depth and logs when DevFlow is available.

  5. Apply targeted fixes and re-measure.

High-Value Fix Areas

Symptom Check
Slow startup Startup profile, excessive work in MauiProgram, synchronous I/O, eager service construction, font/image count
Slow bindings Missing x:DataType, reflection-heavy bindings, converters doing expensive work
Janky lists CollectionView inside ScrollView, complex templates, missing item sizing strategy, image decode size
Layout cost Deep nested layouts, unnecessary Grid nesting, repeated measure invalidations
Image memory Oversized source images, missing MAUI image resizing, unbounded remote image caching
Release regression Debug-only diagnostics leaking into Release, linker/trimming differences

Image Memory Guidance

A 4000×4000 RGBA PNG decodes to ~64 MB in memory regardless of how small it appears on screen. A 200×200 display-sized image decodes to ~160 KB — 400× less memory. Apply these changes when large images cause scrolling or memory issues:

  1. Resize images to display size before adding to the project.
  2. Use the MauiImage build action in .csproj with BaseSize for automatic platform-specific resizing:
    <MauiImage Include="Resources/Images/*.png" BaseSize="400,400" />
    
  3. Decode images to display size at runtime when loading from remote URLs. BaseSize only applies to packaged build-time image resources; it does not resize downloaded, camera, gallery, or user-imported images.
  4. Use WebP or SVG for icons and logos that need to scale.
  5. For list rows, generate or download thumbnails — never decode 4000 × 4000 images inside a CollectionView item template.

Read the full file on GitHub · 117 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. 5d ago Changed · -58 tokens per session dabc34062595
  2. 9d ago First seen · 117 lines · 143 tokens per session scan A 3335affa78a6

Subscribe to this mod's changes

maui-performance is a skill published in the GitHub repository dotnet/maui-labs (213 stars, last pushed today), licensed MIT. It adds 85 tokens to every session and 1,107 once invoked, about $0.0004 per session on Opus 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-08-30.

Related

Other skills, from other repositories

argent-metro-debugger

Debug a JS runtime via CDP using argent debugger tools. Primary path is React Native via Metro (iOS / Android / Vega); a subset of the tools (debugger-connect, debugger-status, debugger-evaluate, debugger-log-registry) also drive a Chromium (CDP) app's renderer (an Electron app, or any Chromium browser exposing CDP)…

software-mansion/argent · 104 tokens

argent-react-native-optimization

Optimizes a React Native app by profiling first to find real bottlenecks, then sweeping for mechanical issues. Entry-point for all performance work. Use when the app feels slow, user asks to optimize, fix re-renders, reduce jank, or improve startup. Delegates to argent-react-native-profiler for measurement.

software-mansion/argent · 71 tokens

argent-native-profiler

Native profiling for CPU hotspots, UI hangs, memory issues. iOS via xctrace; Android via Perfetto. Use when diagnosing native-level performance issues.

software-mansion/argent · 37 tokens

symbolication-setup

Configure crash symbolication for readable stack traces. Use when setting up dSYMs (iOS), ProGuard/R8 mappings (Android), or source maps (React Native).

nexus-labs-automation/mobile-observability · 40 tokens

network-tracing

Instrument API requests with spans and distributed tracing. Use when tracking request latency, correlating client-backend traces, or debugging API issues.

nexus-labs-automation/mobile-observability · 31 tokens

argent-react-native-app-workflow

Step-by-step workflows for developing or debugging React Native apps on iOS simulator or Android emulator. Use when starting the app, debugging Metro, fixing builds, diagnosing runtime errors, or running tests.

software-mansion/argent · 46 tokens