A modern Windows manager for Vencord custom plugins.
Install, update, configure and control userplugins without manually touching src/userplugins, pnpm or the Vencord build pipeline.
English · Русский
The easiest way to use RVCPM is to download the prebuilt Windows package from GitHub Releases.
- Open Releases.
- Download the ZIP archive with the latest Windows build.
- Extract it to any folder.
- Run
RVCPM.exe.
No Visual Studio build is required for normal use. RVCPM keeps its own configuration, managed plugin packages, Vencord checkout and working data under %LOCALAPPDATA%\RVCPM.
Tip
The source-code ZIP generated automatically by GitHub is not the ready-to-run application package. Download the prebuilt RVCPM ZIP attached to the release under Assets.
RVCPM turns Vencord custom-plugin management into a normal desktop workflow.
Instead of cloning Vencord, copying files into src/userplugins, installing the right Node/pnpm version, rebuilding, injecting and repeating the same process after every update, RVCPM handles the pipeline for you.
Drop a plugin into the app, paste a GitHub link, select what you want to install, and RVCPM takes care of the rest.
Note
RVCPM is an independent project and is not affiliated with or endorsed by Vencord or Discord.
| Feature | What it does | |
|---|---|---|
| 📦 | Multi-plugin installation | Install several plugins in one operation from files, folders, ZIP archives or GitHub. |
| 🖱️ | Drag & Drop | Drop .ts, .tsx, plugin folders, ZIPs, multiple packages, or a mixture of them directly into the window. |
| 🐙 | GitHub integration | Install from a public repository, /tree/... subfolder or /blob/... plugin file. |
| 🔄 | Plugin updates | Detect updates by Git commit for GitHub sources and SHA-256 for local sources. |
| ⚙️ | Plugin settings | Edit supported Vencord plugin settings directly from RVCPM. |
| ⏻ | Enable / disable | Stage plugin state changes safely and restart Discord with one click when required. |
| 🧹 | Removal | Remove managed plugins and optionally clean their Vencord settings. |
| 🛠️ | Automatic Vencord build | Pull the latest Vencord source, install dependencies, build once and inject the result automatically. |
| ↩️ | Rollback protection | Keep rollback copies until the new build and injection complete successfully. |
| 🌐 | 3 interface languages | English, Russian and Ukrainian. English is the default. |
| ✨ | Plugins+ integration | When RVCPM manages at least one plugin, the standard Vencord Plugins entry becomes Plugins+. |
| 💾 | Per-PC state | Sources, snapshots, repositories, configuration and logs are stored locally for each machine. |
Go to the latest GitHub Release, download the prebuilt ZIP from Assets, extract it and run:
RVCPM.exe
If you want to modify RVCPM itself, see Building from source instead.
You can:
- drag files, folders or ZIP archives into the window;
- use the Files / Folder buttons;
- paste a public GitHub repository URL;
- paste a GitHub
/tree/...URL; - paste a direct GitHub
/blob/...plugin URL.
RVCPM scans the source and shows the Vencord plugins it found before installation.
Press Install. RVCPM will automatically:
Update / clone Vencord
↓
Check Node.js + Git
↓
Resolve the pnpm version required by current Vencord
↓
Restore managed userplugins
↓
Install dependencies
↓
Build Vencord
↓
Inject the fresh custom build into Discord
The manager keeps its own Vencord checkout, so your normal files do not have to be used as a build workspace.
Single-file plugin:
myPlugin.ts
or:
myPlugin.tsx
Folder plugin:
myPlugin/
├── index.ts
├── native.ts
├── styles.css
├── components/
└── ...
or:
myPlugin/
├── index.tsx
└── ...
The entry point must expose a normal Vencord-style plugin definition such as:
export default definePlugin({
name: "MyPlugin",
description: "My custom plugin",
authors: [...]
});RVCPM also understands companion files and assets used by the plugin, including additional TypeScript/TSX modules, native.ts, CSS, JSON and local assets.
These are unpacked/resolved into valid Vencord userplugins:
| Source | Supported |
|---|---|
.ts |
✅ |
.tsx |
✅ |
| Plugin folder | ✅ |
| ZIP archive | ✅ |
| Multiple ZIPs | ✅ |
| Mixed files + folders + ZIPs | ✅ |
| Public GitHub repository | ✅ |
GitHub /tree/... |
✅ |
GitHub /blob/... |
✅ |
| Drag & Drop | ✅ |
For the full layout rules, see SUPPORTED_PLUGINS.md.
RVCPM recognizes Vencord target suffixes such as:
.dev
.web
.browser
.desktop
.discordDesktop
.vesktop
Desktop management accepts normal desktop-compatible plugins and rejects web/browser/Vesktop-only entries from the standard Discord Desktop install flow. Dev-only plugins require a dev-compatible build.
Every managed plugin gets its own card with its current state and source information.
From the library you can:
- enable or disable a plugin;
- open its settings;
- view its description;
- view GitHub README information when available;
- check for an update;
- update a single plugin;
- remove the plugin;
- optionally remove its stored Vencord settings.
When changing a state that requires a restart, RVCPM shows a Discord restart required banner with a one-click restart button.
RVCPM can edit normal statically detectable Vencord settings without opening Discord.
| Vencord setting type | RVCPM |
|---|---|
STRING |
✅ |
NUMBER |
✅ |
BOOLEAN |
✅ |
SELECT |
✅ |
SLIDER |
✅ |
Simple static CUSTOM |
|
BIGINT |
➖ Discord only |
COMPONENT |
➖ Discord only |
Complex dynamic CUSTOM |
➖ Discord only |
COMPONENT settings are arbitrary React UI rendered inside Discord/Vencord, so RVCPM deliberately does not execute them inside its own WebView2 interface.
RVCPM keeps enough source information to update plugins later.
GitHub plugins are checked against their source commit.
Local plugins are tracked using SHA-256 source fingerprints.
You can update one plugin or use Update All. Before replacing a working plugin, RVCPM keeps a rollback copy and only commits the new state after the Vencord build/injection succeeds.
When installing or rebuilding managed plugins, RVCPM also updates its managed Vencord checkout to the latest main branch before compilation.
When at least one RVCPM-managed plugin exists, the manager automatically adds a small internal integration userplugin during the build.
It changes the standard Vencord Settings entry:
Plugins
to:
Plugins+
This only affects the label of Vencord's existing plugin section. When there are no RVCPM-managed plugins, the integration plugin is not added.
RVCPM stores machine-specific state under:
%LOCALAPPDATA%\RVCPM\
Typical structure:
RVCPM/
├── config/ # manager configuration
├── packages/ # managed plugin snapshots
├── repositories/ # GitHub working copies / source state
├── vencord/ # dedicated managed Vencord checkout
├── logs/ # operation logs
├── temp/ # temporary import/build files
└── WebView2/ # WebView2 profile data
This makes each computer independent: the manager does not assume that another machine has the same paths, Discord installation or plugin files.
RVCPM supports targeting:
- Discord Stable;
- Discord PTB;
- Discord Canary;
- automatic detection;
- a custom Discord location.
- Windows 10 or Windows 11;
- .NET Framework 4.7.2;
- Microsoft Edge WebView2 Runtime;
- internet access for Vencord/GitHub updates and first-time dependency installation;
- Git and a Vencord-compatible Node.js version.
RVCPM checks the required build tools and can bootstrap missing Git/Node components through winget when available. The required pnpm version is read from the current Vencord package.json, rather than being hard-coded into RVCPM.
This section is for developers or users who want to modify RVCPM. Normal users should download the prebuilt ZIP from GitHub Releases.
Open:
RVCPM.sln
and build the Release configuration.
Run:
Build_Release.batThe release output is copied to:
dist\RVCPM\
C# / WinForms
.NET Framework 4.7.2
Microsoft Edge WebView2
HTML + CSS + JavaScript UI
Newtonsoft.Json
Warning
A Vencord plugin is executable code that runs inside Discord.
RVCPM can validate source structure, safely unpack ZIP archives and avoid executing plugin source during import analysis, but it cannot make an untrusted plugin safe.
Only install plugins from developers or repositories you trust.
ZIP imports include path-traversal protection and extraction limits to reduce the risk of malicious archives writing outside RVCPM's temporary workspace.
A plugin is detected through Files but not through Drag & Drop
Make sure you are running the latest RVCPM build. Drag & Drop and the native file picker share the same ZIP/plugin analysis pipeline in current versions.
Discord says a restart is required
This is expected after changing certain plugin states/settings. Use the Restart Discord button in RVCPM so staged changes can be applied safely before Discord starts again.
The Vencord build fails
Open the Logs page. A custom plugin can stop the Vencord build if its source is outdated, invalid, or incompatible with the current Vencord/Discord build. RVCPM keeps rollback state until the new build succeeds.
Why can't RVCPM edit every plugin setting?
Some Vencord settings are custom React components or dynamic code. Recreating arbitrary plugin UI outside Discord would require executing plugin code inside RVCPM, which is intentionally avoided.
Download the latest release