Keeps your Discord client mod installed. Discord wipes client mods every time it auto-updates; PatchCord sits in the tray, notices when an install is running unpatched, re-applies your mod, and restarts Discord.
Works with Vencord, Equicord, and BetterDiscord (pick one in Options). OpenAsar can be kept installed alongside any of them.
| Status | Options |
|---|---|
![]() |
![]() |
It reproduces what each mod's installer does, then re-does it after an update wipes it:
- Vencord / Equicord: rename
resources\app.asarto_app.asarand write a small stubapp.asarthat requires the mod's entry file. The two mods no longer lay their files out the same way, so both are handled: Vencord's%APPDATA%\Vencord\dist\patcher.js, and Equicord's%APPDATA%\Equicord\equicord.asar(Equilotl now ships a single bundled asar and writes nodistfolder; the olderdist\patcher.jslayout still works too). - BetterDiscord: overwrite
modules\discord_desktop_core\index.jsso it requires%APPDATA%\BetterDiscord\data\betterdiscord.asar.
It reuses the files each mod already put on disk, so there's nothing to download for the mods themselves. If the mod you picked isn't installed, PatchCord leaves Discord alone and shows a button to that mod's installer.
OpenAsar is optional and off by default. When on, it's downloaded from OpenAsar's GitHub releases (cached locally) and re-applied under whichever mod you use.
Download PatchCord.exe from Releases
and run it. It lives in the tray and keeps your mod patched. To have it
open automatically when you sign in to Windows, turn on Run at startup in the
Options tab.
Needs the .NET 10 SDK. From the repo root:
powershell -ExecutionPolicy Bypass -File publish.ps1This writes a self-contained publish\PatchCord.exe (~66 MB) that runs without a
separate .NET install. For development: dotnet build src, or run
PatchCord.exe --selftest to build the UI and exit.
Re-patching restarts Discord, which steals focus — jarring if you're mid-game. So by default PatchCord holds the patch while a fullscreen game or app is running, and applies it the moment you leave: while something is held it listens for the foreground window changing rather than waiting out the check interval. The status line reads Waiting while it's holding. Turn it off with Pause while gaming in Options if you'd rather it patch immediately.
Detection uses the shell's own notification state (the signal Focus Assist and Game Mode use for fullscreen apps), plus a check for a focused chromeless window covering the whole monitor to catch borderless-fullscreen games. Ordinary maximised windows don't count.
- Windows only.
- Idle CPU is near zero; resident memory is the usual WPF range (~120-210 MB).
- The check interval runs from 5 seconds to 24 hours. The slider steps through presets;
the box under it takes anything you type (
45s,10m,2h,1h30m). config.jsonandpatchcord.logare written next to the exe (not tracked in git).
The asar patch and OpenAsar logic are ported from the
Vencord Installer; the BetterDiscord injection
from BetterDiscord's scripts/inject.ts. PatchCord is not affiliated with Vencord,
Equicord, BetterDiscord, or OpenAsar. OpenAsar is by GooseMod (AGPL-3.0); use it at
your own risk.
GPL-3.0. See LICENSE.


