A Vencord userplugin that adds a Copy Image (PNG) option to Discord's right-click menus, including for WebP and AVIF images, which Discord refuses to copy.
Works in Vesktop, the official Discord desktop app (with Vencord injected), and browser Discord (with the Vencord extension).
Discord's canCopyImage check only allows copying jpg / jpeg / jfif / png. Anything else silently loses the "Copy Image" menu item, most notably WebP, the format Discord re-encodes most uploads into. "Save Image" has a separate, wider allowlist, which is why saving still works. Even Vencord's built-in WebContextMenus plugin only bypasses the platform checks, not the format allowlist, so the item stays missing for WebP.
This plugin sidesteps all of that: it adds its own menu item via Vencord's ContextMenu API, fetches the image, re-encodes it to PNG on a canvas, and writes it to the clipboard (via Vesktop's native clipboard bridge when available, the web Clipboard API otherwise).
Custom plugins require building Vencord from source (official guide):
git clone https://github.com/Vendicated/Vencord
cd Vencord
pnpm install --frozen-lockfile
git clone https://github.com/Mooshieblob1/copy-webp src/userplugins/copy-webp
pnpm buildDon't symlink/junction the folder in. esbuild resolves links to their real path, which lands outside Vencord's
tsconfig.jsoncoverage and breaks the@api/...import aliases. Clone (or copy the files) intosrc/userplugins/copy-webpandgit pull/ re-copy to update.
-
Create an empty
package.jsonin thedistfolder first (just{}):Set-Content Vencord\dist\package.json '{}'
Without it, Vesktop considers the folder an incomplete Vencord install and silently overwrites the
vencordDesktop*files with the official release on launch, wiping your plugin. -
Open Vesktop → Settings → Vesktop Settings → scroll to Developer Options → Open Developer Settings → Vencord Location
-
Select the
distfolder inside your Vencord clone -
Fully restart Vesktop (quit from the tray, not just reload)
-
Enable CopyImagePNG under Vencord settings → Plugins
Run pnpm inject from the Vencord clone and pick your Discord installation. The plugin is included in the build.
After any plugin or Vencord update: pnpm build, then fully restart the client. There is no hot reload.
- Animated WebP/GIF copies as a still of the first frame, since clipboards only hold static bitmaps.
- On Vesktop, the clipboard also receives an HTML
<img>fallback (courtesy of Vesktop's native clipboard bridge), so HTML-aware paste targets get the original URL.