Agent skill

Ironrdp Activex Mstsc Testing

by Devolutions in Devolutions/IronRDP

Test IronRDP ActiveX in the real mstsc.exe child launched by MsRdpEx, including the native credential bridge, shell behavior, resize handling, clipboard startup, and bounded UI stress.

Apache-2.0Auto-check passedTesting & QA

Install Ironrdp Activex Mstsc Testing

skills CLI
$ npx skills add Devolutions/IronRDP --skill ironrdp-activex-mstsc-testing -a claude-code

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

GitHub CLI
$ gh skill install Devolutions/IronRDP ironrdp-activex-mstsc-testing --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/Devolutions/IronRDP.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/ironrdp-activex-mstsc-testing .claude/skills/ironrdp-activex-mstsc-testing && 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
ironrdp-activex-mstsc-testing
GitHub stars
3.2k
Token cost
~1.3k tokens
SKILL.md length
580 words
Files
1
Skills in repo
8
Repo updated
First seen
Licence
Apache-2.0

At a glance

Test IronRDP ActiveX in the real mstsc.exe child launched by MsRdpEx, including the native credential bridge, shell behavior, resize handling, clipboard startup, and bounded UI stress.

  • Works in 5 steps: Build with cargo build -p… → In one PowerShell process, set → Snapshot existing mstsc.exe processes,… → …
  • Debugging ironrdpax.dll under native MSTSC
  • SKILL.md covers Guardrails, Launch and connect, Exercise and assess and Teardown and report
  • Calls cargo; needs RDP_PASSWORD

What it does

Ironrdp Activex Mstsc Testing is an agent skill from Devolutions/IronRDP. Test IronRDP ActiveX in the real mstsc.exe child launched by MsRdpEx, including the native credential bridge, shell behavior, resize handling, clipboard startup, and bounded UI stress. Use when validating or debugging ironrdpax.dll under native MSTSC. Do not use for MsRdpEx /axhost or generic COM smoke tests.

Its SKILL.md is about 1.3k 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 Testing & QA, covering QA and bug reports. The repository describes itself as: Rust implementation of the Microsoft Remote Desktop Protocol (RDP). The licence is Apache-2.0.

When your agent uses it

  • Debugging ironrdpax.dll under native MSTSC
  • MsRdpEx /axhost
  • Generic COM smoke tests

Example prompts

  • “/ironrdp-activex-mstsc-testing”

Workflow steps

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

  1. Build with cargo build -p ironrdp-activex --release.
  2. In one PowerShell process, set
  3. Snapshot existing mstsc.exe processes, then start the architecture-matched mstscex.exe without /axhost.
  4. Target UI Automation at that child.
  5. Confirm the expected bridge route in the value-free trace

What it can do on your machine

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

    Shell commands in SKILL.md call:

    • cargo

    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 these keys or tokens, usually read from environment variables:

    • RDP_PASSWORD

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

Context cost

Ironrdp Activex Mstsc Testing loads about 1.3k tokens when it runs. Until then it costs about 85 tokens; SKILL.md has 580 words of instructions outside code blocks.

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

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 Devolutions/IronRDP at commit 0e9dc1f, republished under its Apache-2.0 licence (© Devolutions). 580 words, ~1,319 tokens.

Download SKILL.mdSave it as .claude/skills/ironrdp-activex-mstsc-testing/SKILL.md (or your agent's skills folder).
name
ironrdp-activex-mstsc-testing
description
Test IronRDP ActiveX in the real mstsc.exe child launched by MsRdpEx, including the native credential bridge, shell behavior, resize handling, clipboard startup, and bounded UI stress. Use when validating or debugging ironrdpax.dll under native MSTSC. Do not use for MsRdpEx /axhost or generic COM smoke tests.

Native MSTSC ActiveX testing

Exercise this exact host path:

text
mstscex.exe -> mstsc.exe -> MsRdpEx.dll -> ironrdpax.dll

Read the native MSTSC, certificate, resize, and local RPC sections of crates\ironrdp-activex\README.md before testing. Treat that README and ironrdp-agent --help-agent as the current behavior contract.

Guardrails

  • Use only an explicitly authorized endpoint and credentials.
  • Load an architecture-matched target\release\ironrdpax.dll through MSRDPEX_MSTSCAX_DLL.
  • Never register the test DLL, replace mstscax.dll, or alter machine-wide RDP settings.
  • Keep credentials in the launcher process environment. Never print them or place them in commands, .rdp files, reports, traces, screenshots, or repository files.
  • Keep scripts and artifacts in the session artifact directory.
  • Do not synthesize pointer-bearing messages such as WM_DPICHANGED. Use UI Automation, SendInput, and Win32 window APIs to produce real UI and window events.
  • Do not disable certificate validation by default. Follow the control's certificate-warning UI for an authorized endpoint. Set AuthenticationLevel=0 only when the user explicitly authorizes that weaker policy for an isolated test endpoint and the chosen host exposes a supported preconnect setter.

Launch and connect

  1. Build with cargo build -p ironrdp-activex --release.

  2. In one PowerShell process, set:

    powershell
    $env:MSRDPEX_MSTSCAX_DLL = (Resolve-Path .\target\release\ironrdpax.dll)
    $env:MSRDPEX_AX_BACKEND = 'ironrdp'
    $env:IRONRDP_ACTIVEX_NATIVE_MSTSC_CREDENTIAL_BRIDGE = '1'
    $env:IRONRDP_ACTIVEX_HOST_TRACE = '<session-artifacts>\mstsc.trace'

    Set RDP_USERNAME and RDP_PASSWORD only for CredUI prefill or authorized auto logon. Add RDP_AUTOLOGON=1 only for an explicitly authorized unattended run. Add IRONRDP_ACTIVEX_RPC=1 when post-connect inspection through ironrdp-agent --backend active-x is useful.

  3. Snapshot existing mstsc.exe processes, then start the architecture-matched mstscex.exe without /axhost. Poll every 250 ms for up to 15 seconds for exactly one new mstsc.exe child, identified by parent PID and creation time. Fail the launch if the timeout expires or pre-existing processes make the target ambiguous.

  4. Target UI Automation at that child. Set the visible Computer field and invoke Connect. Approve CredUI for an interactive run, then handle any certificate warning according to the authorized test policy. Do not use the ActiveX RPC connect operation because it bypasses the native MSTSC bridge being tested.

  5. Confirm the expected bridge route in the value-free trace:

    text
    NativeMstscCredentialBridge::StartProgramBridgeEnabled
    NativeMstscCredentialBridge::StartProgramBridgeAttached

    An interactive run must also reach ActiveXCredentialPrompt::Prompt and ActiveXCredentialPrompt::CredentialsAccepted. An unattended run must instead reach NativeMstscCredentialBridge::AutoLogon. Do not require username-form, certificate, clipboard, resize, or redraw markers when the corresponding feature or condition was not exercised.

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

Exercise and assess

Wait for a connected state and a rendered frame before stress testing. When RPC is enabled, use ironrdp-agent --backend active-x status and ironrdp-agent --backend active-x screenshot <session-artifacts>\frame.png.

Apply a bounded sequence of moves, valid resizes, minimize/restore, maximize/restore, hide/show, activation, invalidation, safe pointer input, wheel input, and a harmless key press such as VK_F24. Exercise SmartSizing or Zoom only when the native UI exposes it. Space resize changes by at least 250 ms.

After every case, require:

  • The selected mstsc.exe PID is alive.
  • IsWindow is true and IsHungAppWindow is false.
  • SendMessageTimeout(WM_NULL, SMTO_ABORTIFHUNG, 500 ms) succeeds.
  • GetWindowRect reports positive dimensions after restoring the window.
  • The session remains connected unless the case intentionally disconnects it.

For resize coverage, accept an in-session display update or a bounded reconnect fallback. A RdpWorker::DisplayResizeFallback:* marker is diagnostic, not a failure, unless the session stays disconnected or the host becomes unresponsive. Fail on a connection failure, fatal event, unexpected disconnect, process exit, hung window, or missing rendered frame.

Teardown and report

Close the native shell through its UI and accept the standard disconnect confirmation. Poll every 250 ms for up to 10 seconds for the selected child and launcher PIDs to exit. If either remains, stop only those known PIDs and fail the teardown. Require IConnectionPoint::Unadvise in the trace, clear the process-local environment variables, and report only aggregate case results, liveness, value-free markers, and non-sensitive artifact paths.

© Devolutions, 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 .agents/skills/ironrdp-activex-mstsc-testing of Devolutions/IronRDP.

Open the folder on GitHubat commit 0e9dc1f

Compare with similar skills

Ironrdp Activex Mstsc Testing 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.

Ironrdp Activex Mstsc Testing compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Ironrdp Activex Mstsc Testing this skillDevolutions/IronRDP3.2k—~1.3kAutomated safety check: PassApache-2.0
Codex Plugin QAcode-yeongyu/oh-my-openagent70k1 repos~1.9kAutomated safety check: PassCustom licence
OpenWork Desktop CDP Driverdifferent-ai/openwork24k—~465Automated safety check: PassCustom licence
Triage IssuesClickHouse/clickhouse-java1.6k—~904Automated safety check: PassApache-2.0
PlotJuggler Live VerificationPlotJuggler/PlotJuggler6.2k—~956Automated safety check: PassMPL-2.0
Structured Bug ReportsDonchitos/Claude-Code-Game-Studios26k—~2.5kAutomated safety check: NotesMIT

Similar skills

  • Codex Plugin QA

    code-yeongyu/oh-my-openagent

    Tests the omo Codex plugin in an isolated CODEX_HOME with a local mock model, proving hooks fired through app-server notifications without touching ~/.codex.

    70k GitHub starsUsed in 1 repo~1.9k tokens
    Testing & QAAuto-check passed
  • OpenWork Desktop CDP Driver

    different-ai/openwork

    Drives a running OpenWork desktop window over CDP from the shell to evaluate JS, take screenshots, start sessions and send prompts for hand checks.

    24k GitHub stars~465 tokensUpdated yesterday
    Testing & QAAuto-check passed
  • Triage Issues

    ClickHouse/clickhouse-java

    Analyzes a single GitHub issue at a time. An agent skill from ClickHouse/clickhouse-java.

    1.6k GitHub stars~904 tokensUpdated yesterday
    Testing & QAAuto-check passed
  • PlotJuggler Live Verification

    PlotJuggler/PlotJuggler

    Confirms that a change to PlotJuggler 4 really works in the running app by proving the rebuild, launching with real data and measuring the result.

    6.2k GitHub stars~956 tokensUpdated 7 days ago
    Testing & QAAuto-check passed
  • Structured Bug Reports

    Donchitos/Claude-Code-Game-Studios

    Turns a description into a structured bug report, or scans code for likely bugs, then verifies and closes reports through four modes.

    26k GitHub stars~2.5k tokensUpdated 9 days ago
    Testing & QAAuto-check: notes
  • Captures PNG or JPEG screenshots and MP4 or GIF clips of cmux windows from the command line, as visual evidence for pull requests and bug reports.

    28k GitHub stars~992 tokensUpdated yesterday
    Testing & QAAuto-check passed

More from Devolutions/IronRDP

All 8 skills in this repo
  • Commit Scope

    Devolutions/IronRDP

    Derive and validate the canonical scope for IronRDP Conventional Commit and pull-request titles.

    3.2k GitHub stars~854 tokensUpdated yesterday
    Auto-check passed
  • Release Prep

    Devolutions/IronRDP

    Reviews and finalizes a release-plz "chore(release): prepare for publishing" PR for the IronRDP workspace.

    3.2k GitHub stars~2.2k tokensUpdated yesterday
    Auto-check passed
  • New Crate

    Devolutions/IronRDP

    Create and integrate a new Rust crate in the IronRDP workspace.

    3.2k GitHub stars~236 tokensUpdated yesterday
    Auto-check passed
  • Public Dependency

    Devolutions/IronRDP

    Add or change Rust crate dependencies while preserving IronRDP's public-dependency markers.

    3.2k GitHub stars~265 tokensUpdated yesterday
    Auto-check passed
  • Code Review

    Devolutions/IronRDP

    Review IronRDP pull requests and diffs using focused protocol, compression, prose, and skeptical passes.

    3.2k GitHub stars~539 tokensUpdated yesterday
    Auto-check passed
  • Crate Readme Writer

    Devolutions/IronRDP

    Write or substantially revise a Rust crate's README.md as a concise, user-facing design document.

    3.2k GitHub stars~455 tokensUpdated yesterday
    Auto-check passed

Questions about Ironrdp Activex Mstsc Testing

What does Ironrdp Activex Mstsc Testing do?

Test IronRDP ActiveX in the real mstsc.exe child launched by MsRdpEx, including the native credential bridge, shell behavior, resize handling, clipboard startup, and bounded UI stress. Ironrdp Activex Mstsc Testing is an agent skill from Devolutions/IronRDP.exe child launched by MsRdpEx, including the native credential bridge, shell behavior, resize handling, clipboard startup, and bounded UI stress.

When should I use Ironrdp Activex Mstsc Testing?

Ironrdp Activex Mstsc Testing fits situations like: debugging ironrdpax.dll under native MSTSC; msRdpEx /axhost; generic COM smoke tests.

How do I install Ironrdp Activex Mstsc Testing in Claude Code?

Run `npx skills add Devolutions/IronRDP --skill ironrdp-activex-mstsc-testing -a claude-code`. Or copy the skill folder (.agents/skills/ironrdp-activex-mstsc-testing in Devolutions/IronRDP) into .claude/skills/ironrdp-activex-mstsc-testing in your project. Claude Code loads it when a task matches its description.

How do I install Ironrdp Activex Mstsc Testing in Codex?

Run `npx skills add Devolutions/IronRDP --skill ironrdp-activex-mstsc-testing -a codex`. Or copy the skill folder (.agents/skills/ironrdp-activex-mstsc-testing in Devolutions/IronRDP) into .agents/skills/ironrdp-activex-mstsc-testing in your project. Codex loads it when a task matches its description.

Can I use Ironrdp Activex Mstsc Testing 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 Devolutions/IronRDP --skill ironrdp-activex-mstsc-testing -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ironrdp-activex-mstsc-testing, .gemini/skills/ironrdp-activex-mstsc-testing, .github/skills/ironrdp-activex-mstsc-testing and .opencode/skills/ironrdp-activex-mstsc-testing in your project.

What does Ironrdp Activex Mstsc Testing need to run?

Going by SKILL.md and its folder, Ironrdp Activex Mstsc Testing needs the command-line tools its instructions call (cargo) and credentials named RDP_PASSWORD.

Does Ironrdp Activex Mstsc Testing 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 Ironrdp Activex Mstsc Testing 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 Ironrdp Activex Mstsc Testing use?

Ironrdp Activex Mstsc Testing 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 Ironrdp Activex Mstsc Testing use?

About 1.3k tokens (SKILL.md is roughly 5.3k 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 Ironrdp Activex Mstsc Testing?

Skills that share tags, products or a category with Ironrdp Activex Mstsc Testing: Codex Plugin QA (code-yeongyu/oh-my-openagent, 70k stars), OpenWork Desktop CDP Driver (different-ai/openwork, 24k stars), Triage Issues (ClickHouse/clickhouse-java, 1.6k stars) and PlotJuggler Live Verification (PlotJuggler/PlotJuggler, 6.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Ironrdp Activex Mstsc Testing?

Devolutions (a GitHub organization) maintains it in Devolutions/IronRDP, which has 3,213 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on October 8, 2026.

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