Skip to content

Repository files navigation

Rewind — pixelated gear icon with circular rewind arrow in Steam blue
REWIND
──────── Roll back. Play the old way. ────────

rewind demo — instant version switch

rewind is a cross-platform tool for managing Steam game version downgrades. It gives you a full-screen interactive TUI to browse your installed games, downgrade to any previous version, and switch between cached versions instantly — no re-downloading required.

┌─────────────────────────────────────────────────────┐
│  rewind                                    [?] help │
├─────────────────┬───────────────────────────────────┤
│ GAMES           │  Crimson Desert                   │
│                 │  App ID: 3321460                  │
│ > Crimson Desert│  Status:    Updates disabled       │
│   Elden Ring    │  Installed: manifest abc123        │
│   Dark Souls III│  Spoofed as: manifest def456       │
│                 │  Cached:    1.00, 1.01             │
│                 │  Launch:    -high -novid           │
│                 │                                    │
│                 │  [D] Download   [U] Switch version │
│                 │  [O] Open SteamDB                  │
├─────────────────┴───────────────────────────────────┤
│ [A] Add library  [S] Settings  [Q] Quit             │
└─────────────────────────────────────────────────────┘

Features

  • Instant version switching — cached versions switch via symlink repoint, no download needed
  • Delta caching — only stores files that differ between manifests, not entire game copies
  • ACF patching & locking — patches appmanifest_*.acf and locks it to prevent Steam auto-updates
  • Multiple Steam accounts — detects all accounts on the machine; pick your preferred account during first run or change it in Settings; launch options load for the correct account automatically
  • Game search / filter — press / to fuzzy-search your library by name in real time
  • Launch options display — shows configured Steam launch options in the game detail panel
  • ReShade integration — download ReShade automatically and enable it per-game via symlinks; on Linux, the required WINEDLLOVERRIDES launch command is shown for copy-pasting into Steam
  • Auto DepotDownloader setup — downloads and manages the DepotDownloader binary for you
  • Persistent config — Steam credentials and library paths stored once, never asked again
  • Steam process detection — warns before operations when Steam is running to avoid conflicts
  • Game artwork — fetches and displays hero images from Steam CDN in the detail panel
  • Cross-platform — Linux, macOS, and Windows

How It Works

On the first downgrade, rewind:

  1. Invokes DepotDownloader to fetch the target manifest's changed files into its cache
  2. Backs up the current versions of those files
  3. Replaces game directory files with symlinks pointing into the cache

Subsequent version switches just repoint the symlinks — instant, no network required. Restoring to latest removes the symlinks and lets Steam take over again.


For Gamers

Step 1 — Install .NET Runtime

rewind uses DepotDownloader under the hood, which requires the .NET runtime.

Windows

Download and run the installer from the official page: https://dotnet.microsoft.com/download/dotnet

Or install via winget:

winget install Microsoft.DotNet.Runtime.9

macOS

brew install dotnet

Or download the installer from https://dotnet.microsoft.com/download/dotnet

Linux

Ubuntu / Debian:

sudo apt-get update && sudo apt-get install -y dotnet-runtime-9.0

Fedora:

sudo dnf install dotnet-runtime-9.0

Arch Linux:

sudo pacman -S dotnet-runtime

Verify the installation:

dotnet --version

Step 2 — Download rewind

Go to the Releases page and download the binary for your platform:

Platform File
Windows (64-bit) rewind-x86_64-windows.zip
macOS (Apple Silicon) rewind-aarch64-macos.tar.gz
macOS (Intel) rewind-x86_64-macos.tar.gz
Linux (64-bit) rewind-x86_64-linux.tar.gz

rewind is a terminal application — it always needs to be launched from a terminal window. It cannot be opened by double-clicking.

Windows

  1. Extract the .zip — you'll get rewind.exe
  2. Move rewind.exe to a folder of your choice, e.g. C:\Users\you\rewind\
  3. Open that folder in File Explorer, then right-click inside it and choose Open in Terminal (or Open PowerShell window here)
  4. Type .\rewind.exe and press Enter

To run rewind from any terminal without navigating to its folder first:

  1. Open Start, search for "Edit the system environment variables"
  2. Click Environment Variables → under User variables, select PathEdit
  3. Click New and paste the full path to the folder containing rewind.exe
  4. Click OK, restart your terminal

macOS

  1. Extract the .tar.gz — you'll get a rewind binary
  2. Open Terminal (find it in Spotlight with Cmd+Space, type "Terminal")
  3. Drag the rewind file into the Terminal window — this pastes its full path
  4. Press Enter to run it

On first launch, macOS may block it as an unrecognized app. If that happens:

  • Open System Settings → Privacy & Security, scroll down, and click Open Anyway

To run rewind from any terminal by just typing rewind:

sudo mv rewind /usr/local/bin/rewind
chmod +x /usr/local/bin/rewind

Linux

  1. Extract the .tar.gz — you'll get a rewind binary
  2. Open a terminal in the folder where you extracted it
  3. Make it executable and run it:
chmod +x ./rewind
./rewind

To run rewind from any terminal by just typing rewind:

sudo mv rewind /usr/local/bin/rewind

Step 3 — Platform Notes

Windows — Run rewind as Administrator. Symlink creation requires elevated privileges.

Linux — ReShade download requires libarchive (used to extract the NSIS installer). It is pre-installed on most distributions; if missing: sudo pacman -S libarchive / sudo apt-get install libarchive13 / sudo dnf install libarchive.

Most features work without any special permissions. The one exception is ACF locking: rewind locks the game's manifest file to stop Steam from auto-updating over your downgraded version. This uses chattr +i under the hood, which requires a specific Linux privilege.

You do not need to run sudo rewind. Instead, grant only the required privilege to the binary once:

sudo setcap cap_linux_immutable+ep /usr/local/bin/rewind

After that, rewind can lock and unlock ACF files without any further sudo usage.

If you skip this step, rewind will still work but falls back to read-only file permissions for locking. This is weaker — Steam runs as your own user and can override read-only flags, meaning it may auto-update and overwrite your downgraded version.

macOS — No special permissions required.

Keybindings

Key Action
/ k Move up in game list
/ j Move down in game list
D Download new version
U Switch between cached versions
R ReShade setup / toggle
O Open SteamDB page
S Settings
/ Filter games (type to search, Esc to clear)
Q / Esc Quit

Download Wizard

Key Action
P Open SteamDB patches page
M Open SteamDB manifests page
Enter Download pasted manifest ID
R Restart in terminal mode (on error)
Esc Cancel

Version Picker

Key Action
/ Select version
Enter Switch to selected version
E Label selected version
Esc Cancel

Settings

Key Action
Tab Switch between fields
Enter Save / add library path
Esc Back to main screen

Data Directory

All state is stored locally — no cloud, no telemetry.

Platform Path
Linux / macOS ~/.local/share/rewind/
Windows %APPDATA%\rewind\

For Developers

Building from Source

Requires Rust (stable).

git clone https://github.com/yanekyuk/rewind
cd rewind
cargo build --release

The binary will be at target/release/rewind.

Install via Cargo

cargo install rewind

Workspace Structure

rewind/
  Cargo.toml          ← workspace root
  rewind-core/        ← business logic library
  rewind-cli/         ← ratatui TUI binary
  docs/

Tech Stack

Crate Purpose
ratatui + crossterm Cross-platform full-screen TUI
tokio Async runtime
serde + toml Config serialization
reqwest HTTP for downloading DepotDownloader
keyvalues-parser Steam .acf / .vdf file parsing
thiserror Structured error types

Out of Scope (v1)

  • Cross-manifest file deduplication
  • Multi-depot game support
  • Automatic manifest ID lookup (SteamDB forbids scraping)
  • GUI frontend

License

Licensed under either of MIT or Apache 2.0, at your option.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages