Sunburn Desktop Client with per-app audio capture
  • JavaScript 100%
Find a file
2026-07-03 21:37:34 +00:00
.forgejo/workflows ci(release): auto-bump patch version on every master push 2026-07-03 15:12:24 -04:00
build feat: add Sunburn icon, release script, auto-update flow 2026-04-01 21:51:08 -04:00
src fix(audio): clean up orphaned sunburn-capture loopbacks 2026-07-03 17:04:58 -04:00
.gitignore feat: initial Sunburn desktop app with PipeWire audio capture 2026-03-31 21:29:28 -04:00
Dockerfile.release fix: Windows screen-share audio + CI release on push to master 2026-06-28 21:51:07 -04:00
main.js fix(audio): clean up orphaned sunburn-capture loopbacks 2026-07-03 17:04:58 -04:00
package-lock.json chore(release): v1.4.4 [skip ci] 2026-07-03 21:37:34 +00:00
package.json chore(release): v1.4.4 [skip ci] 2026-07-03 21:37:34 +00:00
preload.js feat: expose powerMonitor.getSystemIdleTime via IPC 2026-04-18 22:58:06 -04:00
README.md chore: remove release.sh (CI handles releases now); update README 2026-06-28 21:59:30 -04:00

Sunburn Desktop

Desktop client for Sunburn with per-app audio capture for screen sharing.

Features

  • Full voice/video/screen sharing (Chromium WebRTC)
  • Per-app audio capture — share audio from a specific application, not your entire system
    • Linux: PipeWire integration
    • Windows: WASAPI per-process capture
  • Custom screen share picker with audio source selection
  • Auto-updates — notifies you when a new version is available
  • Persistent login sessions

Install

Linux (AppImage)

Download the latest AppImage from Releases.

chmod +x Sunburn-*.AppImage
./Sunburn-*.AppImage

To add to your app launcher:

# Move to a permanent location
mkdir -p ~/.local/bin
mv Sunburn-*.AppImage ~/.local/bin/sunburn

Or install AppImageLauncher for automatic desktop integration:

# Arch Linux
yay -S appimagelauncher

Then double-click the AppImage and it will offer to integrate into your app menu.

Windows

Download Sunburn-Setup-*.exe from Releases and run the installer.

Note: Per-app audio capture requires Windows 10 Build 2004 (May 2020) or later.

Updates

The app checks for updates automatically every 30 minutes. When an update is available, a banner appears at the top of the app. Click "Restart to update" to apply it.

Development

npm install
npm start

Building

# Linux AppImage
npm run build:linux

# Windows installer (cross-compile via Wine)
npm run build:win

# Both
npm run build:all

Releasing

Releases are automated by CI (.forgejo/workflows/release.yml). To ship an update:

  1. Bump version in package.json.
  2. Merge to master.

On push to master the runner builds both platforms and publishes them to the rolling latest Forgejo release; the auto-updater picks it up automatically. The job skips if latest already serves the current version. Requires a RELEASE_TOKEN repo secret with release-write access.

Per-App Audio Capture

When screen sharing, the app shows a custom picker with two sections:

  1. Screens/Windows — select what to share visually
  2. Audio Sources — select which app's audio to include

How it works

  • Linux: Creates a PipeWire loopback that routes the selected app's audio output to a virtual capture source
  • Windows: Uses WASAPI application-loopback to capture audio from a specific process ID