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 │
└─────────────────────────────────────────────────────┘
- 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_*.acfand 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
WINEDLLOVERRIDESlaunch 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
On the first downgrade, rewind:
- Invokes DepotDownloader to fetch the target manifest's changed files into its cache
- Backs up the current versions of those files
- 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.
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 dotnetOr 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.0Fedora:
sudo dnf install dotnet-runtime-9.0Arch Linux:
sudo pacman -S dotnet-runtimeVerify the installation:
dotnet --versionGo 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
- Extract the
.zip— you'll getrewind.exe - Move
rewind.exeto a folder of your choice, e.g.C:\Users\you\rewind\ - Open that folder in File Explorer, then right-click inside it and choose Open in Terminal (or Open PowerShell window here)
- Type
.\rewind.exeand press Enter
To run rewind from any terminal without navigating to its folder first:
- Open Start, search for "Edit the system environment variables"
- Click Environment Variables → under User variables, select Path → Edit
- Click New and paste the full path to the folder containing
rewind.exe - Click OK, restart your terminal
macOS
- Extract the
.tar.gz— you'll get arewindbinary - Open Terminal (find it in Spotlight with
Cmd+Space, type "Terminal") - Drag the
rewindfile into the Terminal window — this pastes its full path - 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/rewindLinux
- Extract the
.tar.gz— you'll get arewindbinary - Open a terminal in the folder where you extracted it
- Make it executable and run it:
chmod +x ./rewind
./rewindTo run rewind from any terminal by just typing rewind:
sudo mv rewind /usr/local/bin/rewindWindows — 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/rewindAfter 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.
| 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 |
| 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 |
| Key | Action |
|---|---|
↑ / ↓ |
Select version |
Enter |
Switch to selected version |
E |
Label selected version |
Esc |
Cancel |
| Key | Action |
|---|---|
Tab |
Switch between fields |
Enter |
Save / add library path |
Esc |
Back to main screen |
All state is stored locally — no cloud, no telemetry.
| Platform | Path |
|---|---|
| Linux / macOS | ~/.local/share/rewind/ |
| Windows | %APPDATA%\rewind\ |
Requires Rust (stable).
git clone https://github.com/yanekyuk/rewind
cd rewind
cargo build --releaseThe binary will be at target/release/rewind.
cargo install rewindrewind/
Cargo.toml ← workspace root
rewind-core/ ← business logic library
rewind-cli/ ← ratatui TUI binary
docs/
| 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 |
- Cross-manifest file deduplication
- Multi-depot game support
- Automatic manifest ID lookup (SteamDB forbids scraping)
- GUI frontend
Licensed under either of MIT or Apache 2.0, at your option.
