This project is a hobby experiment and is not an official Steam product.
Automatic launching depends on your operating system settings and security policies. Some systems may require additional configuration for automounting drives or allowing scripts to run automatically.
Although there is a safe guard feature to auto-launch only trusted scripts, it still IS a security risk. Anyone with physical access to your PC could plug in a drive with a script on it, find the project folder and put their script to the trusted list. But at that point they could just execute their script already.
Use this at your own risk
Physical game cartridges for your Steam library using 2.5" SATA SSDs.
Turn your digital Steam games into something that feels physical: insert a cartridge, and your PC automatically detects it and launches the configured game or action.
Each cartridge is a simple storage device containing a small launcher script. When inserted, the system detects the cartridge and executes the script file on the drive if it has been classified "trusted". Launching a Steam/GoG game, opening a game's details page, or running any custom commands.
STEP-Files are available over at MakerWorld: MakerWorld
Clone the repository:
git clone https://github.com/LewdM3at/PC-Cartridge-System.gitEnter the project directory:
cd PC-Cartridge-SystemRun the script:
./cartridge-linux.sh
Installation
Select menu point 1) Install
The installer will install the required udev rule, systemd service, and launcher helper.
Trust Scripts / Check trust state
After you have created a Cartridge with the launch.sh script, add the script to trusted-scripts with menu point 2) Trust Scripts.
It will scan for any connected storage media for the launch.sh script and ask if you want to trust said script:

You can also check the trust state of scripts here and have the option to stop trusting the scripts if they are already trusted.
Any script that hasn't been trusted through this process will NOT be automatically executed
! If you modify the script later on, you have to re-add it to trusted scripts again.
Auto-Launch Scripts

You can toggle the automatic execution of scripts by choosing this menu point.
For when you want to change something inside the script and don't want it to auto-launch when you insert the cartridge.
Uninstallation:
Select menu point 4) Uninstall
This will remove everything including the config files and trust scripts list.
Download the repo:
- Click Code → Download ZIP OR download it from Releases
- Extract it
- Right click on cartridge-windows.ps1 -> Run with Powershell
Installation
Select menu point 1) Install
The installer will install the required udev rule, systemd service, and launcher helper.
Trust Scripts
After you have created a Cartridge with the launch.sh script, add the script to trusted-scripts with menu point 2) Trust Scripts.
It will scan for any connected storage media for the launch.sh script and ask if you want to trust said script.

You can also check the trust state of scripts here and have the option to stop trusting the scripts if they are already trusted.
Any script that hasn't been trusted through this process will NOT be automatically executed
! If you modify the script later on, you have to re-add it to trusted scripts again.
You can toggle the automatic execution of scripts by choosing this menu point.
For when you want to change something inside the script and don't want it to auto-launch when you insert the cartridge.
Uninstallation:
Select menu point 4) Uninstall
This will remove everything including the config files and trust scripts list.
The project is designed around 2.5" SATA SSDs.
However, the same concept may work with other storage devices such as:
- SD cards
- USB flash drives
- External HDDs
- Other removable storage
Compatibility with other storage types is not guaranteed and depends on your operating system, filesystem, automount configuration, and hardware.
Each cartridge contains a launcher script (launch.sh/launch.ps1) that will be executed by the helpers (depending on OS). Configure these scripts to whatever you need with Steam URL Protocol or any custom commands.
The Linux version uses three components:
-
udev rule
The udev rule detects when a new storage partition is connected.
Its only job is to notify systemd that a game cartridge may have been inserted.
It does not execute the cartridge directly. -
systemd service
A systemd template service is used to handle cartridge launches.
The template allows the same service to work with any inserted device.
The service starts the launcher helper and passes the detected device name. -
cartridge-launcher-helper
The helper script waits for the desktop environment to mount the drive, then searches the cartridge at rool level for:launch.sh
If found, it checks the SHA256 sums of said script against the stored trusted-scripts file.
If the SHA256 matches, it executes the script.
Example cartridge:
SSD
└── launch.sh
└── SteamLibrary
The content oflaunch.shdecide what happens next.
The Windows version uses two components:
- Task Scheduler
The installer creates a scheduled task that starts the cartridge monitor when the user logs in.
The task keeps the monitor running silently in the background. - cartridge-monitoring.ps1
The PowerShell script monitors for newly inserted storage devices.
When a new drive is detected, it checks the root of the cartridge for:launch.ps1
If found, it checks the SHA256 sums of said script against the stored trusted-scripts file.
If the SHA256 matches, it executes the script.
Example cartridge:
SSD
└── launch.ps1
└── SteamLibrary
The content oflaunch.ps1decide what happens next.
