omni-revi-transfer

Omni-Revi-Transfer — for Decky

What the plugin does: Omni-Revi-Transfer is a plugin for the Steam Deck (installed through Decky Loader) that lets you browse, manage and share the screenshots and game recordings your Deck already makes, right from the in-game Quick Access Menu: send them to your phone with a QR code, to your Steam account or a Steam friend, to a Discord channel, or to your own Google Drive, without ever leaving your controller.

Latest update — v1.0.1

Version 1.0.0 (previous update):

From 1.0 on, updates are hotfixes. Everything, release by release, is in the CHANGELOG.

What it does

Why it works this way

Download and install

Everything is on the Releases page. Choose one of the two ways:

  Installer (.desktop) ZIP (manual)
File to download Omni-Revi-Transfer-Installer.desktop omni-revi-transfer-vX.Y.Z.zip
Where Desktop Mode, double-click Game Mode: Decky → Settings → Developer → Install Plugin from ZIP
Needs Decky’s Developer Mode No Yes
Update / uninstall From the same menu Install the new zip over it / remove it in Decky
Entering your Google Drive / Discord keys Easy: a “Configure keys” menu, also offered right after installing Harder: only inside the plugin with the on-screen keyboard, or by creating the credential files by hand
Recommended Yes If you prefer not to run a script

The installer is recommended because the keys are long strings that are tedious to type with the Deck’s on-screen keyboard. Either way, Decky Loader must already be installed (decky.xyz).

Installer, step by step

  1. In Desktop Mode, download Omni-Revi-Transfer-Installer.desktop.
  2. Right-click it → Properties → Permissions → tick Is executable, then double-click it. (Browsers don’t download files as executable; if KDE asks whether to trust the launcher, launch it.)
  3. Pick Install. It asks for the Deck’s password once (the one you use for sudo; if you never set one, it tells you how) and then offers to enter your Google Drive and Discord keys. You can skip both and do it later with Configure keys, which appears once the plugin is installed.
  4. Back in Game Mode, the plugin is in the Quick Access menu.

The installer only touches ~/homebrew/{plugins,settings,data,logs}/Omni-Revi-Transfer and restarts Decky’s plugin_loader. It is a plain shell script (installer/omni-revi-transfer-installer.sh) you can read first, it also works from a terminal (status | install | configure | uninstall), and it keeps a log in ~/.cache/omni-revi-transfer-installer.log. If a release zip sits next to it or in ~/Downloads, it uses that instead of downloading.

ZIP, step by step: download omni-revi-transfer-vX.Y.Z.zip, enable Developer Mode in Decky’s settings, then in its Developer tab choose Install Plugin from ZIP.

Need your Google Drive or Discord keys? QR, Steam sharing, the gallery and the storage panel work without any setup. Google Drive and Discord need one you create yourself, and the guides below explain it step by step: Setting up Google Drive (about 10 minutes) and Setting up Discord (about 5).

Setting up Google Drive

One time, best done on a computer:

  1. Open the Google Cloud Console and create a project (any name).
  2. APIs & Services → Library, search for Google Drive API and click Enable.
  3. Google Auth Platform (older UI: OAuth consent screen) → Get started: any app name, your email as support and contact address, audience External.
  4. Data access → Add or remove scopes: add only .../auth/drive.file and save.
  5. Audience → Publish app (status “In production”). Without this, Google expires the login every 7 days and only listed test users can link. drive.file is a non-sensitive scope, so publishing your own app for your own use needs no Google review. If Google shows an “unverified app” notice while you link, that is your own app: continue.
  6. Clients → Create client, type TVs and Limited Input devices, and copy the Client ID and Client secret.
  7. Enter them with the installer’s Configure keys, or in the plugin: Share options → Google Drive → Set up Google Drive.
  8. Link Google Drive → confirm the Deck’s password → scan the QR with your phone and approve.

Alternative to typing the ~70-character client ID: in Desktop Mode (or over SSH) create google_credentials.json in the plugin folder (~/homebrew/plugins/Omni-Revi-Transfer/) with the shape of google_credentials.example.json. Values entered in the plugin take priority over that file.

Setting up Discord

One time:

  1. Open the Discord Developer Portal and create a New Application (any name).
  2. OAuth2 → Redirects → Add Redirect: http://localhost:47821/callback, then Save Changes (without saving it isn’t stored).
  3. Copy the Application ID (General Information) and, under OAuth2, Reset Secret and copy the Client Secret.
  4. Enter them with the installer’s Configure keys, or in the plugin: Share options → Discord → Set up Discord.
  5. Link Discord: the authorization page opens in the Deck’s Steam browser; log in (Discord’s QR login works), then pick the server and channel. You need a server where you can manage webhooks; a private server of your own works as a “DM to myself” (Discord’s + → Create My Own).

No Discord review is needed for the webhook.incoming scope.

Security

The short version, since the usual worry is someone getting hold of your keys. More detail in PRIVACY.md.

Credits

The video export options (quality steps, copying the audio, cropping 16:10 to 16:9, folders per game) were inspired by decky-video-uploader by SootyOwl (BSD-3-Clause), a plugin that exports Steam’s recordings to MP4 and uploads them to YouTube. I read its README and source to see how it handles Steam’s recording format and its export quality levels, and no code was copied. If you want YouTube uploads, use that plugin.

Development

Building from source, deploying to a Deck, personal builds, the dependency list and publishing a release are covered in DEVELOPMENT.md.