devolutions/powershell-universal-skills/install-sandbox-psu
- community
Checking that the SKILL.md file is still in the repository.
Installs PowerShell Universal in a sandboxed environment, allowing for isolated testing and development of custom components without affecting the global system configuration. This skill sets up a local instance of PowerShell Universal with minimal configuration, ideal for development and experimentation.
Install
npx vskill@latest install devolutions/powershell-universal-skills/install-sandbox-psuSKILL.md
install-sandbox-psu
Spins up a fully isolated PowerShell Universal (PSU) sandbox — either by downloading a pre-built release from the Devolutions CDN or by building and publishing a local .NET project. Each sandbox gets its own data directory, port, log paths, and generated relaunch/teardown scripts, so multiple sandboxes of the same version can run side-by-side without interfering.
When to use
- Quickly test a released version of PSU without a system-wide install
- Run the current branch of a PSU source repo against a clean data directory
- Reproduce bugs in an isolated environment you can throw away
- Develop and test custom PSU components (pair with
custom-component-generate-psu)
Prerequisites
- PowerShell 7 (
pwsh) - Internet access
Script
.agents/skills/install-sandbox-psu/scripts/Install-PSU.ps1
Parameters
| Parameter | Default | Description | |
|---|---|---|---|
-PSUVersion | "latest" | Version to install from CDN (e.g. "2025.3.1.0"). | |
-SandboxId | _(random 6-char hex)_ | A name to identify this sandbox. Reuse the same ID to restart against the same data directory and port. | |
-Empty | — | _(default parameter set)_ Start with an empty PSU repository — no configuration seeded. | |
-ConfigurationDirectory | _(none)_ | Path to a directory whose contents are copied into the PSU repository folder before the server starts. Mutually exclusive with -GitRepo and -Empty. | |
-Git | — | Use git to clone a repository. Use GitRepo to specify the URL. Uses the demo repo by default. | |
-GitRepo | "https://github.com/Devolutions/powershell-universal-demo" | Git repository URL to clone into the PSU repository folder before the server starts. Mutually exclusive with -ConfigurationDirectory and -Empty. | |
-Teardown | — | Stop the running server process and delete the entire sandbox folder. Requires -SandboxId. | |
-List | — | List all existing sandboxes under $env:TEMP, showing URL, SandboxId, source, creation time, and running status. | |
-Features | _(none)_ | Optional list of PSU features/plugins to enable. Supported values: MCP, C#, YARP. | |
-DatabaseType | "SQLite" | Database backend to use. Options: SQLite, SQL (SQL Server), PostgreSQL. | |
-DatabaseConnectionString | _(auto for SQLite)_ | Connection string for the selected database. When omitted with SQLite, defaults to a file in the sandbox data directory. |
Sandbox layout
Each sandbox lives at $env:TEMP\PSUSandbox-<version>-<sandboxId>\:
Environment variables set
The following are set as process-scoped environment variables before launching the server, so the child process inherits them:
| Variable | Value | |
|---|---|---|
Data__ConnectionString | Data Source=<root>\data\psu.db | |
Data__RepositoryPath | <root>\data\repository | |
SystemLogPath | <root>\logs\systemlog.txt | |
PsuAgentLogPath | <root>\agent\logs\log.txt | |
Kestrel__Endpoints__HTTP__Url | http://*:<port> | |
UniversalDashboard__AssetsFolder | <root>\Dashboard |
Port is auto-selected from the unused range 5001–6000 on first run and stored in sandbox.json for all subsequent runs.
Usage examples
Install and run the latest CDN release (empty sandbox)
Seed from the default demo Git repo
Seed from a custom Git repo
Seed from a local configuration directory
Install a specific version
List all sandboxes
Tear down a sandbox
If the teardown fails, don't force close any processes. Let the user know which locks are preventing cleanup so they can investigate or try again after a reboot.
Expected output
On successful start:
Notes
- The CDN zip is cached in
$env:TEMPand reused across sandbox instances of the same version — only the data directory is per-sandbox. sandbox.jsonstores the port and all paths. Re-runningInstall-PSU.ps1with the same-SandboxIdreuses the existing port and data, making runs reproducible.- The script is idempotent: running it twice with the same
-SandboxIdstarts the server against the existing data without re-downloading or re-extracting.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/install-sandbox-psu/SKILL.md
Popularity
- Repository stars
- 5
- Repository forks
- 2
- 7-day trend score
- 3
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 23 Mar 2026, 7 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/devolutions/powershell-universal-skills/install-sandbox-psu)