◉ Pulse
GloriousEggroll avatar
#74 today ▼ 4

GloriousEggroll/steam-add-nonsteam-game

Python Tool

CLI tool to add nonsteam games or applications to steam. Does -NOT- require a steam restart

Created Jul 25, 2026
Stars
17
Today
+1
Forks
0
Quality
80/100
Momentum
16

README

Fetched from GitHub on Oct 30, 2026, 10:18 PM UTC · README.md

View original on GitHub

Third-party content — Open Source Pulse is not the owner of this repository.

This README belongs to GloriousEggroll/steam-add-nonsteam-game and its contributors. We fetch it directly from the project’s public GitHub repository and display it for reference only. All text, code, images and trademarks remain the property of their respective authors. See the repository for its license terms. Copyright / takedown policy.

Steam Add Non-Steam Game

steam-add-nonsteam-game adds local applications to the currently running Steam client's library from the command line. Steam updates the library immediately; the script does not edit shortcuts.vdf and Steam does not need to restart.

The script accepts:

  • Linux .desktop launchers
  • Native executables and executable shell scripts
  • AppImages
  • Windows .exe files
  • Literal launch targets and application URIs such as lutris:rungameid/220

Requirements

  • Steam for Linux
  • Python 3.10 or newer

No third-party Python packages are required.

Install

install -Dm755 steam-add-nonsteam-game \
  ~/.local/bin/steam-add-nonsteam-game

Ensure ~/.local/bin is in your PATH, then keep Steam running while using the command.

Usage

Add a desktop launcher:

steam-add-nonsteam-game \
  ~/.local/share/applications/proton-selector.desktop

Add an executable or AppImage:

steam-add-nonsteam-game ~/Applications/MyGame.AppImage

Add a literal application URI:

steam-add-nonsteam-game 'lutris:rungameid/220'

If a supplied target exists on disk, the script resolves and validates it as a file. If it does not exist, the text is preserved instead of being rejected. For URI targets, the generated launcher invokes the registered scheme command. For example, the Lutris target above becomes:

Exec="lutris" "lutris:rungameid/220"

Steam imports the URI as the launch argument rather than mistaking it for a filesystem path.

Set a custom Steam title:

steam-add-nonsteam-game --name "Proton Plus" "$(which protonplus)"

-n, --name, and --title are equivalent. A custom title can only be used with one path at a time.

Add several programs at once:

steam-add-nonsteam-game app-one.desktop app-two.desktop ~/bin/my-game

Preview a request without changing the Steam library:

steam-add-nonsteam-game --dry-run /path/to/program

The command refuses to add an exact path already present in any local Steam user's shortcuts.vdf. To intentionally create a duplicate:

steam-add-nonsteam-game --allow-duplicate /path/to/program

How it works

The running client exposes the URL handler steam://addnonsteamgame/<encoded-path>. The script validates and resolves the supplied path, creates Steam's /tmp/addnonsteamgamefile sentinel, and passes the encoded URL to the steam launcher. Steam assigns the shortcut's AppID and writes its own configuration safely.

When --name or a literal target is used, the script creates a persistent launcher under ~/.local/share/applications/steam-add-nonsteam-game/. Its Name is the requested Steam title and its Exec points to the original program. This is necessary because Steam's add URL accepts a path but has no title parameter.

Some SteamOS-derived distributions already ship a more limited shell helper named steamos-add-to-steam that uses the same mechanism.

Rendered by GitHub from the repository’s README. Scroll to read the full file.
First trending

Jul 25, 2026

first spotted on the list

Best rank

#7

highest position reached

Appearances

2

times on the trending list

Quality score

80

out of 100

Momentum

16

trend strength indicator

Star velocity

0.18

stars per day since creation

Activity — last 60 days

daily counts, collected every 6 hours
  • Stars
  • Forks
  • Merged PRs
  • Issues
  • Closed issues

Collecting activity data since launch — check back in a few days.

Star history

total stars per snapshot
15161718GloriousEggroll/steam-add-nonsteam-game · Jul 25, 1 PM UTC: 16 starsGloriousEggroll/steam-add-nonsteam-game · Jul 25, 7 PM UTC: 17 stars1:42 PM4:27 PM7:12 PM

Rank history

position on trending · lower is better
#1#10#20#30#40#50#60#70#80Jul 25, 1 PM UTC: rank #7Jul 25, 7 PM UTC: rank #741:42 PM4:27 PM7:12 PM

3D card for your website

Live HTML card with a glass surface and pointer tilt. Paste the iframe on any website.

<iframe src="https://www.notionpulse.cc/embed/GloriousEggroll/steam-add-nonsteam-game" width="420" height="240" style="border:0;max-width:100%;background:transparent" loading="lazy" title="GloriousEggroll/steam-add-nonsteam-game — trending on Open Source Pulse"></iframe>

Stars badge

Show current stars in your README or profile. Auto-updates every 6 hours.

GloriousEggroll/steam-add-nonsteam-game stars badge
Markdown
[![GloriousEggroll/steam-add-nonsteam-game](https://www.notionpulse.cc/api/badge/GloriousEggroll/steam-add-nonsteam-game.svg)](https://www.notionpulse.cc/repo/GloriousEggroll/steam-add-nonsteam-game)
HTML
<a href="https://www.notionpulse.cc/repo/GloriousEggroll/steam-add-nonsteam-game"><img src="https://www.notionpulse.cc/api/badge/GloriousEggroll/steam-add-nonsteam-game.svg" alt="GloriousEggroll/steam-add-nonsteam-game stars badge" /></a>

Repository of the Day

#7 Repository of the Day

Repository of the Week

#7 Repository of the Week

Repository of the Month

#7 Repository of the Month