{"adoption": {"forks": 403, "observed_at": "2026-08-28T04:08:15.375292+00:00", "stars": 3720}, "canonical_url": "https://ross.abutalabs.com/products/donutbrowser", "card": {"archived": false, "artifact_type": "application", "description": "Simple Yet Powerful Anti-Detect Browser 🍩", "domain": ["privacy", "browser-extensions", "security", "cross-platform", "self-hosted"], "enriched": true, "function": ["browser-extension", "privacy", "proxy", "vpn", "mcp", "web-scraping", "developer-tools", "security"], "health_score": 100, "homepage": "https://donutbrowser.com", "language": "Rust", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["zhom/donutbrowser"], "name": "zhom/donutbrowser", "platform": ["windows", "rust"], "pushed_at": "2026-08-26T11:51:50+00:00", "repo": "zhom/donutbrowser", "stars": 3720, "tags": ["anti-detect-browser", "fingerprint-spoofing", "browser-profiles", "chromium", "playwright", "account-isolation", "ad-blocking", "local-api", "automation", "macos", "linux", "desktop"], "topics": ["browser", "chromium", "management", "manager", "orchestrator", "privacy", "browser-management", "orchestration", "anti-detect", "anti-detect-browser", "anti-detection", "browser-automation", "browser-fingerprint-bypass", "browser-fingerprinting", "profile-management"], "urls": [], "use_cases": ["manage multiple isolated browser profiles with distinct fingerprints", "run multiple accounts without them being linked by browser fingerprinting", "route each browser profile through a different proxy or VPN", "automate browser tasks with Playwright or an MCP server", "migrate profiles from Chrome, Edge, or Brave", "block ads and trackers per profile with DNS adblocking", "sync browser profiles across devices with end-to-end encryption"], "what_it_is": "Donut Browser is an open-source anti-detect desktop browser for macOS, Windows, and Linux that creates unlimited isolated browser profiles, each with its own spoofed fingerprint, cookies, extensions, proxy, or WireGuard VPN. It is built on the Wayfern Chromium fork and exposes a local REST API and MCP server for programmatic control and automation.", "when_to_avoid": ["you need a fully open-source stack — the Wayfern Chromium engine ships as a closed-source binary", "you just want a standard everyday browser without profile isolation", "your company cannot accept AGPL-3.0 obligations and you don't want a commercial licence", "you need browser-launch/manipulation APIs on the free tier — those are paid Pro features"], "when_to_choose": ["you need per-profile fingerprint spoofing that evades anti-bot systems like Cloudflare and reCAPTCHA", "you want a local-first, zero-telemetry alternative to commercial anti-detect browsers", "you need programmatic browser control via REST API, MCP, or Playwright", "you want self-hostable, encrypted profile sync"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/donutbrowser", "repo": "zhom/donutbrowser", "role": "main", "score": 81}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.375292+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:29:20.500092+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d45d9060e768fe3f99dcb23f2c7dd90f5f41d180f06b1864528790163eff422b", "fetched_at": "2026-08-28T04:08:15.375292+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhom/donutbrowser"}, {"content_hash": "776babdd6c506a723e7401ac56ea55df63ad2ef5f1fa0d8ea03985dc1f49273f", "fetched_at": "2026-08-29T09:24:06.120469+00:00", "kind": "homepage", "missing": false, "url": "https://donutbrowser.com"}, {"content_hash": "29fbc285283187483596a70578f8425059655da7e0b5a4d0bddbc77b4d691e38", "fetched_at": "2026-08-29T09:24:06.131369+00:00", "kind": "site_page", "missing": false, "url": "https://donutbrowser.com/docs"}, {"content_hash": "c64b82132b4605cdc5efb1bfdddb409e15249179992ba23686a04c60938fb5fd", "fetched_at": "2026-08-29T09:24:06.132974+00:00", "kind": "site_page", "missing": false, "url": "https://donutbrowser.com/about"}, {"content_hash": "0b3683c0a9e247fc197be6d58c352a6546ed83de91bed0e57cf58805f9935f7e", "fetched_at": "2026-08-29T09:24:06.129623+00:00", "kind": "site_page", "missing": false, "url": "https://donutbrowser.com/pricing"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.375292+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:29:20.500092+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d45d9060e768fe3f99dcb23f2c7dd90f5f41d180f06b1864528790163eff422b", "fetched_at": "2026-08-28T04:08:15.375292+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhom/donutbrowser"}, {"content_hash": "776babdd6c506a723e7401ac56ea55df63ad2ef5f1fa0d8ea03985dc1f49273f", "fetched_at": "2026-08-29T09:24:06.120469+00:00", "kind": "homepage", "missing": false, "url": "https://donutbrowser.com"}, {"content_hash": "29fbc285283187483596a70578f8425059655da7e0b5a4d0bddbc77b4d691e38", "fetched_at": "2026-08-29T09:24:06.131369+00:00", "kind": "site_page", "missing": false, "url": "https://donutbrowser.com/docs"}, {"content_hash": "c64b82132b4605cdc5efb1bfdddb409e15249179992ba23686a04c60938fb5fd", "fetched_at": "2026-08-29T09:24:06.132974+00:00", "kind": "site_page", "missing": false, "url": "https://donutbrowser.com/about"}, {"content_hash": "0b3683c0a9e247fc197be6d58c352a6546ed83de91bed0e57cf58805f9935f7e", "fetched_at": "2026-08-29T09:24:06.129623+00:00", "kind": "site_page", "missing": false, "url": "https://donutbrowser.com/pricing"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:29:20.500092+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d45d9060e768fe3f99dcb23f2c7dd90f5f41d180f06b1864528790163eff422b", "fetched_at": "2026-08-28T04:08:15.375292+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhom/donutbrowser"}, {"content_hash": "776babdd6c506a723e7401ac56ea55df63ad2ef5f1fa0d8ea03985dc1f49273f", "fetched_at": "2026-08-29T09:24:06.120469+00:00", "kind": "homepage", "missing": false, "url": "https://donutbrowser.com"}, {"content_hash": "29fbc285283187483596a70578f8425059655da7e0b5a4d0bddbc77b4d691e38", "fetched_at": "2026-08-29T09:24:06.131369+00:00", "kind": "site_page", "missing": false, "url": "https://donutbrowser.com/docs"}, {"content_hash": "c64b82132b4605cdc5efb1bfdddb409e15249179992ba23686a04c60938fb5fd", "fetched_at": "2026-08-29T09:24:06.132974+00:00", "kind": "site_page", "missing": false, "url": "https://donutbrowser.com/about"}, {"content_hash": "0b3683c0a9e247fc197be6d58c352a6546ed83de91bed0e57cf58805f9935f7e", "fetched_at": "2026-08-29T09:24:06.129623+00:00", "kind": "site_page", "missing": false, "url": "https://donutbrowser.com/pricing"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.375292+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.375292+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.375292+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:29:20.500092+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d45d9060e768fe3f99dcb23f2c7dd90f5f41d180f06b1864528790163eff422b", "fetched_at": "2026-08-28T04:08:15.375292+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhom/donutbrowser"}, {"content_hash": "776babdd6c506a723e7401ac56ea55df63ad2ef5f1fa0d8ea03985dc1f49273f", "fetched_at": "2026-08-29T09:24:06.120469+00:00", "kind": "homepage", "missing": false, "url": "https://donutbrowser.com"}, {"content_hash": "29fbc285283187483596a70578f8425059655da7e0b5a4d0bddbc77b4d691e38", "fetched_at": "2026-08-29T09:24:06.131369+00:00", "kind": "site_page", "missing": false, "url": "https://donutbrowser.com/docs"}, {"content_hash": "c64b82132b4605cdc5efb1bfdddb409e15249179992ba23686a04c60938fb5fd", "fetched_at": "2026-08-29T09:24:06.132974+00:00", "kind": "site_page", "missing": false, "url": "https://donutbrowser.com/about"}, {"content_hash": "0b3683c0a9e247fc197be6d58c352a6546ed83de91bed0e57cf58805f9935f7e", "fetched_at": "2026-08-29T09:24:06.129623+00:00", "kind": "site_page", "missing": false, "url": "https://donutbrowser.com/pricing"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.375292+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.375292+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:29:20.500092+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d45d9060e768fe3f99dcb23f2c7dd90f5f41d180f06b1864528790163eff422b", "fetched_at": "2026-08-28T04:08:15.375292+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhom/donutbrowser"}, {"content_hash": "776babdd6c506a723e7401ac56ea55df63ad2ef5f1fa0d8ea03985dc1f49273f", "fetched_at": "2026-08-29T09:24:06.120469+00:00", "kind": "homepage", "missing": false, "url": "https://donutbrowser.com"}, {"content_hash": "29fbc285283187483596a70578f8425059655da7e0b5a4d0bddbc77b4d691e38", "fetched_at": "2026-08-29T09:24:06.131369+00:00", "kind": "site_page", "missing": false, "url": "https://donutbrowser.com/docs"}, {"content_hash": "c64b82132b4605cdc5efb1bfdddb409e15249179992ba23686a04c60938fb5fd", "fetched_at": "2026-08-29T09:24:06.132974+00:00", "kind": "site_page", "missing": false, "url": "https://donutbrowser.com/about"}, {"content_hash": "0b3683c0a9e247fc197be6d58c352a6546ed83de91bed0e57cf58805f9935f7e", "fetched_at": "2026-08-29T09:24:06.129623+00:00", "kind": "site_page", "missing": false, "url": "https://donutbrowser.com/pricing"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.375292+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.375292+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.375292+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:29:20.500092+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d45d9060e768fe3f99dcb23f2c7dd90f5f41d180f06b1864528790163eff422b", "fetched_at": "2026-08-28T04:08:15.375292+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhom/donutbrowser"}, {"content_hash": "776babdd6c506a723e7401ac56ea55df63ad2ef5f1fa0d8ea03985dc1f49273f", "fetched_at": "2026-08-29T09:24:06.120469+00:00", "kind": "homepage", "missing": false, "url": "https://donutbrowser.com"}, {"content_hash": "29fbc285283187483596a70578f8425059655da7e0b5a4d0bddbc77b4d691e38", "fetched_at": "2026-08-29T09:24:06.131369+00:00", "kind": "site_page", "missing": false, "url": "https://donutbrowser.com/docs"}, {"content_hash": "c64b82132b4605cdc5efb1bfdddb409e15249179992ba23686a04c60938fb5fd", "fetched_at": "2026-08-29T09:24:06.132974+00:00", "kind": "site_page", "missing": false, "url": "https://donutbrowser.com/about"}, {"content_hash": "0b3683c0a9e247fc197be6d58c352a6546ed83de91bed0e57cf58805f9935f7e", "fetched_at": "2026-08-29T09:24:06.129623+00:00", "kind": "site_page", "missing": false, "url": "https://donutbrowser.com/pricing"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.375292+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.375292+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:29:20.500092+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d45d9060e768fe3f99dcb23f2c7dd90f5f41d180f06b1864528790163eff422b", "fetched_at": "2026-08-28T04:08:15.375292+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhom/donutbrowser"}, {"content_hash": "776babdd6c506a723e7401ac56ea55df63ad2ef5f1fa0d8ea03985dc1f49273f", "fetched_at": "2026-08-29T09:24:06.120469+00:00", "kind": "homepage", "missing": false, "url": "https://donutbrowser.com"}, {"content_hash": "29fbc285283187483596a70578f8425059655da7e0b5a4d0bddbc77b4d691e38", "fetched_at": "2026-08-29T09:24:06.131369+00:00", "kind": "site_page", "missing": false, "url": "https://donutbrowser.com/docs"}, {"content_hash": "c64b82132b4605cdc5efb1bfdddb409e15249179992ba23686a04c60938fb5fd", "fetched_at": "2026-08-29T09:24:06.132974+00:00", "kind": "site_page", "missing": false, "url": "https://donutbrowser.com/about"}, {"content_hash": "0b3683c0a9e247fc197be6d58c352a6546ed83de91bed0e57cf58805f9935f7e", "fetched_at": "2026-08-29T09:24:06.129623+00:00", "kind": "site_page", "missing": false, "url": "https://donutbrowser.com/pricing"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:29:20.500092+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d45d9060e768fe3f99dcb23f2c7dd90f5f41d180f06b1864528790163eff422b", "fetched_at": "2026-08-28T04:08:15.375292+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhom/donutbrowser"}, {"content_hash": "776babdd6c506a723e7401ac56ea55df63ad2ef5f1fa0d8ea03985dc1f49273f", "fetched_at": "2026-08-29T09:24:06.120469+00:00", "kind": "homepage", "missing": false, "url": "https://donutbrowser.com"}, {"content_hash": "29fbc285283187483596a70578f8425059655da7e0b5a4d0bddbc77b4d691e38", "fetched_at": "2026-08-29T09:24:06.131369+00:00", "kind": "site_page", "missing": false, "url": "https://donutbrowser.com/docs"}, {"content_hash": "c64b82132b4605cdc5efb1bfdddb409e15249179992ba23686a04c60938fb5fd", "fetched_at": "2026-08-29T09:24:06.132974+00:00", "kind": "site_page", "missing": false, "url": "https://donutbrowser.com/about"}, {"content_hash": "0b3683c0a9e247fc197be6d58c352a6546ed83de91bed0e57cf58805f9935f7e", "fetched_at": "2026-08-29T09:24:06.129623+00:00", "kind": "site_page", "missing": false, "url": "https://donutbrowser.com/pricing"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:29:20.500092+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d45d9060e768fe3f99dcb23f2c7dd90f5f41d180f06b1864528790163eff422b", "fetched_at": "2026-08-28T04:08:15.375292+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhom/donutbrowser"}, {"content_hash": "776babdd6c506a723e7401ac56ea55df63ad2ef5f1fa0d8ea03985dc1f49273f", "fetched_at": "2026-08-29T09:24:06.120469+00:00", "kind": "homepage", "missing": false, "url": "https://donutbrowser.com"}, {"content_hash": "29fbc285283187483596a70578f8425059655da7e0b5a4d0bddbc77b4d691e38", "fetched_at": "2026-08-29T09:24:06.131369+00:00", "kind": "site_page", "missing": false, "url": "https://donutbrowser.com/docs"}, {"content_hash": "c64b82132b4605cdc5efb1bfdddb409e15249179992ba23686a04c60938fb5fd", "fetched_at": "2026-08-29T09:24:06.132974+00:00", "kind": "site_page", "missing": false, "url": "https://donutbrowser.com/about"}, {"content_hash": "0b3683c0a9e247fc197be6d58c352a6546ed83de91bed0e57cf58805f9935f7e", "fetched_at": "2026-08-29T09:24:06.129623+00:00", "kind": "site_page", "missing": false, "url": "https://donutbrowser.com/pricing"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:29:20.500092+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d45d9060e768fe3f99dcb23f2c7dd90f5f41d180f06b1864528790163eff422b", "fetched_at": "2026-08-28T04:08:15.375292+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhom/donutbrowser"}, {"content_hash": "776babdd6c506a723e7401ac56ea55df63ad2ef5f1fa0d8ea03985dc1f49273f", "fetched_at": "2026-08-29T09:24:06.120469+00:00", "kind": "homepage", "missing": false, "url": "https://donutbrowser.com"}, {"content_hash": "29fbc285283187483596a70578f8425059655da7e0b5a4d0bddbc77b4d691e38", "fetched_at": "2026-08-29T09:24:06.131369+00:00", "kind": "site_page", "missing": false, "url": "https://donutbrowser.com/docs"}, {"content_hash": "c64b82132b4605cdc5efb1bfdddb409e15249179992ba23686a04c60938fb5fd", "fetched_at": "2026-08-29T09:24:06.132974+00:00", "kind": "site_page", "missing": false, "url": "https://donutbrowser.com/about"}, {"content_hash": "0b3683c0a9e247fc197be6d58c352a6546ed83de91bed0e57cf58805f9935f7e", "fetched_at": "2026-08-29T09:24:06.129623+00:00", "kind": "site_page", "missing": false, "url": "https://donutbrowser.com/pricing"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 32, "rhythm": 87}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 461, "days_push": 7, "days_rel": 10, "gap_med": 1.0, "n_releases_24m": 107}, "score": 81, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}