Skip to content
maximalangPublic

About

Donut-Free — local-first fork of Donut Browser: full local automation (REST + MCP API), self-hosted sync, no vendor cloud. AGPL-3.0.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

2,065 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
donutOS Logo

donutOS

Local-first anti-detect browser — no vendor cloud, full agent integration
github.com/maximalang/donutOS

GitHub release PRs Welcome License GitHub forks

Donut Browser starts three profiles. Each one opens its own browser window with the profile name in the address bar, and shows websites a different device.

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.

Keep every account separate

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.

In an ordinary browser, four accounts show websites the same device, so they are linked and one ban takes down all four. In Donut Browser, each account shows a different device, so the accounts stay separate.

The fingerprints come from Wayfern, a privacy-focused Chromium fork that sets them inside the engine, not with scripts on the page.

Your data stays on your device

Profiles, with their cookies, logins, history and fingerprints, stay on your device. Optional sync sends only data that is encrypted with your password. The app sends no telemetry.

  • No account needed: profiles, cookies, logins and history live on your computer.
  • Zero telemetry: the app sends no tracking or analytics.
  • Lock a profile with a password, or make it ephemeral so that nothing is left when it closes.
  • Sync is optional and end-to-end encrypted with a password only you know. Use Donut Sync or run your own server.

Automate with code or with AI agents

Start a profile from the local REST API and connect Playwright to it over CDP, or let your AI agent work with profiles over remote MCP.

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. No vendor cloud needed. See the quickstart, Server Mode, and Feature Matrix.

Features

  • Unlimited browser profiles: each fully isolated with its own fingerprint, cookies, extensions, and data
  • Anti-detect Chromium engine: powered by Wayfern, a privacy-focused Chromium fork whose fingerprint spoofing is not detected by Cloudflare, reCaptcha v3, or other browser fingerprinting and anti-bot services
  • DNS AdBlocker: block ads, trackers, and other unwanted content with per-profile DNS blocking
  • Proxy support: HTTP, HTTPS, SOCKS4, SOCKS5 per profile, with dynamic proxy URLs
  • VPN support: WireGuard configs per profile
  • REST API & remote MCP: a local REST API and a remote Model Context Protocol server for Claude, Cursor, automation tools and custom workflows
  • Profile groups: organize profiles and apply bulk settings
  • Import profiles: migrate from Chrome, Edge, Brave, or other Chromium browsers
  • Cookie & extension management: import/export cookies, manage extensions per profile
  • Default browser: set Donut as your default browser and choose which profile opens each link
  • Cloud sync: sync profiles, proxies, and groups across devices (self-hostable)
  • E2E encryption: optional end-to-end encrypted sync with a password only you know
  • Zero telemetry: no tracking or device fingerprinting

Quick Start

Build from source (recommended)

git clone https://github.com/maximalang/donutOS
cd donutOS
pnpm install
pnpm tauri build --features free

Portable binary will be in src-tauri/target/release/bundle/nsis/ (Windows).

Download Release

Windows Portable (x64)

Install

Windows

Windows x64 releases are built and published automatically via GitHub Actions. Download the latest portable .zip from Releases.

Upstream original:

Linux

Format x86_64 ARM64
deb Download Download
rpm Download Download
AppImage Download Download

Or install via package manager:

curl -fsSL https://donutbrowser.com/install.sh | sh
Troubleshooting AppImage

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.

Flatpak and Snap

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

nix run github:donutbrowser/donutbrowser#release-start

Self-Hosted Server Mode

Run donutOS as a local or LAN MCP server for agent automation. See Server Mode Configuration for:

  • Local localhost:3000 MCP endpoint (no auth)
  • LAN/remote with token auth and optional TLS
  • Self-hosted sync integration
  • Hermes agent integration

Feature Inventory

See Feature Matrix for full upstream vs free comparison:

  • ~70 features, vendor-cloud status mapped
  • Local replacements planned for cookie-bot, agents, recipes
  • Self-hosted sync compatible with v0.35.4+

Contributing

Donut Browser is built by the people who use it, and plenty of the most useful help involves no code at all.

  • Tell other people about Donut. Word of mouth is how most users find the project, so talking about it is a real contribution.
  • Report bugs and request features in GitHub Issues.
  • Answer questions in GitHub Discussions.
  • Fix and improve translations in src/i18n/locales.
  • Write code. Start with CONTRIBUTING.md.
  • Star the repo so more people see it.

Star History

Cumulative GitHub stars for donutbrowser/donutbrowser over time

Contributors

Everyone who has landed commits in donutbrowser/donutbrowser, ranked by commit count

Contact

For urgent questions or security vulnerability reports, email contact@donutbrowser.com.

Attribution

donutOS is a local-first fork of Donut Browser — the original anti-detect browser by @zhom and contributors.

  • Upstream project: zhom/donutbrowser
  • Original license: AGPL-3.0
  • donutOS additions: Server-mode, local automation, agent-native API

License

This project is licensed under the AGPL-3.0 License, with attribution to the original Donut Browser project. See the LICENSE file for details.

About

Donut-Free — local-first fork of Donut Browser: full local automation (REST + MCP API), self-hosted sync, no vendor cloud. AGPL-3.0.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages