Agent skill

Build Gateway Msi

by Devolutions in Devolutions/devolutions-gateway

Build the Devolutions Gateway Windows MSI installer locally.

Apache-2.0Auto-check: warningsDevelopment

Install Build Gateway Msi

The automated check flagged lines worth reading first. See the safety section below.

skills CLI
$ npx skills add Devolutions/devolutions-gateway --skill build-gateway-msi -a claude-code

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

GitHub CLI
$ gh skill install Devolutions/devolutions-gateway build-gateway-msi --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/devolutions-gateway.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/build-gateway-msi .claude/skills/build-gateway-msi && 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
build-gateway-msi
GitHub stars
161
Token cost
~2.3k tokens
SKILL.md length
620 words
Files
1
Skills in repo
19
Repo updated
First seen
Licence
Apache-2.0

At a glance

Build the Devolutions Gateway Windows MSI installer locally.

  • Works in 5 steps: Build Rust Binary → Download Cadeau (xmf.dll) → Build PowerShell Module → …
  • Rebuild the gateway MSI
  • SKILL.md covers Required Tools, Important Notes, Step 1 — Build Rust Binary and Step 2 — Download Cadeau…, plus 6 more sections
  • Calls pnpm, cargo and pwsh; reaches devolutions.jfrog.io and registry.npmjs.org

What it does

Build Gateway Msi is an agent skill from Devolutions/devolutions-gateway. Build the Devolutions Gateway Windows MSI installer locally. Use when asked to build, compile, or rebuild the gateway MSI.

Its SKILL.md is about 2.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 Development. It works with pnpm and PowerShell. The repository describes itself as: A blazing fast relay server adaptable to different protocols and desired levels of traffic inspection. The licence is Apache-2.0.

When your agent uses it

  • Rebuild the gateway MSI

Example prompts

  • “/build-gateway-msi”

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Build Rust Binary
  2. Download Cadeau (xmf.dll)
  3. Build PowerShell Module
  4. Build Web App
  5. Build the MSI

What it can do on your machine

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

    • pnpm
    • cargo
    • pwsh
    • npm
    • dotnet

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

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • devolutions.jfrog.io
    • registry.npmjs.org

    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

Build Gateway Msi loads about 2.3k tokens when it runs. Until then it costs about 35 tokens; SKILL.md has 620 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~35
When it runs · the whole SKILL.md, loaded when a task matches
~2.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: warnings

The automated check found patterns that need a careful read before installing.

  • WarningMentions a credentials file (SSH keys, cloud or package-manager tokens)SKILL.md:75
    2. Add these lines to `%USERPROFILE%\.npmrc` (they won't be added by `npm login` automatically):
  • WarningMentions a credentials file (SSH keys, cloud or package-manager tokens)SKILL.md:215
    2. Append to `%USERPROFILE%\.npmrc`:

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/devolutions-gateway at commit 81a3141, republished under its Apache-2.0 licence (© Devolutions). 620 words, ~2,300 tokens.

Download SKILL.mdSave it as .claude/skills/build-gateway-msi/SKILL.md (or your agent's skills folder).
name
build-gateway-msi
description
Build the Devolutions Gateway Windows MSI installer locally. Use when asked to build, compile, or rebuild the gateway MSI.

Build Devolutions Gateway MSI Locally

Required Tools

  • MSBuild — VS 2022: C:\Program Files\Microsoft Visual Studio\18\Community\MSBuild\Current\Bin\MSBuild.exe
  • Rust/cargo
  • pnpm — for building the web app
  • PowerShell 7+ (pwsh)
  • dotnet — for the PowerShell module build

Important Notes

  • Static CRT is required for CI-matching builds. Without +crt-static, the binary fails at runtime with exit code -1073741515 (0xC0000135, DLL not found) on machines without the MSVC redistributable. Always set $Env:RUSTFLAGS = "-C target-feature=+crt-static" before cargo build --release. For a local debug build this is optional, but release builds must use it.

  • Version stripping. The MSI product version must have a major component < 256, so the century prefix 20 must be stripped: 2026.1.0 → 26.1.0. This matches what ci/Build/Build.psm1 does via $version.Substring(2).

  • MSBuild output filename. MSBuild writes Release\DevolutionsGateway.msi. Rename it to the versioned form if needed for distribution.

  • Web app build is slow (~5-10 min). Skip it on repeated builds by reusing the existing webapp\dist\ output; only rebuild if webapp source changed.

  • download-cadeau.ps1 runs from ci/ and always writes to ../native-libs/, which resolves to the repo root's native-libs\ directory. The file you need is native-libs\xmf.dll.

Step 1 — Build Rust Binary

powershell
cd D:\devolutions-gateway
$Env:RUSTFLAGS = "-C target-feature=+crt-static"  # required for CI-matching release build
cargo build --release -p devolutions-gateway
# Output: target\release\devolutions-gateway.exe

For a quick local debug build (no static CRT required, faster):

powershell
cd D:\devolutions-gateway
cargo build -p devolutions-gateway
# Output: target\debug\devolutions-gateway.exe

Step 2 — Download Cadeau (xmf.dll)

powershell
cd D:\devolutions-gateway
pwsh ci/download-cadeau.ps1 -Platform win -Architecture x64
# Output: native-libs\xmf.dll

Step 3 — Build PowerShell Module

powershell
cd D:\devolutions-gateway
pwsh powershell/build.ps1
# Output: powershell\package\DevolutionsGateway\

Step 4 — Build Web App

@devolutions/* packages are hosted on a private JFrog Artifactory registry. Before running pnpm install for the first time, configure authentication:

  1. Log in: npm login --registry=https://devolutions.jfrog.io/devolutions/api/npm/npm/
  2. Add these lines to %USERPROFILE%\.npmrc (they won't be added by npm login automatically):
    @devolutions:registry=https://devolutions.jfrog.io/devolutions/api/npm/npm/
    registry=https://registry.npmjs.org
    //devolutions.jfrog.io/artifactory/api/npm/npm/:_authToken=<same token as above>
    The third line is needed because the lockfile contains some package tarballs at /artifactory/ paths (different from /devolutions/), so a second token entry is required.

Then build:

powershell
cd D:\devolutions-gateway\webapp
pnpm install

# Build in dependency order: shadow-player → multi-video-player → apps
pnpm --filter '@devolutions/shadow-player' build       # packages/shadow-player
pnpm --filter '@devolutions/multi-video-player' build  # packages/multi-video-player (depends on shadow-player)
pnpm --filter './apps/gateway-ui' build
pnpm --filter './apps/recording-player' build          # depends on multi-video-player and shadow-player
# Outputs:
#   webapp\dist\gateway-ui\
#   webapp\dist\recording-player\

Note: pnpm build:libs and pnpm build:apps may report "No projects matched" depending on pnpm version/workspace state. Use the explicit --filter commands above instead.

Step 5 — Build the MSI

powershell
cd D:\devolutions-gateway\package\WindowsManaged

$msbuild = "C:\Program Files\Microsoft Visual Studio\18\Community\MSBuild\Current\Bin\MSBuild.exe"
$base = "D:\devolutions-gateway"

# Point at release binary (or replace with target\debug\devolutions-gateway.exe for debug build)
$Env:DGATEWAY_EXECUTABLE     = "$base\target\release\devolutions-gateway.exe"
$Env:DGATEWAY_LIB_XMF_PATH   = "$base\native-libs\xmf.dll"
$Env:DGATEWAY_PSMODULE_PATH  = "$base\powershell\package\DevolutionsGateway"
$Env:DGATEWAY_WEBCLIENT_PATH = "$base\webapp\dist\gateway-ui"
$Env:DGATEWAY_WEBPLAYER_PATH = "$base\webapp\dist\recording-player"
$version = (Get-Content "$base\VERSION" -Raw).Trim()
if ($version.StartsWith("20")) { $version = $version.Substring(2) }  # strip century: 2026.1.0 → 26.1.0
$Env:DGATEWAY_VERSION = $version

& $msbuild DevolutionsGateway.sln /t:clean,restore,build /p:Configuration=Release /verbosity:minimal

Output: package/WindowsManaged/Release/DevolutionsGateway.msi

Optionally rename to a versioned filename and compute the SHA-256:

powershell
$msi = "D:\devolutions-gateway\package\WindowsManaged\Release\DevolutionsGateway.msi"
$versioned = "D:\devolutions-gateway\package\WindowsManaged\Release\DevolutionsGateway-x86_64-20$($Env:DGATEWAY_VERSION).0.msi"
Copy-Item $msi $versioned -Force
$hash = (Get-FileHash $versioned -Algorithm SHA256).Hash
$hash | Set-Content "$([System.IO.Path]::ChangeExtension($versioned, 'sha'))"

Alternative — Use the Packaging Script

The ci/package-gateway-windows.ps1 script sets env vars and runs MSBuild for you:

powershell
$base = "D:\devolutions-gateway"
New-Item -ItemType Directory -Force -Path "$base\output\msi" | Out-Null

pwsh "$base\ci\package-gateway-windows.ps1" `
  -Exe        "$base\target\release\devolutions-gateway.exe" `
  -LibxmfFile "$base\native-libs\xmf.dll" `
  -PsModuleDir "$base\powershell\package\DevolutionsGateway" `
  -WebClientDir "$base\webapp\dist\gateway-ui" `
  -WebPlayerDir "$base\webapp\dist\recording-player" `
  -OutputDir  "$base\output\msi"
# Copies MSI to output\msi\DevolutionsGateway.msi

Note: the script requires MSBuild.exe to be on $Env:PATH. If it isn't, prepend it:

powershell
$Env:PATH = "C:\Program Files\Microsoft Visual Studio\18\Community\MSBuild\Current\Bin;$Env:PATH"

Installing the MSI

Always install with administrator rights. Double-clicking from Explorer runs the installer under an impersonated (non-elevated) token, which causes Error code 5 or silent failures in custom actions.

Install from an already-elevated PowerShell prompt:

powershell
# Option 1 — msiexec with log (recommended for debugging)
msiexec /i "C:\path\to\DevolutionsGateway.msi" /l*v "C:\path\to\log.log"

# Option 2 — silent install
msiexec /i "C:\path\to\DevolutionsGateway.msi" /quiet
Show full SKILL.md (249 more words)Show less

Common Build Failures

Missing WixSharp.wix.bin NuGet Package
error MSB4018: The "MSBuild" task failed unexpectedly.
powershell
cd D:\devolutions-gateway\package\WindowsManaged
dotnet add package WixSharp.wix.bin --prerelease
0xC0000135 / Exit Code -1073741515 at Runtime

The binary was built without static CRT. Rebuild with $Env:RUSTFLAGS = "-C target-feature=+crt-static" (see Step 1). This matches CI and eliminates the dependency on the MSVC redistributable.

DGATEWAY_EXECUTABLE Not Found

Program.cs checks that the file exists at MSBuild time. Ensure cargo build completed successfully and the path in $Env:DGATEWAY_EXECUTABLE is correct (debug vs. release).

DGATEWAY_PSMODULE_PATH Not Found / Empty

Run pwsh powershell/build.ps1 first. The output directory is powershell\package\DevolutionsGateway. If the build fails due to a missing NuGet source, the script adds api.nuget.org automatically; ensure internet access or restore from cache.

DGATEWAY_WEBCLIENT_PATH / DGATEWAY_WEBPLAYER_PATH Not Found

Run pnpm install && pnpm build:libs && pnpm build:apps in webapp/. Both gateway-ui and recording-player must exist under webapp\dist\ before the MSI build starts.

pnpm install Fails with ERR_PNPM_FETCH_404 for @devolutions/icons

@devolutions/icons is a private package not available on the public npm registry. It requires access to a private npm registry (JFrog Artifactory). Fix:

  1. Log in: npm login --registry=https://devolutions.jfrog.io/devolutions/api/npm/npm/
  2. Append to %USERPROFILE%\.npmrc:
    @devolutions:registry=https://devolutions.jfrog.io/devolutions/api/npm/npm/
    registry=https://registry.npmjs.org
    //devolutions.jfrog.io/artifactory/api/npm/npm/:_authToken=<same token as the /devolutions/ line>
    The /artifactory/ token entry is needed because some packages in the lockfile resolve to that URL path rather than /devolutions/.
pnpm build:libs / pnpm build:apps — "No projects matched"

Use explicit --filter calls instead (see Step 4). The glob filters in package.json scripts may not resolve depending on pnpm version.

The workspace library packages (shadow-player, multi-video-player) are in packages/ and must be built before the apps that consume them. Build order: shadow-player → multi-video-player → gateway-ui and recording-player.

© 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/build-gateway-msi of Devolutions/devolutions-gateway.

Open the folder on GitHubat commit 81a3141

Compare with similar skills

Build Gateway Msi 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.

Build Gateway Msi compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Build Gateway Msi this skillDevolutions/devolutions-gateway161—~2.3kAutomated safety check: WarnApache-2.0
@pierre/diffs Code Renderingpierrecomputer/pierre6.2k2 repos~803Automated safety check: PassApache-2.0
React Router Release Notes Prepremix-run/react-router57k—~1.1kAutomated safety check: PassMIT
Pull Requestspnpm/pnpm37k—~2.2kAutomated safety check: PassMIT
Link Workspace Packagesnomcopter/react-mosaic4.8k5 repos~760Automated safety check: PassCustom licence
Windows App SDK Issue Triage Reportmicrosoft/WindowsAppSDK4.7k—~3.4kAutomated safety check: PassApache-2.0

Similar skills

  • @pierre/diffs Code Rendering

    pierrecomputer/pierre

    Guides an agent through using @pierre/diffs to render syntax-highlighted files and diffs, and to build editing and review surfaces in React or plain JavaScript.

    6.2k GitHub starsUsed in 2 repos~803 tokens
    DevelopmentAuto-check passed
  • React Router Release Notes Prep

    remix-run/react-router

    Polishes pending React Router change files before the versioning scripts run, and decides whether a long-form What's Changed section is warranted.

    57k GitHub stars~1.1k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Pull Requests

    pnpm/pnpm

    Take a change through a pull request in the pnpm repository — opening it, then staying with it after every push until CI is green and the review round is quiet.

    37k GitHub stars~2.2k tokensUpdated today
    DevelopmentAuto-check passed
  • Link Workspace Packages

    nomcopter/react-mosaic

    Link workspace packages in monorepos (npm, yarn, pnpm, bun).

    4.8k GitHub starsUsed in 5 repos~760 tokens
    DevelopmentAuto-check passed
  • Official

    Generates GitHub Feature Area Status reports for the Windows App SDK repository, scoring issues so teams can see what needs attention in each area.

    4.7k GitHub stars~3.4k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Release Notes

    pnpm/pnpm

    Curate a pending release page - merging entries that describe one change, dropping notes for defects that never shipped, ordering by importance, and checking the version the intents ask for.

    37k GitHub stars~2.8k tokensUpdated today
    DevelopmentAuto-check passed

More from Devolutions/devolutions-gateway

All 19 skills in this repo
  • Tessl Skill Linting

    Devolutions/devolutions-gateway

    Review, lint, create, edit, refine, optimize, compress, or validate any agent skill in this repository, including any SKILL.md.

    161 GitHub stars~740 tokensUpdated yesterday
    Auto-check passed
  • Build Agent Msi

    Devolutions/devolutions-gateway

    Build the Devolutions Agent Windows MSI installer locally. An agent skill from Devolutions/devolutions-gateway.

    161 GitHub stars~1.5k tokensUpdated yesterday
    Auto-check passed
  • Changelog To Jira

    Devolutions/devolutions-gateway

    Creates missing DGW Jira tickets from CHANGELOG.md entries and updates the file with the new ticket links.

    161 GitHub stars~2.7k tokensUpdated yesterday
    Auto-check passed
  • Commit And PR Conventions

    Devolutions/devolutions-gateway

    Follow the adopted commit and pull-request conventions. An agent skill from Devolutions/devolutions-gateway.

    161 GitHub stars~739 tokensUpdated yesterday
    Auto-check passed
  • Prepare Release

    Devolutions/devolutions-gateway

    Prepares a Devolutions Gateway / Devolutions Agent release commit: bumps the version, generates and inserts the changelog, creates Jira tickets, generates the ToolBox changelog, and produces the…

    161 GitHub stars~1.8k tokensUpdated yesterday
    Auto-check passed
  • Installer Localization

    Devolutions/devolutions-gateway

    Add or change Windows installer (MSI) strings or languages for Devolutions Gateway or Devolutions Agent.

    161 GitHub stars~618 tokensUpdated yesterday
    Auto-check passed

Works with

Categories

Questions about Build Gateway Msi

What does Build Gateway Msi do?

Build the Devolutions Gateway Windows MSI installer locally. Build Gateway Msi is an agent skill from Devolutions/devolutions-gateway. Build the Devolutions Gateway Windows MSI installer locally.

When should I use Build Gateway Msi?

Build Gateway Msi fits situations like: rebuild the gateway MSI.

How do I install Build Gateway Msi in Claude Code?

Run `npx skills add Devolutions/devolutions-gateway --skill build-gateway-msi -a claude-code`. Or copy the skill folder (.agents/skills/build-gateway-msi in Devolutions/devolutions-gateway) into .claude/skills/build-gateway-msi in your project. Claude Code loads it when a task matches its description.

How do I install Build Gateway Msi in Codex?

Run `npx skills add Devolutions/devolutions-gateway --skill build-gateway-msi -a codex`. Or copy the skill folder (.agents/skills/build-gateway-msi in Devolutions/devolutions-gateway) into .agents/skills/build-gateway-msi in your project. Codex loads it when a task matches its description.

Can I use Build Gateway Msi 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/devolutions-gateway --skill build-gateway-msi -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/build-gateway-msi, .gemini/skills/build-gateway-msi, .github/skills/build-gateway-msi and .opencode/skills/build-gateway-msi in your project.

What does Build Gateway Msi need to run?

Going by SKILL.md and its folder, Build Gateway Msi needs the command-line tools its instructions call (pnpm, cargo, pwsh, npm and dotnet).

Does Build Gateway Msi access the network?

SKILL.md names 2 domains. In commands or code: devolutions.jfrog.io and registry.npmjs.org; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.

Is Build Gateway Msi safe to install?

Our automated static check of SKILL.md flagged 2 warning(s): mentions a credentials file (ssh keys, cloud or package-manager tokens). Read the flagged lines before installing; the check is not a guarantee either way.

What licence does Build Gateway Msi use?

Build Gateway Msi 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 Build Gateway Msi use?

About 2.3k tokens (SKILL.md is roughly 9.2k 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 Build Gateway Msi?

Skills that share tags, products or a category with Build Gateway Msi: @pierre/diffs Code Rendering (pierrecomputer/pierre, 6.2k stars), React Router Release Notes Prep (remix-run/react-router, 57k stars), Pull Requests (pnpm/pnpm, 37k stars) and Link Workspace Packages (nomcopter/react-mosaic, 4.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Build Gateway Msi?

Devolutions (a GitHub organization) maintains it in Devolutions/devolutions-gateway, which has 161 GitHub stars. The repository holds 19 skills in this directory. The repository was last updated on October 6, 2026.

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