Overview | Compatibility | Downloads | FAQ | Development | Contributing

A simple standalone program which automates the installation, removal and maintenance of BetterDiscord.
This repository contains the source code for the BetterDiscord installer. The app is built with Wails (Go backend + Svelte frontend) and ships as a native desktop application.
| Platform | Minimum Version | Support Status | Notes |
|---|---|---|---|
| Windows | Windows 10+ | ✅ | x64. Uses the system WebView2 runtime. |
| macOS | macOS 12+ (Monterey) | ✅ | Universal binary (Intel + Apple Silicon). |
| Linux | Any x64 distro with WebKitGTK 4.1 (e.g. Ubuntu 22.04+, Debian 12+, Fedora 37+) | ✅ | See Linux install support notes below. |
Linux install support:
- Native Discord install: ✅ Supported
- Flatpak Discord install: ✅ Supported for per-user installs;
⚠️ system-wide/global installs need elevated write access and aren't supported yet - Snap Discord install: ❌ Unsupported; snap mounts Discord's files read-only, so the installer can't modify the app
These links point to the latest builds in the releases tab of this repository.
| Platform | Download |
|---|---|
| Windows | BetterDiscord-Installer-Windows.exe |
| macOS | BetterDiscord-Installer-Mac.zip |
| Linux (AppImage) | BetterDiscord-Installer-Linux.AppImage.zip |
| Linux (zip) | BetterDiscord-Installer-Linux.zip |
Or install via a package manager:
# Windows
winget install BetterDiscord.Installer
# macOS
brew install --cask betterdiscord/tap/betterdiscord-installerThe installer is currently not code-signed, so SmartScreen warns on new downloads. Click More info → Run anyway. Installing via winget avoids the prompt since winget verifies the download hash.
The app is not yet notarized with Apple. Right-click the app and choose Open (on newer macOS versions you may need to allow it under System Settings → Privacy & Security → Open Anyway). Alternatively, remove the quarantine flag:
xattr -d com.apple.quarantine "/Applications/BetterDiscord Installer.app"Yes, for per-user Flatpak installs (the default flatpak install --user …). System-wide/global Flatpak installs live under /var/lib/flatpak, which is root-owned; the installer needs to write into the app to inject BetterDiscord, and it doesn't request elevation yet, so global Flatpak installs aren't supported for now.
Snap mounts Discord's application files as a read-only squashfs. The installer injects BetterDiscord by modifying files inside the Discord app, which isn't possible on a read-only mount, so Snap can't be supported.
It places a small loader inside Discord's own app files (a resources/app folder) and preserves Discord's original app.asar next to it. Because this loads before Discord's updater runs, BetterDiscord can keep itself injected across Discord updates, so you generally only need to run the installer once. Uninstalling restores Discord's original files.
Yes: fully close Discord before installing, repairing, or uninstalling. WSL support targets a Windows Discord install, but the installer can't see or manage the Windows Discord process from the Linux side, so it can't stop Discord for you. If Discord is still running it holds a lock on app.asar and the operation will fail. In this case, close Discord and try again. (For headless or CLI-based workflows, the BetterDiscord CLI is a better fit.)
- Grant the Flatpak app access to the BetterDiscord config directory:
flatpak --user override com.discordapp.Discord --filesystem=xdg-config/BetterDiscord:rw- Symlink the BetterDiscord folder into the Flatpak app config:
ln -s "${XDG_CONFIG_HOME:-$HOME/.config}/BetterDiscord" "$HOME/.var/app/com.discordapp.Discord/config/BetterDiscord"Replace com.discordapp.Discord with your Discord Flatpak app ID if it differs on your system.
Show Codebase Structure
.
├── api // Wails bindings and backend runtime helpers.
├── betterdiscord // BetterDiscord install/repair/uninstall logic.
├── build // Build assets and platform-specific packaging files.
├── discord // Discord installation discovery.
├── frontend // Svelte UI bundled by Vite (Bun-powered).
├── scripts // Build/release helper scripts (frontend, AppImage, winres).
├── types // Shared Go types used by bindings.
├── utils // Backend utilities.
├── wsl // WSL detection and path helpers.
├── main.go // Wails application entry point.
├── wails.json // Wails configuration + frontend hooks.
├── Taskfile.yml // Common dev/build tasks (https://taskfile.dev).
├── .goreleaser.yaml // Release build + publishing configuration.
- Git
- Go (matches
go.mod) - Bun
- Wails CLI
- Task (optional, for the shortcuts below)
- GoReleaser (optional, for local release snapshots)
- Command line of your choice
Wails requires additional system packages on Linux (GTK/WebKit and build tooling). See the official Wails Linux dependencies guide: https://wails.io/docs/gettingstarted/installation#linux
Fedora note: you may need to set PKG_CONFIG_PATH to include system pkgconfig directories:
export PKG_CONFIG_PATH="/usr/lib64/pkgconfig:/usr/share/pkgconfig"# Clone and navigate to the repository
git clone https://github.com/BetterDiscord/Installer && cd installer
# Run in development mode with backend bindings
task dev # or: wails dev (add -tags webkit2_41 on Linux)
# Build a distributable binary
task build # or: wails build (add -tags webkit2_41 on Linux)task check # frontend typecheck + lint, go vet, go test
# Or run pieces individually:
cd frontend && bun install && bun run check && bun run lint && bun run test
go test ./...Releases are built and published by GoReleaser when a v* tag is pushed (prerelease tags like v2.0.0-alpha.1 skip the winget/homebrew publishing). To build a local snapshot of the release artifacts for your platform:
task snapshot # output lands in dist/Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'feat: add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
For information on contributing to this project, please see CONTRIBUTING.md.
Made with ❤️ by the BetterDiscord Team