Skip to content

Repository files navigation

PortaGrid

PortaGrid

PortaGrid turns a USB flash drive or external SSD into a self-contained portable workspace for Windows 10 and 11. Plug the drive into any PC, open PortaGrid.exe, and launch your portable apps from a grid. No install and no .NET runtime needed on the host.

What is in the box

Project What it is
PortaGrid.Provisioner Setup tool you run on your own PC. Finds USB drives and puts PortaGrid on them.
PortaGrid.Launcher The small PortaGrid.exe at the drive root. Starts the Dashboard.
PortaGrid.Dashboard The grid launcher (WPF, Fluent light/dark theme).
PortaGrid.Core Shared logic: drive layout, manifest, drive detection, launching, provisioning.
PortaGrid.Core.Tests xUnit tests for Core.

Drive layout

X:\PortaGrid.exe                         launcher
X:\PortaGrid\
    manifest.json                        app list and settings (manifest.json.bak = previous version)
    Bin\PortaGrid.Dashboard.exe          the Dashboard
    Apps\                                put portable programs here
    Data\<app id>\                       per-app profile (AppData\Roaming, AppData\Local, Temp)
    Runtime\                             .NET unpacks its native libraries here, not on the host
    Documents\                           your files

manifest.json stores paths relative to the drive root, so the drive keeps working when Windows gives it a different letter.

{
  "schemaVersion": 1,
  "theme": "System",
  "apps": [
    {
      "id": "3f9a1c2b7d4e",
      "name": "Notepad++",
      "path": "PortaGrid\\Apps\\NotepadPlus\\notepad++.exe",
      "arguments": "",
      "category": "Editors",
      "isolateProfile": true
    }
  ]
}

Using it

  1. Run PortaGrid.Provisioner.exe, pick the drive, choose Set up drive. Nothing is formatted or deleted. Running it again later updates PortaGrid and keeps your apps and settings.
  2. Copy portable programs into X:\PortaGrid\Apps (one folder per program).
  3. Open X:\PortaGrid.exe and choose Scan Apps folder, or Add app, or drop a program from the drive onto the window.
  4. Right-click a tile to edit, show in folder, or remove it.

What "isolated" means, and what it does not

For each app with "Keep this app's settings on the drive" ticked, PortaGrid starts it with APPDATA, LOCALAPPDATA, TEMP, TMP, USERPROFILE and HOME pointing into X:\PortaGrid\Data\<app id>. Apps that honour those variables keep their settings on the drive.

This is best effort, not a sandbox:

  • Windows itself records that the drive was plugged in and which programs ran (USB device history, Prefetch, UserAssist and similar).
  • Apps that write to the registry, or ask the shell for folders instead of reading the environment, still write to the host.
  • Apps that demand administrator rights are started through the UAC prompt without redirection. The Dashboard tells you when that happens.

Building

Needs the .NET 10 SDK on Windows.

.\build.ps1                    # tests, then artifacts\win-x64\PortaGrid.Provisioner.exe
.\build.ps1 -Runtime win-x86   # 32-bit build, also runs on x64 and ARM64 Windows

The Provisioner exe is the only file you need to hand out: it carries the launcher and the Dashboard inside it. To try the Dashboard without a drive:

dotnet run --project src\PortaGrid.Dashboard -- --root C:\some\test\folder

License

Licensed under MIT. See LICENSE for details.

About

Turn any USB drive into a portable app workspace for Windows. Grid launcher, per-app settings kept on the drive.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages