An unofficial app for Windows and Linux that makes suno.com feel like it was built for your desktop.
Its own window, real media keys, a tray icon, and music that keeps playing when you close it.
Unofficial and open source · not affiliated with, sponsored by or endorsed by Suno, Inc.
Suno in a browser tab gets lost between 40 other tabs, stops when you close the wrong window, and your media keys end up pausing a YouTube video instead. Suno Desktop gives Suno its own home on your PC: a real window and taskbar entry, your system's media controls, a tray icon, and background playback. It's still the regular suno.com, so your account, songs and plan work exactly as they do in your browser.
| Custom title bar with back, forward, reload and home. On Windows 11: snap layouts on the maximize button and Mica on 22H2+. A Light, Dark or Auto theme you pick on first launch. | Keyboard media keys and the Windows media overlay control Suno's player, with previous / play-pause / next on the taskbar thumbnail too. On Linux, your desktop's media controls (MPRIS) do the same. |
| Close the window and Suno keeps playing in the tray. Play, pause and skip from the tray menu; quit from there when you're done. | Show what you're listening to with cover art, a progress bar and a Listen on Suno button. Off until you turn it on in Settings. |
| Your login survives restarts. Suno runs sandboxed, gets only the permissions it needs (it asks before using your mic), and links to other sites open in your normal browser. | Native save dialog or straight into a folder you pick, progress on the taskbar icon, and a Show in folder notification when it's done. |
| New versions download in the background and install when you quit (Linux packages install when you click Restart to update). Stable and beta channels. | Lost your connection? You get a proper offline page that retries on its own when you're back online. |
suno-desktop://open?path=/song/… opens a song straight in the app.
|
Turn on Suno++ in Settings → Plugins for community-made plugins and themes. They update themselves, and each one stays off until you turn it on. |
A title bar that belongs on Windows 11: navigation, settings, and real caption buttons with snap layouts
Offline? A real page with retry, not a blank window |
Settings → About |
Suno++ plugins, kept up to date for you |
Community themes for suno.com, with your own colors |
- Download
Suno-Desktop-Setup-<version>.exefrom the latest release. One installer covers both x64 and ARM64 PCs. - Run it and pick where to install.
- A quick welcome lets you pick Light, Dark or Auto. Then sign in to Suno like you normally would. That's it: you stay signed in, and the app keeps itself up to date.
Warning
Builds aren't code-signed yet, so Windows SmartScreen will say "Windows protected your PC". Click More info → Run anyway. Signing is on the roadmap.
Tip
Rather not install anything? Grab Suno-Desktop-Portable-<version>-x64.exe (or -arm64.exe for ARM PCs) and just run it. Portable builds don't auto-update.
Grab the file for your distro from the latest release. Every format comes for x64 and ARM64.
| Distro | File | Install |
|---|---|---|
| Ubuntu, Debian, Linux Mint, Pop!_OS | Suno-Desktop-<version>-amd64.deb (ARM: -arm64.deb) |
sudo apt install ./Suno-Desktop-*-amd64.deb |
| Fedora, openSUSE, RHEL | Suno-Desktop-<version>-x86_64.rpm (ARM: -aarch64.rpm) |
sudo dnf install ./Suno-Desktop-*-x86_64.rpm |
| Arch Linux, Manjaro, EndeavourOS | Suno-Desktop-<version>-x64.pacman (ARM: -aarch64.pacman) |
sudo pacman -U ./Suno-Desktop-*-x64.pacman |
| NixOS | The flake in this repo | See below |
| Anything else | Suno-Desktop-<version>-x86_64.AppImage (ARM: -arm64) |
chmod +x Suno-Desktop-*.AppImage, then run it |
The deb, rpm, pacman and AppImage builds update themselves. Packages ask for your password to install an update, so that only happens when you click Restart to update.
NixOS / Nix. Try it without installing:
nix run github:Cat-things/suno-desktopOr add it to your system flake:
{
inputs.suno-desktop.url = "github:Cat-things/suno-desktop";
inputs.suno-desktop.inputs.nixpkgs.follows = "nixpkgs";
outputs = { nixpkgs, suno-desktop, ... }: {
nixosConfigurations.my-pc = nixpkgs.lib.nixosSystem {
modules = [
({ pkgs, ... }: {
environment.systemPackages = [
suno-desktop.packages.${pkgs.stdenv.hostPlatform.system}.default
];
})
];
};
};
}There's also suno-desktop.overlays.default (adds pkgs.suno-desktop) and a default.nix for setups without flakes. The Nix package follows each release on its own; update it with nix flake update suno-desktop.
Every login option on suno.com opens inside the app, in its own window when the provider wants a popup:
| Provider | In the app |
|---|---|
| Apple | ✅ |
| Discord | ✅ |
| Microsoft | ✅ |
| ✅ | |
| LINE | ✅ |
| Phone (SMS) | ✅ |
If Google shows "This browser or app may not be secure", use another option. If your Suno account only has Google login, add another sign-in method to it on suno.com in your normal browser first.
| Keys | Does |
|---|---|
| Ctrl + R or F5 | Reload |
| Ctrl + Shift + R | Reload without cache |
| Alt + ← / → | Back / forward (mouse side buttons work too) |
| Ctrl + + / - / 0 | Zoom in / out / reset (or Ctrl + wheel) |
| Ctrl + , | Settings |
| F11 | Full screen |
| F12 or Ctrl + Shift + I | Developer tools (turn on in Settings → Advanced) |
Is this made by Suno?
No. Suno Desktop is an independent, open-source project. It isn't affiliated with, sponsored by or endorsed by Suno, Inc. It shows the regular suno.com website in a desktop window.
Can the app see my password?
Signing in happens on Suno's and your provider's own pages, loaded as they are. The app injects nothing into those pages and never reads or stores passwords. Your session cookies stay on your PC in
%APPDATA%\Suno Desktop (Linux: ~/.config/Suno Desktop).
Does it unlock free credits or skip limits?
Nope. It's the same website, so plans, credits and limits work exactly like in your browser.
Why is the installer around 200 MB?
It carries complete x64 and ARM64 builds (each with its own Chromium) so that one installer and one update feed work on every PC. Only the build your PC needs gets installed. The portable exes are per-architecture and about half the size.
How do I sign out or start fresh?
Settings → Advanced has two buttons. Reset app settings puts every app setting back to default and shows the welcome screen again, but keeps you signed in to Suno. Clear session and log out signs you out and deletes Suno's cookies and cache. To wipe everything, uninstall the app and delete
%APPDATA%\Suno Desktop (Linux: ~/.config/Suno Desktop).
Something's broken. Where are the logs?
%APPDATA%\Suno Desktop\logs\main.log on Windows, ~/.config/Suno Desktop/logs/main.log on Linux. Attach it to an issue along with your Windows version or Linux distro.
Can I make my own plugins or themes?
Yes! Plugins and themes live in Suno++, which anyone can contribute to (how). Once yours is merged, it reaches Suno Desktop by itself in the next Suno++ release, no app update needed, and it works in the Suno++ browser extension too. Not a coder? Share ideas in Discussions. How the app loads Suno++: docs/PLUGIN_HOOKS.md.
What about Mac?
Windows and Linux for now. It may run from source on a Mac, but it isn't built or tested there.
- Google sign-in can be blocked by Google (see Signing in).
- SmartScreen warns on first launch until releases are signed.
- Next / previous buttons light up only when suno.com offers next and previous track controls to the browser.
- The "Listen on Suno" button in Discord shows for your friends, not for you. That's how Discord displays buttons.
- Mica needs Windows 11 22H2 or newer. Older versions get a solid title bar.
- No tray icon on GNOME? GNOME hides tray icons unless you add the AppIndicator extension. Without it, closing the window leaves the app running in the background; open Suno Desktop again to bring it back, or turn off Close to tray in Settings.
- AppImages on Ubuntu 24.04 and newer run without Chromium's sandbox, because Ubuntu blocks the user namespaces it needs. The
.debinstalls the AppArmor profile that allows them, so prefer it there.
- Native window, media keys, tray, downloads, offline page
- Auto-updates with stable and beta channels
- Automatic releases
- Discord Rich Presence (opt-in)
- First-launch welcome with Light, Dark and Auto themes
- Code signing (no more SmartScreen warning)
- A proper app icon
- Suno++: community-made plugins and themes, built in and updating themselves
- A Suno++ marketplace page and smarter style recommendations for the Create page
- Linux: deb, rpm, pacman and AppImage builds, plus a Nix flake
Run from source
You need Node.js 22.12+ and pnpm 10 (corepack enable picks up the pinned version).
pnpm install
pnpm dev # run with hot reload
pnpm test # unit tests
pnpm build # bundle main, preloads and UI into out/
pnpm test:e2e # end-to-end tests against the built app (Linux: xvfb-run -a pnpm test:e2e)
pnpm lint && pnpm typecheckPackage for Windows (run on Windows):
pnpm dist:win # NSIS installer (x64 + arm64) and portable exes in dist/
pnpm dist:dir # unpacked app only, the quickest way to try a packaged buildPackage for Linux (run on Linux; the rpm and pacman targets need rpmbuild and bsdtar, e.g. sudo apt install rpm libarchive-tools):
pnpm dist:linux # AppImage, deb, rpm and pacman (x64 + arm64) in dist/How builds and releases work
- Test builds: every push to any branch runs Build Windows (the unsigned installer and both portable exes) and Build Linux (AppImage, deb, rpm, pacman), and attaches the files to the run as artifacts for 14 days. You can also start them by hand from the Actions tab.
- Releases: Release publishes a GitHub release automatically after every 3 commits on
main. It bumps the patch version (0.1.0 → 0.1.1 → …), builds Windows and Linux side by side, tags the commit it built, uploads everything plus the auto-update feeds (latest.yml,latest-linux.yml,latest-linux-arm64.yml), and writes release notes from the commit list. Then it points the Nix package at the new AppImages by committingnix/release.jsontomain(that commit doesn't count toward the next release). - Release now: Actions → Release → Run workflow, or push a
vX.Y.Ztag. Prereleases likev0.2.0-beta.1go to the beta channel. - New minor or major version: set it in
package.json; the next release uses it.
Configuration
- Discord Rich Presence uses the Discord application ID in
config/app.config.json. Forks can point it at their own application from the Discord Developer Portal (its name is what shows after "Listening to"); upload an art asset namedlogothere for songs without a cover. For local testing you can setSUNO_DESKTOP_DISCORD_CLIENT_IDinstead. It stays off until the user turns it on. - Icons are placeholders. Replace
build/icon.svgandresources/tray.svg, then runpnpm icons.
- Architecture: windows, the security model, IPC and how media controls flow
- Suno++ and the plugin hooks: how the app downloads, updates and runs Suno++
- Testing: what CI checks and the manual Windows checklist
- 💬 Questions, ideas, plugin or theme wishes? Head to Discussions.
- 🐛 Found a bug? Open an issue; the form asks for what we need.
- 🔒 Security problem? Report it privately, see SECURITY.md. Please don't open a public issue.
- 🛠️ Want to contribute? Pull requests are welcome. Before you push, run
pnpm lint && pnpm typecheck && pnpm test; CI runs those plus end-to-end tests on Linux and Windows.
More on where to go in SUPPORT.md.
MIT. "Suno" is a trademark of Suno, Inc. This project ships none of Suno's logos or assets.

