Share system audio alongside webcam/capture-device screenshares using Discord's native soundshare. No virtual devices are created.
  • TypeScript 100%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-15 18:05:17 +03:00
docs/superpowers/specs Add ScreenshareDeviceSystemAudio Equicord plugin 2026-08-15 17:53:36 +03:00
AGENTS.md Add AGENTS.md with plugin conventions 2026-08-15 18:03:39 +03:00
index.ts Add ScreenshareDeviceSystemAudio Equicord plugin 2026-08-15 17:53:36 +03:00
README.md Add credits section to README 2026-08-15 18:05:17 +03:00

ScreenshareDeviceSystemAudio (Equicord)

An Equicord/Vencord plugin that lets Discord share system audio alongside a webcam/capture-device screenshare, using Discord's native soundshare — no virtual audio devices, no PipeWire, no manual setup.

By default, Discord's "Share stream audio" only works for real screen/window capture. This plugin routes camera streams through Discord's own soundshare path while keeping the camera video intact, so viewers hear your system audio (game, music, anything playing on your machine) instead of your microphone.

Features

  • System audio on webcam/camera streams — the shared stream carries what's playing on your system, exactly like a normal screen share with "Share stream audio" enabled.
  • Microphone stays out — the stream's audio input is set to Discord's native "disabled" sentinel, so your mic is never captured through the stream.
  • No virtual devices — nothing is created in PipeWire/pulseaudio, no sinks, no monitor sources, no stream moves, no default-device changes. Discord's own audio capture does the work.
  • Fail-closed — the camera-to-soundshare bridge is runtime-guarded and only engages when Discord's media-engine internals match; if Discord changes something, the plugin degrades to Discord's normal behavior instead of breaking video or audio.
  • ToggleshareSystemAudio plugin setting (default on) applies or removes system audio on the current stream.

How it works

  1. The camera stream payload is adapted so the stream is represented as a soundshare-capable desktopSource with id camera:<videoGuid> (only when the bridge is available at runtime).
  2. The connection-level setGoLiveSource is intercepted: for camera: ids the video is routed through Discord's existing camera method (conn.setGoLiveDevices) instead of the desktop capturer — which would otherwise show a black screen.
  3. Native system soundshare is enabled on the stream connection (setSoundshareSource(1, ...), Discord's whole-system audio source).

Normal desktop/window shares and normal camera shares are untouched.

Installation

This repository is itself a valid Equicord user plugin. Copy it into src/userplugins/ of an Equicord checkout, then rebuild:

cp -r . /path/to/equicord/src/userplugins/ScreenshareDeviceSystemAudio/
cd /path/to/equicord
pnpm install
pnpm build

Enable ScreenshareDeviceSystemAudio in Settings > Plugins. Optionally set Share System Audio under the plugin's settings.

Credits

Vibe-coded with GPT-5.6 Luna as planner and DeepSeek V4 Flash as executor agent.