Agent skill

Run Maui App

by tig in tig/winprint

Build, launch, screenshot, and drive the WinPrint.Maui Windows app (winprint.exe) — including UIA automation of the File button and native Open dialog, and pixel capture that works for WinUI3 content.

MITAuto-check passedMobile

Install Run Maui App

skills CLI
$ npx skills add tig/winprint --skill run-maui-app -a claude-code

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

GitHub CLI
$ gh skill install tig/winprint run-maui-app --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/tig/winprint.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/run-maui-app .claude/skills/run-maui-app && 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
run-maui-app
GitHub stars
101
Token cost
~1.2k tokens
SKILL.md length
429 words
Files
4 (incl. scripts)
Skills in repo
1
Repo updated
First seen
Licence
MIT

At a glance

Build, launch, screenshot, and drive the WinPrint.Maui Windows app (winprint.exe) — including UIA automation of the File button and native Open dialog, and pixel capture that works for WinUI3 content.

  • Screenshot the MAUI app
  • SKILL.md covers Build and launch, Verify state (works even on a…, Screenshot (WinUI3 needs… and Inject keyboard input (works…, plus 2 more sections
  • Runs PowerShell scripts from its folder; calls dotnet
  • Tasks that involve Cross-platform mobile apps

What it does

Run Maui App is an agent skill from tig/winprint. Build, launch, screenshot, and drive the WinPrint.Maui Windows app (winprint.exe) — including UIA automation of the File button and native Open dialog, and pixel capture that works for WinUI3 content. Use when asked to run, verify, or screenshot the MAUI app.

Its SKILL.md is about 1.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including scripts.

It sits in Mobile, covering Cross-platform mobile apps. It works with C#, .NET, Linux and macOS. The repository describes itself as: Human and AI Agent friendly print utility with syntax highlighting, markdown support, multiple pages-up, headers/footers. Cross platform (Mac, Linux, Windows) GUI and TUI. Print… The licence is MIT.

When your agent uses it

  • Screenshot the MAUI app
  • Tasks that involve Cross-platform mobile apps

Example prompts

  • “/run-maui-app”

Requirements

  • PowerShell

What it can do on your machine

Read from SKILL.md and the folder at commit b37b7a6. 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

    Ships 3 files in scripts/ (PowerShell), which the agent can run.

    Shell commands in SKILL.md call:

    • dotnet

    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

Run Maui App loads about 1.2k tokens when it runs. Until then it costs about 68 tokens; SKILL.md has 429 words of instructions outside code blocks.

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

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); the scripts in this folder are not scanned.

SKILL.md

The full file from tig/winprint at commit b37b7a6, republished under its MIT licence (© tig). 429 words, ~1,169 tokens.

Download SKILL.mdSave it as .claude/skills/run-maui-app/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
run-maui-app
description
Build, launch, screenshot, and drive the WinPrint.Maui Windows app (winprint.exe) — including UIA automation of the File button and native Open dialog, and pixel capture that works for WinUI3 content. Use when asked to run, verify, or screenshot the MAUI app.

Run & drive the WinPrint MAUI app (Windows)

Build and launch

powershell
dotnet build src/WinPrint.Maui/WinPrint.Maui.csproj -f net10.0-windows10.0.19041.0

The app is unpackaged (WindowsPackageType=None), assembly name winprint:

powershell
$exe = "src\WinPrint.Maui\bin\Debug\net10.0-windows10.0.19041.0\win-x64\winprint.exe"
# No args — empty preview; or pass a file to load it on startup:
$proc = Start-Process -FilePath $exe -ArgumentList '"C:\full\path\to\file.cs"' -PassThru

Give it ~6-8 seconds to start. Command-line options mirror the CLI (--landscape, --sheet, --printer, --paper-size; files are positional). Relative file paths are resolved against the launch CWD (MauiProgram.cs captures it before switching CWD to the exe dir).

Verify state (works even on a locked session)

Screenshots lie or fail when the session is locked — UI Automation doesn't. Use:

powershell
& .Codex\skills\run-maui-app\scripts\Get-UIState.ps1 -ProcessId $proc.Id

Signals:

  • File loaded? The 🖨 Print... button is enabled only when IsFileLoaded && !IsBusy (load failure clears ActiveFile, disabling it). This is the reliable check.
  • Title: (Get-Process -Id $proc.Id).MainWindowTitle becomes WinPrint - <name> when the title sync fires. (Historically this did NOT fire for command-line-loaded files because the load starts before the page is attached to its Window — don't treat a stale title alone as "load failed"; check the Print button.)
  • The page indicator ("Page x of y") and status text are drawn inside the preview drawable — invisible to UIA. Pixel capture is the only way to see them.

Screenshot (WinUI3 needs PrintWindow + PW_RENDERFULLCONTENT)

powershell
& .Codex\skills\run-maui-app\scripts\Capture-Window.ps1 -ProcessId $proc.Id -OutFile out.png
  • Graphics.CopyFromScreen returns wallpaper/black if the session is locked (Get-Process LogonUI running ⇒ locked) — don't trust it.
  • PrintWindow flag must be 2 (PW_RENDERFULLCONTENT) or WinUI3 composition content comes back black. Even then, captures stay black until the composition surface is poked — a UIA SetFocus on any element in the window reliably unsticks it (waiting and resizing do NOT). The script detects an all-black result, pokes focus, and recaptures automatically.
  • Look at the screenshot: a loaded file shows the rendered page with header (date | filename | language), line numbers, and footer ("Page x of y").
Show full SKILL.md (161 more words)Show less

Inject keyboard input (works on a locked session)

SendInput/SendKeys can't reach a locked desktop, but posting WM_KEYDOWN/WM_KEYUP to the app's InputSiteWindowClass child hwnd does enter the WinUI3 keyboard pipeline (posting to the top-level hwnd or DesktopChildSiteBridge does NOT). Keys route only if some XAML element has focus — use UIA SetFocus first if needed.

powershell
# Find the input-site child hwnd via EnumChildWindows (class "InputSiteWindowClass"),
# then e.g. PageDown (VK_NEXT=0x22, scan 0x51, extended):
$lpDown = [IntPtr](0x1 -bor (0x51 -shl 16) -bor 0x01000000)
$lpUp   = [IntPtr]([long]0x1 -bor (0x51 -shl 16) -bor 0x01000000 -bor 0xC0000000)
[Win32]::PostMessage($inputSite, 0x0100, [IntPtr]0x22, $lpDown)  # WM_KEYDOWN
[Win32]::PostMessage($inputSite, 0x0101, [IntPtr]0x22, $lpUp)    # WM_KEYUP

Verify paging took effect by capturing and reading the drawn footer ("Page x of y"). Note: GetKeyStateForCurrentThread-based modifier checks (Ctrl/Shift) won't see modifiers this way — posted messages don't update the thread keyboard state.

Drive the File button + Open dialog

powershell
& .Codex\skills\run-maui-app\scripts\Drive-FileOpen.ps1 -ProcessId $proc.Id -FilePath "C:\full\path\to\README.md"

This UIA-invokes the 📂 File... button, waits for the native Open dialog (a child window of the app window), sets the filename edit (automation id 1148), and clicks Open (automation id 1). Works on a locked session — no real mouse/keyboard input.

Cleanup

powershell
$proc.CloseMainWindow()   # polite close; prompts only if sheet settings were edited
# fall back to Stop-Process -Force if it lingers

Closing instances matters: the app persists window state and settings next to the exe on exit, and a leftover instance holds the bin directory, breaking the next build.

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

Files

SKILL.md and 3 other files (scripts) in .agents/skills/run-maui-app of tig/winprint.

  • SKILL.md
  • scripts/Capture-Window.ps1
  • scripts/Drive-FileOpen.ps1
  • scripts/Get-UIState.ps1

Open the folder on GitHubat commit b37b7a6

Compare with similar skills

Run Maui App 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.

Run Maui App compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Run Maui App this skilltig/winprint101—~1.2kAutomated safety check: PassMIT
Maui AI DebuggingRedth/Maui.Gtk101—~4.1kAutomated safety check: PassMIT
Engine Whats Newflutter/flutter179k—~978Automated safety check: PassBSD-3-Clause
Updating Android SDKflutter/flutter179k—~1.7kAutomated safety check: PassBSD-3-Clause
Macios Xcode Beta Updatedotnet/macios2.9k—~1.8kAutomated safety check: PassCustom licence
OdevioOdevio/Odevio-CLI423—~7.6kAutomated safety check: PassMIT

Similar skills

  • Maui AI Debugging

    Redth/Maui.Gtk

    End-to-end workflow for building, deploying, inspecting, and debugging .NET MAUI and MAUI Blazor Hybrid apps as an AI agent.

    101 GitHub stars~4.1k tokensUpdated 5 mo ago
    MobileAuto-check passed
  • Engine Whats New

    flutter/flutter

    Generates the "what's new" release summary and diff file for changes in the Flutter engine (//engine/src/flutter) between two releases (e.g., 3.47 vs 3.44).

    179k GitHub stars~978 tokensUpdated today
    MobileAuto-check passed
  • Updating Android SDK

    flutter/flutter

    Upgrades Flutter's Android SDK dependency to a new Android API version (or preview/canary release) in packages.txt, verifies CIPD tag uniqueness, and packages/uploads the binaries using…

    179k GitHub stars~1.7k tokensUpdated today
    MobileAuto-check passed
  • Official

    Update dotnet/macios to a new Xcode beta and validate it end-to-end.

    2.9k GitHub stars~1.8k tokensUpdated yesterday
    MobileAuto-check passed
  • Odevio

    Odevio/Odevio-CLI

    Take a Flutter project to an iPhone or the App Store with Odevio - build, sign and publish iOS apps from Windows, Linux or macOS with no Mac and no Xcode.

    423 GitHub stars~7.6k tokensUpdated 16 days ago
    MobileAuto-check passed
  • Official

    Create C bindings for Apple frameworks in dotnet/macios. An agent skill from dotnet/macios.

    2.9k GitHub stars~7.3k tokensUpdated yesterday
    MobileAuto-check passed

Categories

Questions about Run Maui App

What does Run Maui App do?

Build, launch, screenshot, and drive the WinPrint.Maui Windows app (winprint.exe) — including UIA automation of the File button and native Open dialog, and pixel capture that works for WinUI3 content. Run Maui App is an agent skill from tig/winprint.exe) — including UIA automation of the File button and native Open dialog, and pixel capture that works for WinUI3 content.

When should I use Run Maui App?

Run Maui App fits situations like: screenshot the MAUI app; tasks that involve Cross-platform mobile apps.

How do I install Run Maui App in Claude Code?

Run `npx skills add tig/winprint --skill run-maui-app -a claude-code`. Or copy the skill folder (.agents/skills/run-maui-app in tig/winprint) into .claude/skills/run-maui-app in your project. Claude Code loads it when a task matches its description.

How do I install Run Maui App in Codex?

Run `npx skills add tig/winprint --skill run-maui-app -a codex`. Or copy the skill folder (.agents/skills/run-maui-app in tig/winprint) into .agents/skills/run-maui-app in your project. Codex loads it when a task matches its description.

Can I use Run Maui App 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 tig/winprint --skill run-maui-app -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/run-maui-app, .gemini/skills/run-maui-app, .github/skills/run-maui-app and .opencode/skills/run-maui-app in your project.

What does Run Maui App need to run?

Going by SKILL.md and its folder, Run Maui App needs PowerShell for the scripts in its folder and the command-line tools its instructions call (dotnet). Our summary lists: PowerShell.

Does Run Maui App 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 Run Maui App 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Run Maui App use?

Run Maui App is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Run Maui App use?

About 1.2k tokens (SKILL.md is roughly 4.7k 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 Run Maui App?

Skills that share tags, products or a category with Run Maui App: Maui AI Debugging (Redth/Maui.Gtk, 101 stars), Engine Whats New (flutter/flutter, 179k stars), Updating Android SDK (flutter/flutter, 179k stars) and Macios Xcode Beta Update (dotnet/macios, 2.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Run Maui App?

tig (a GitHub user) maintains it in tig/winprint, which has 101 GitHub stars. The repository was last updated on September 4, 2026.

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