The Most Private Anti-Detect Browser 🍩
See the code
Unlimited browser profiles on one computer. Each one shows websites a different device,
keeps its own cookies, extensions and proxy, and stays on your machine.
Websites link accounts that come from the same device, and then one ban can take all of them. In Donut, each account runs in its own profile with its own fingerprint, cookies and proxy or VPN, so every site sees a different device.
The fingerprints come from Wayfern, a privacy-focused Chromium fork that sets them inside the engine, not with scripts on the page.
Start any profile from the local REST API on 127.0.0.1:10108, then connect Playwright, Puppeteer or Selenium to it over CDP. Or connect Claude, Cursor, Codex or another MCP client over remote MCP, and watch what each agent does. Browser automation and remote MCP come with the paid plans. See the quickstart, Playwright with Wayfern and MCP guides.
Or install via Homebrew:
brew install --cask donut
Download Windows Installer (x64) · Portable (x64)
Or install via package manager:
curl -fsSL https://donutbrowser.com/install.sh | sh
If the AppImage segfaults on launch, install libfuse2 (sudo apt install libfuse2 / yay -S libfuse2 / sudo dnf install fuse-libs), or bypass FUSE entirely:
APPIMAGE_EXTRACT_AND_RUN=1 ./Donut.Browser_x.x.x_amd64.AppImage
If that gives an EGL display error, add WEBKIT_DISABLE_DMABUF_RENDERER=1 or GDK_BACKEND=x11 to the command above. If issues persist, the .deb and .rpm packages are more reliable.
Releases include an x86_64 Flatpak bundle and a Snap, built from the .deb and tested in their sandboxes by the Linux Packages workflow. Download Donut_*_x86_64.flatpak or Donut_*_amd64.snap from the releases (the nightly has them already) and install it:
flatpak install --user Donut_*_x86_64.flatpak
sudo snap install --dangerous Donut_*_amd64.snap
The Snap leaves the microphone, the camera and the keyring (used by profile import) disconnected until you run sudo snap connect donutbrowser:audio-record, donutbrowser:camera or donutbrowser:password-manager-service. The Flatpak cannot change the default browser, so choose Donut in your system settings instead.
nix run github:zhom/donutbrowser#release-start
Run your own sync server to sync profiles, proxies, and groups across devices for free. See the Self-Hosting Donut Sync guide for Docker-based setup instructions.
Donut Browser is built by the people who use it, and plenty of the most useful help involves no code at all.
src/i18n/locales.For urgent questions or security vulnerability reports, email contact@donutbrowser.com.
This project is licensed under the AGPL-3.0 License. See the LICENSE file for details.
(top 24 of 30)
1,152 followers · starred Jun 2026
207 followers · starred May 2026
159 followers · starred May 2026
392 followers · starred May 2025
The Most Private Anti-Detect Browser 🍩
See the code
Unlimited browser profiles on one computer. Each one shows websites a different device,
keeps its own cookies, extensions and proxy, and stays on your machine.
Websites link accounts that come from the same device, and then one ban can take all of them. In Donut, each account runs in its own profile with its own fingerprint, cookies and proxy or VPN, so every site sees a different device.
The fingerprints come from Wayfern, a privacy-focused Chromium fork that sets them inside the engine, not with scripts on the page.
Start any profile from the local REST API on 127.0.0.1:10108, then connect Playwright, Puppeteer or Selenium to it over CDP. Or connect Claude, Cursor, Codex or another MCP client over remote MCP, and watch what each agent does. Browser automation and remote MCP come with the paid plans. See the quickstart, Playwright with Wayfern and MCP guides.
Or install via Homebrew:
brew install --cask donut
Download Windows Installer (x64) · Portable (x64)
Or install via package manager:
curl -fsSL https://donutbrowser.com/install.sh | sh
If the AppImage segfaults on launch, install libfuse2 (sudo apt install libfuse2 / yay -S libfuse2 / sudo dnf install fuse-libs), or bypass FUSE entirely:
APPIMAGE_EXTRACT_AND_RUN=1 ./Donut.Browser_x.x.x_amd64.AppImage
If that gives an EGL display error, add WEBKIT_DISABLE_DMABUF_RENDERER=1 or GDK_BACKEND=x11 to the command above. If issues persist, the .deb and .rpm packages are more reliable.
Releases include an x86_64 Flatpak bundle and a Snap, built from the .deb and tested in their sandboxes by the Linux Packages workflow. Download Donut_*_x86_64.flatpak or Donut_*_amd64.snap from the releases (the nightly has them already) and install it:
flatpak install --user Donut_*_x86_64.flatpak
sudo snap install --dangerous Donut_*_amd64.snap
The Snap leaves the microphone, the camera and the keyring (used by profile import) disconnected until you run sudo snap connect donutbrowser:audio-record, donutbrowser:camera or donutbrowser:password-manager-service. The Flatpak cannot change the default browser, so choose Donut in your system settings instead.
nix run github:zhom/donutbrowser#release-start
Run your own sync server to sync profiles, proxies, and groups across devices for free. See the Self-Hosting Donut Sync guide for Docker-based setup instructions.
Donut Browser is built by the people who use it, and plenty of the most useful help involves no code at all.
src/i18n/locales.For urgent questions or security vulnerability reports, email contact@donutbrowser.com.
This project is licensed under the AGPL-3.0 License. See the LICENSE file for details.
(top 24 of 30)
1,152 followers · starred Jun 2026
207 followers · starred May 2026
159 followers · starred May 2026
392 followers · starred May 2025