{"id":51081511,"url":"https://github.com/santhsecurity/reynard","last_synced_at":"2026-06-23T18:32:55.151Z","repository":{"id":363016096,"uuid":"1261660850","full_name":"santhsecurity/reynard","owner":"santhsecurity","description":"Stealth-hardened Firefox/Gecko fork (Camoufox-derived) for authorized security testing: native navigator.webdriver=false over WebDriver BiDi and persona UA coherence across main/worker/iframe realms via REYNARD_CONFIG.","archived":false,"fork":false,"pushed_at":"2026-06-15T23:45:40.000Z","size":7405,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-16T01:21:48.416Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/santhsecurity.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"daijro","ko_fi":"daijro"}},"created_at":"2026-06-07T01:45:34.000Z","updated_at":"2026-06-15T23:31:33.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/santhsecurity/reynard","commit_stats":null,"previous_names":["santhsecurity/reynard"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/santhsecurity/reynard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/santhsecurity%2Freynard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/santhsecurity%2Freynard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/santhsecurity%2Freynard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/santhsecurity%2Freynard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/santhsecurity","download_url":"https://codeload.github.com/santhsecurity/reynard/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/santhsecurity%2Freynard/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34702913,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-23T02:00:07.161Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-23T18:32:53.943Z","updated_at":"2026-06-23T18:32:55.141Z","avatar_url":"https://github.com/santhsecurity.png","language":"C++","funding_links":["https://github.com/sponsors/daijro","https://ko-fi.com/daijro"],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"https://camoufox.com/static/banner.svg\" align=\"center\"\u003e\n\n\u003ch1 align=\"center\"\u003eCamoufox\u003c/h1\u003e\n\n\u003ch4 align=\"center\"\u003eThe browser built for AI agents 🦊\u003c/h4\u003e\n\n\u003cp align=\"center\"\u003e                                      \nCamoufox is an open source browser built for AI agents. It is lightweight, mimics a human browser, and is optimized for LLM automation.\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://trendshift.io/repositories/12224\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://trendshift.io/api/badge/repositories/12224\" alt=\"daijro%2Fcamoufox | Trendshift\" width=\"250\" height=\"55\"/\u003e\n  \u003c/a\u003e\u003cbr\u003e\n  \u003ca href=\"https://pepy.tech/projects/camoufox\"\u003e\u003cimg src=\"https://static.pepy.tech/personalized-badge/camoufox?period=total\u0026units=INTERNATIONAL_SYSTEM\u0026left_color=BLACK\u0026right_color=GREEN\u0026left_text=downloads\" alt=\"Total Downloads\"\u003c/a\u003e\n  \u003ca href=\"https://pepy.tech/projects/camoufox\"\u003e\u003cimg src=\"https://static.pepy.tech/personalized-badge/camoufox?period=monthly\u0026units=INTERNATIONAL_SYSTEM\u0026left_color=BLACK\u0026right_color=GREEN\u0026left_text=downloads%2Fmonth\" alt=\"Monthly Downloads\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://pepy.tech/projects/camoufox\"\u003e\u003cimg src=\"https://static.pepy.tech/personalized-badge/camoufox?period=weekly\u0026units=INTERNATIONAL_SYSTEM\u0026left_color=BLACK\u0026right_color=GREEN\u0026left_text=downloads%2Fweek\" alt=\"Weekly Downloads\"\u003e\u003c/a\u003e\n\u003c/div\u003e\n\n---\n\n\u003e [!NOTE]\n\u003e **All of the latest documentation is avaliable at [camoufox.com](https://camoufox.com).**\n\n\u003e [!NOTE]\n\u003e Browser development is active at [github.com/CloverLabsAI/camoufox](https://github.com/CloverLabsAI/camoufox) and [github.com/VulpineOS/VulpineOS](https://github.com/VulpineOS/VulpineOS).\u003cbr\u003eThis repo is being used to merge checkpoint releases and should be used as the source of truth.\n\n\u003e [!NOTE]\n\u003e To make use of the alpha Camoufox releases, use the [`cloverlabs-camoufox`](https://pypi.org/project/cloverlabs-camoufox/) pip package.\n\n---\n\n# Sponsors\n\n\u003cdetails open\u003e\n\u003csummary\u003eView\u003c/summary\u003e\n\u003cbr\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"25%\" align=\"center\" valign=\"middle\"\u003e\n      \u003ca href=\"https://scrapfly.io/?utm_source=github\u0026utm_medium=sponsoring\u0026utm_campaign=camoufox\" target=\"_blank\"\u003e\n        \u003cimg src=\"https://raw.githubusercontent.com/daijro/camoufox/main/assets/scrapfly.png\" alt=\"Scrapfly.io\" width=\"200\"\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd valign=\"middle\"\u003e\n      \u003ca href=\"https://scrapfly.io/?utm_source=github\u0026utm_medium=sponsoring\u0026utm_campaign=camoufox\"\u003eScrapfly\u003c/a\u003e is an enterprise-grade solution providing Web Scraping API that aims to simplify the scraping process by managing everything: real browser rendering, rotating proxies, and fingerprints (TLS, HTTP, browser) to bypass all major anti-bots. Scrapfly also unlocks the observability by providing an analytical dashboard and measuring the success rate/block rate in detail.\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"25%\" align=\"center\" valign=\"middle\"\u003e\n      \u003ca href=\"https://cloverlabs.ai/?utm_source=github\u0026utm_medium=sponsoring\u0026utm_campaign=camoufox\" target=\"_blank\"\u003e\n        \u003cimg src=\"https://i.imgur.com/I3oe7xG.jpeg\" alt=\"cloverlabs.ai\" width=\"300\"\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd valign=\"middle\"\u003e\n      \u003ca href=\"https://cloverlabs.ai/?utm_source=github\u0026utm_medium=sponsoring\u0026utm_campaign=camoufox\"\u003eClover Labs\u003c/a\u003e is a Toronto based venture studio building AI agents for growth and distribution.\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"25%\" align=\"center\" valign=\"middle\" height=\"100\"\u003e\n      \u003ca href=\"https://serpapi.com/use-cases/web-search-api?utm_source=camoufox\" target=\"_blank\"\u003e\n        \u003cimg width=\"350\" alt=\"color horizontal\" src=\"https://github.com/user-attachments/assets/cdf90178-869e-4f85-8288-3fe32da319d9\"/\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd valign=\"middle\"\u003e\n      \u003ca href=\"https://serpapi.com/use-cases/web-search-api?utm_source=camoufox\"\u003eSerpApi, a web search API\u003c/a\u003e to scrape Google and other search engines with a simple API.\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n## Proxy providers\n\nCamoufox is intended to be used with rotating proxies (preferably residential IPs). Check out these providers:\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"25%\" align=\"center\" valign=\"middle\"\u003e\n      \u003ca href=\"https://www.thordata.com/?ls=github\u0026lk=camoufox\" target=\"_blank\"\u003e\n        \u003cimg alt=\"thordata\" src=\"https://github.com/user-attachments/assets/fa79fe26-633b-44a4-a2a8-bce570f180ca\" width=\"350\"/\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd valign=\"middle\"\u003e\n      \u003ca href=\"https://www.thordata.com/?ls=github\u0026lk=camoufox\"\u003eThordata\u003c/a\u003e - Your First Plan is on Us! 💰 Get 100% of your first residential proxy purchase back as wallet balance, up to $900.\u003cbr\u003e\u003cbr\u003e\n      \u003cb\u003e⚡ Why Thordata?\u003c/b\u003e\u003cbr\u003e\n      • 🌍 190+ real residential \u0026 ISP IP locations\u003cbr\u003e\n      • 🔐 Fully encrypted, ultra-secure connections\u003cbr\u003e\n      • 🚀 Optimized for web scraping, ad verification \u0026 automation workflows\u003cbr\u003e\n      🔥 Don't wait - this is your \u003cb\u003ebest time to start\u003c/b\u003e with \u003ca href=\"https://www.thordata.com/?ls=github\u0026lk=camoufox\"\u003eThordata\u003c/a\u003e and experience the safest, fastest proxy network.\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"25%\" align=\"center\" valign=\"middle\"\u003e\n      \u003ca href=\"https://proxyempire.io/?ref=camoufox\u0026utm_source=camoufox\" target=\"_blank\"\u003e\n        \u003cimg width=\"380\" alt=\"proxyempire\" src=\"https://github.com/user-attachments/assets/d1c5f849-5cb0-4aff-b48c-530bda2ee03f\"/\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd valign=\"middle\"\u003e\n      \u003cb\u003e🚀 Camoufox × ProxyEmpire\u003c/b\u003e\u003cbr\u003e\n      Running Camoufox? Your proxy layer decides whether you scale — or get blocked.\u003cbr\u003e\n      \u003ca href=\"https://proxyempire.io/?ref=camoufox\u0026utm_source=camoufox\"\u003eProxyEmpire\u003c/a\u003e delivers:\u003cbr\u003e\n      • 🌍 30M+ Residential IPs (170+ countries)\u003cbr\u003e\n      • 📱 4G/5G Mobile Proxies\u003cbr\u003e\n      • 🔄 Rotating \u0026 Sticky Sessions\u003cbr\u003e\n      • ⚡ Unlimited Concurrent Sessions\u003cbr\u003e\n      • 🎯 Precise geo-targeting\u003cbr\u003e\n      • HTTP, HTTPS \u0026 SOCKS5 Support\u003cbr\u003e\n      Built for scraping, automation, and high-stealth workflows.\u003cbr\u003e\n      \u003cb\u003e🔥 Exclusive Offer\u003c/b\u003e - Use code \u003cb\u003eCamoufox30\u003c/b\u003e\u003cbr\u003e\n      Get \u003cb\u003e30% recurring discount\u003c/b\u003e (not just first month). Upgrade your proxies. Reduce bans. Scale properly\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"25%\" align=\"center\" valign=\"middle\"\u003e\n      \u003ca href=\"https://birdproxies.com/t/camoufox\" target=\"_blank\"\u003e\n        \u003cimg width=\"380\" alt=\"birdproxies\" src=\"https://github.com/user-attachments/assets/e146836d-eb92-4b05-8bd9-120fd95dca10\"/\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd valign=\"middle\"\u003e\n      Hey, we built BirdProxies because proxies shouldn't be complicated or overpriced. Fast residential and ISP proxies in 195+ locations, fair pricing, and real support.\u003cbr\u003e\n      Try our FlappyBird game on the landing page for free data!\u003cbr\u003e\n      \u003ca href=\"https://birdproxies.com/t/camoufox\"\u003eTry Now\u003c/a\u003e | \u003ca href=\"https://discord.com/invite/birdproxies\"\u003eDiscord\u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"25%\" align=\"center\" valign=\"middle\"\u003e\n      \u003ca href=\"https://proxy-seller.com/?partner=1W5MMSYEXKKTUK\" target=\"_blank\"\u003e\n        \u003cimg width=\"380\" alt=\"birdproxies\" src=\"https://github.com/user-attachments/assets/d2771913-e2c1-453f-a258-4789139a841c\"/\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd valign=\"middle\"\u003e\n      \u003ca href=\"https://proxy-seller.com/?partner=1W5MMSYEXKKTUK\"\u003e\n        \u003ca href=\"https://proxy-seller.com/?partner=1W5MMSYEXKKTUK\"\u003eProxy-Seller\u003c/a\u003e - Premium Proxies for AI Agents, Scraping \u0026 Automation 🎁 Use code \u003cstrong\u003eCAMOUFOX for 15% OFF\u003c/strong\u003e IPv4, IPv6, ISP \u0026 Residential proxies + 10% OFF Mobile\u003cbr\u003e\n        \u003cstrong\u003eWhy Choose Proxy-Seller?\u003c/strong\u003e\u003cbr\u003e\n        • 🌍 40M+ IPs across 220+ countries with city/ISP-level targeting\u003cbr\u003e\n        • 📶 Residential, ISP, Datacenter (IPv4/IPv6) \u0026 4G/5G Mobile proxies\u003cbr\u003e\n        • ⚡ Up to 1 Gbps speed with 99% uptime\u003cbr\u003e\n        • 🔄 Flexible rotation — time-based, request-based, or sticky sessions\u003cbr\u003e\n        • 🛠️ Ready-made API for Python, Node.js, PHP, Java \u0026 Golang\u003cbr\u003e\n        • 🔒 SOCKS5 \u0026 HTTP(S) with login/pass or IP whitelisting\u003cbr\u003e\n        • 🎭 Perfect pairing with Camoufox for stealth automation\u003cbr\u003e\n        • 🕐 24/7 support + 24-hour refund \u0026 replacement policy\u003cbr\u003e\n        Trusted by 500,000+ clients since 2014. Built for scraping, AI agents, ad verification, and SEO automation.\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"25%\" align=\"center\" valign=\"middle\"\u003e\n      \u003ca href=\"https://www.rapidproxy.io/?ref=daijro\" target=\"_blank\"\u003e\n        \u003cimg width=\"380\" alt=\"rapidproxy\" src=\"https://github.com/user-attachments/assets/140337e0-50d5-452d-8a31-86c6b1761e47\"/\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd valign=\"middle\"\u003e\n      \u003ca href=\"https://www.rapidproxy.io/?ref=daijro\"\u003eRapidProxy\u003c/a\u003e - Power Your Data with Premium Proxies.\u003cbr\u003e\n      🎁 Try proxies for free  + Use code \u003cstrong\u003eRAPID10\u003c/strong\u003e for \u003cstrong\u003e10% OFF\u003c/strong\u003e\n      \u003cbr\u003e\n      \u003cstrong\u003eWhy Choose RapidProxy?\u003c/strong\u003e\u003cbr\u003e\n      • 🌍 90M+ IPs in 200+ countries \u0026 regions\u003cbr\u003e\n      • ♾️ No expiration on traffic — use anytime, no pressure\u003cbr\u003e\n      • 🔥 Unlimited concurrency for maximum performance\u003cbr\u003e\n      • 💰 Starting from just $0.65/GB — built for scale\u003cbr\u003e\n      • 📍 City-level targeting for precise geo access\u003cbr\u003e\n      • 🔄 Flexible session control tailored to your needs\u003cbr\u003e\n      Don’t miss out — start your free trial today and experience fast, stable, and scalable proxy performance with \u003ca href=\"https://www.rapidproxy.io/?ref=daijro\"\u003eRapidProxy\u003c/a\u003e.\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"25%\" align=\"center\" valign=\"middle\"\u003e\n      \u003ca href=\"https://www.swiftproxy.net/?ref=daijro\" target=\"_blank\"\u003e\n        \u003cimg width=\"380\" alt=\"swiftproxy\" src=\"https://github.com/user-attachments/assets/2f351c5e-f128-4478-83ff-46a261bea221\"/\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd valign=\"middle\"\u003e\n      \u003ca href=\"https://www.swiftproxy.net/?ref=daijro\"\u003eSwiftproxy\u003c/a\u003e - \u003cstrong\u003eHigh-Performance Residential Proxies for Scalable Data Collection\u003c/strong\u003e\u003cbr\u003e\n      Built for developers who need \u003cstrong\u003ereliable\u003c/strong\u003e, anti-detection proxy infrastructure. Swiftproxy delivers stable connections, high success rates, and flexible control for large-scale scraping and automation.\u003cbr\u003e\n      • 🌍 195+ locations with ethically sourced residential IPs\u003cbr\u003e\n      • 🔄 \u003cstrong\u003eRotating\u003c/strong\u003e \u0026 \u003cstrong\u003esticky\u003c/strong\u003e sessions with precise geo-targeting\u003cbr\u003e\n      • ⚡ Optimized for \u003cstrong\u003eanti-ban\u003c/strong\u003e \u0026 \u003cstrong\u003ehigh success rate\u003c/strong\u003e\u003cbr\u003e\n      • 🔌 HTTP / HTTPS / SOCKS5 support\u003cbr\u003e\n      • 🧪 \u003cstrong\u003eFree 500MB trial\u003c/strong\u003e for testing\u003cbr\u003e\n      • 💸 \u003cstrong\u003eSpecial discount\u003c/strong\u003e code for Camoufox users: \u003cstrong\u003ePROXY90 - 10%\u003c/strong\u003e\u003cbr\u003e\n      Best for: Web scraping, automation, multi-accounting, and large-scale data extraction\n    \u003c/td\u003e\n  \u003c/tr\u003e     \n  \u003ctr\u003e\n    \u003ctd width=\"25%\" align=\"center\" valign=\"middle\"\u003e\n      \u003ca href=\"https://mangoproxy.com/?utm_source=github\u0026utm_medium=partner\u0026utm_campaign=daijro\" target=\"_blank\"\u003e\n        \u003cimg width=\"380\" alt=\"mangoproxy\" src=\"https://github.com/user-attachments/assets/c2cd3ddf-c940-4906-be1b-5505dcdb6e06\"/\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd valign=\"middle\"\u003e\n      \u003ca href=\"https://mangoproxy.com/?utm_source=github\u0026utm_medium=partner\u0026utm_campaign=daijro\"\u003eMangoProxy\u003c/a\u003e is a Residential, ISP, Mobile and Datacenter proxy service designed for professional tasks where stability, speed, and anonymity matter.\u003cbr\u003e\n      Use code DAIJRO for 8% OFF ISP Static Proxies\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"25%\" align=\"center\" valign=\"middle\"\u003e\n      \u003ca href=\"https://9proxy.com/pricing?utm_source=github\u0026utm_medium=daijro\u0026utm_campaign=githubdev\u0026utm_content=sponsored\" target=\"_blank\"\u003e\n        \u003cimg width=\"380\" alt=\"mangoproxy\" src=\"https://github.com/user-attachments/assets/2b59c5d9-317a-488d-a723-134b7237d339\"/\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd valign=\"middle\"\u003e\n      \u003ca href=\"https://9proxy.com/pricing?utm_source=github\u0026utm_medium=daijro\u0026utm_campaign=githubdev\u0026utm_content=sponsored\"\u003e9Proxy\u003c/a\u003e provides residential proxies from just $0.018/IP or $0.68/GB. 20M+ IPs across 90+ countries. Sticky or rotating sessions, managed from desktop or mobile app.\u003cbr\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003c/details\u003e\n\n---\n\n# Introduction\n\nCamoufox is a Firefox fork engineered for web scraping and AI agents. It is headless, undetectable, and optimized to run at scale. Every run gets a fresh identity drawn from the real-world distribution of devices, so it blends into normal traffic instead of standing out.\n\n## Highlights\n\n* **Built for AI agents** 🤖\n  * Minimal, debloated Firefox - fast to launch, cheap to run\n  * Drop-in Playwright compatibility via Python interface\n  * Token-efficient: clean DOM output, no CSS animations, or tracking noise\n  * Invisible to anti-bot systems so you can run your agent cluster locally or in the cloud without being flagged\n\n- **Undetectable by design** 🎭\n  - Page automation hidden from JavaScript inspection. See the [stealth page](https://camoufox.com/stealth) for more details.\n\n* **Fingerprint injection \u0026 rotation (without JS injection!)**\n  * All navigator properties (device, OS, hardware, browser, etc.) ✅\n  * Screen size, resolution, window, \u0026 viewport properties ✅\n  * Geolocation, timezone, locale, \u0026 Intl spoofing ✅\n  * WebRTC IP spoofing at the protocol level ✅\n  * Voices, speech playback rate, etc. ✅\n  * And much, much more!\n\n- **Anti Graphical fingerprinting**\n  - WebGL parameters, supported extensions, context attributes, \u0026 shader precision formats ✅\n  - Font spoofing \u0026 anti-fingerprinting ✅\n\n* **Optimized for automation**\n  * Human-like mouse movement 🖱️\n  * Blocks \u0026 circumvents ads 🛡️\n  * No CSS animations 💨\n\n- Debloated \u0026 optimized for memory efficiency ⚡\n- [PyPi package](https://pypi.org/project/camoufox/) for updates \u0026 auto fingerprint injection 📦\n- Stays up to date with the latest Firefox version 🕓\n\n---\n\n## Fingerprint Injection\n\nIn Camoufox, data is intercepted at the C++ implementation level, making the changes undetectable through JavaScript inspection.\n\nTo spoof individual fingerprint properties, pass a JSON containing properties to spoof to the [Python interface](https://github.com/daijro/camoufox/tree/main/pythonlib#camoufox-python-interface):\n\n```py\n\u003e\u003e\u003e with Camoufox(config={\"property\": \"value\"}) as browser:\n```\n\nConfig data not set by the user will be automatically populated using [BrowserForge](https://github.com/daijro/browserforge) fingerprints, which mimic the statistical distribution of device characteristics in real-world traffic.\n\n[[See implemented properties](https://camoufox.com/fingerprint/)]\n\n---\n\n## Python Usage\n\nCamoufox is compatible with your existing Playwright code. You only have to change your browser initialization.\n\n**Sync API**\n\n```python\nfrom camoufox.sync_api import Camoufox\n\nwith Camoufox() as browser:\n    page = browser.new_page()\n    page.goto(\"https://example.com\")\n```\n\n**Async API**\n\n```python\nfrom camoufox.async_api import AsyncCamoufox\n\nasync with AsyncCamoufox() as browser:\n    page = await browser.new_page()\n    await page.goto(\"https://example.com\")\n```\n\n[[Installation \u0026 usage](https://camoufox.com/python/)]\n\n### Making Full use of Hardware Spoofing\n\nFor stable releases, you should always use the main [`camoufox`](https://pypi.org/project/camoufox/) pip package. However, if you want to make use of per-context fingerprints and hardware spoofing, use the [`cloverlabs-camoufox`](https://pypi.org/project/cloverlabs-camoufox/) package. This package is updated with each releases, whereas the official package is released on delay.\n\nMake sure you are using a virtual env to avoid conflicts between the two packages.\n\n**Installation**\n\n```bash\npip install cloverlabs-camoufox\n```\n\n**Fetch the latest prerelease browser** (recommended for newest patches)\n\n```bash\npython -m camoufox sync\npython -m camoufox set official/prerelease\npython -m camoufox fetch\n```\n\n**Usage** — the API is identical to the upstream package:\n\n```python\nfrom camoufox.sync_api import Camoufox\n\nwith Camoufox() as browser:\n    page = browser.new_page()\n    page.goto(\"https://example.com\")\n```\n\n#### Real fingerprint presets (recommended for v149+ binaries)\n\nBy default, fingerprint values are synthesized by BrowserForge. For better evasion against complex consistency checks, opt into the bundled presets — real fingerprints scraped from in-the-wild Firefox traffic:\n\n```python\nwith Camoufox(fingerprint_preset=True, os=\"macos\") as browser:\n    ...\n```\n\nThe library auto-routes by binary version: Firefox ≥ 149 loads `fingerprint-presets-v150.json` (312 presets covering v149–v152, 67 macOS / 180 Windows / 65 Linux); older binaries fall back to the original bundle. UA strings are rewritten to match the active binary, so opting in is safe across versions. Pass a preset dict instead of `True` to pin a specific fingerprint.\n\n---\n\n## Capabilities\n\nBelow is a list of patches and features implemented in Camoufox.\n\n### Fingerprint spoofing\n\n- Navigator properties spoofing (device, browser, locale, etc.)\n- Support for emulating screen size, resolution, etc.\n- Spoof WebGL parameters, supported extensions, context attributes, and shader precision formats.\n- Spoof inner and outer window viewport sizes\n- Spoof AudioContext sample rate, output latency, and max channel count\n- Spoof device voices \u0026 playback rates\n- Spoof the amount of microphones, webcams, and speakers available.\n- Network headers (Accept-Languages and User-Agent) are spoofed to match the navigator properties\n- WebRTC IP spoofing at the protocol level\n- Geolocation, timezone, and locale spoofing\n- Battery API spoofing\n- etc.\n\n### Stealth patches\n\n- Avoids main world execution leaks. All page agent javascript is sandboxed\n- Avoids frame execution context leaks\n- Fixes `navigator.webdriver` detection\n- Fixes Firefox headless detection via pointer type ([#26](https://github.com/daijro/camoufox/issues/26))\n- Removed potentially leaking anti-zoom/meta viewport handling patches\n- Uses non-default screen \u0026 window sizes\n- Re-enable fission content isolations\n- Re-enable PDF.js\n- Other leaking config properties changed\n- Human-like cursor movement\n\n### Anti font fingerprinting\n\n- Automatically uses the correct system fonts for your User Agent\n- Bundled with Windows, Mac, and Linux system fonts\n- Prevents font metrics fingerprinting by randomly offsetting letter spacing\n\n### Playwright support\n\n- Custom implementation of Playwright for the latest Firefox\n- Various config patches to evade bot detection\n\n### Debloat/Optimizations\n\n- Stripped out/disabled _many, many_ Mozilla services. Runs faster than the original Mozilla Firefox, and uses less memory (200mb)\n- Patches from LibreWolf \u0026 Ghostery to help remove telemetry \u0026 bloat\n- Debloat config from PeskyFox, LibreWolf, and others\n- Speed \u0026 network optimizations from FastFox\n- Removed all CSS animations\n- Minimalistic theming\n- etc.\n\n### Addons\n\n- Load Firefox addons without a debug server by passing a list of paths to the `addons` property\n- Added uBlock Origin with custom privacy filters\n- Addons are not allowed to open tabs\n- Addons are automatically enabled in Private Browsing mode\n- Addons are automatically pinned to the toolbar\n- Fixes DNS leaks with uBO prefetching\n\n### Python Interface\n\n- Automatically generates \u0026 injects unique device characteristics into Camoufox based on their real-world distribution\n- WebGL fingerprint injection \u0026 rotation\n- Uses the correct system fonts and subpixel antialiasing \u0026 hinting based on your target OS\n- Avoid proxy detection by calculating your target geolocation, timezone, \u0026 locale from your proxy's target region\n- Calculate and spoof the browser's language based on the distribution of language speakers in the proxy's target region\n- Remote server hosting to use Camoufox with other languages that support Playwright\n- Built-in virtual display buffer to run Camoufox headfully on a headless server\n- Toggle image loading, WebRTC, and WebGL\n- etc.\n\n\u003e [!NOTE]\n\u003e Camoufox does **not** fully support injecting Chromium fingerprints. Some WAFs (such as [Interstitial](https://nopecha.com/demo/cloudflare)) test for Spidermonkey engine behavior, which is impossible to spoof.\n\n---\n\n# Stealth Overview\n\n## How Camoufox hides its automation library\n\n\u003e [!WARNING]\n\u003e **Current status as of 2026**:\n\u003e There has been a year gap in maintenance due to a personal situation. Camoufox has gone down in performance due to the base Firefox version and newly discovered fingerprint inconsistencies. **Camoufox is currently under active development.**\n\nIn Camoufox, all of Playwright's internal Page Agent's code is sandboxed and isolated. This makes it impossible for a page to detect the presence of Playwright through Javascript inspection.\n\nNormally, Playwright injects some JavaScript into the page such as `window.__playwright__binding__` and to perform actions like querying elements, evaluating javascript, or running init scripts, which can be detected by websites. In Camoufox, these actions are handled in an isolated scope outside of the page. In other words, websites can no longer \"see\" any JavaScript that Playwright would typically inject. This prevents traces of Playwright altogether.\n\nHowever, even with hiding its automation library, Camoufox is not immune to inconsistencies in fingerprint rotation. This still requires maintenance to spot and fix.\n\n### Page Interactions\n\nAnti-bot systems also run client-side scripts to monitor your behavior. For example, they look for patterns in mouse movements, clicks, scrolling, and the timing between actions.\n\n\u003cvideo src=\"https://github.com/user-attachments/assets/6d33d6af-3537-4603-bf24-6bd3f4f8f455\" width=\"200px\" autoplay loop muted\u003e\u003c/video\u003e\n\nCamoufox tries its best with its human-like mouse movement algorithm. The natural motion algorithm was originally from [riflosnake's HumanCursor](https://github.com/riflosnake/HumanCursor) and has been rewritten in C++ and modified for more distance-aware trajectories.\n\nHowever, this isn't perfect. It may still be detected with sophisticated enough analysis. (WIP for the future)\n\n---\n\n## How Camoufox rotates identities\n\nAI agents need to operate across many sessions without getting flagged or rate-limited. Rotating your IP address isn't enough — every browser session carries thousands of signals that create a unique **fingerprint**. A website can see your OS, GPU, screen resolution, fonts, timezone, and more. If those signals are inconsistent or unusual, you get blocked.\n\n### Market Share Distribution\n\nEven if you are rotating your IP for each running bot instance, web access firewalls can still use machine learning to analyze incoming web traffic to detect if it's abnormal. If the Linux market share was 5%, then suddenly it's 20%, it's a red flag. They will unconditionally require all Linux users to complete a captcha.\n\nCamoufox uses [BrowserForge](https://github.com/daijro/browserforge)'s fingerprint generator to mimic the statistical distribution of device data in real-world traffic. For example, Camoufox will make your browser look like a Linux user 5% of the time. Of that 5%, it will spoof a 2560x1440 screen resolution 9.5% of the time and an Intel HD GPU 27.5% of the time.\n\n### How can Camoufox be detected?\n\nCamoufox can spoof fingerprints with a correct market share. However, **fingerprints must also be internally consistent.** A Windows user agent with an Apple M1 GPU, a MacOS user agent with a Windows DirectX renderer, and a mobile device with a desktop screen resolution are all impossible, and will be flagged for being suspicious.\n\nOf the thousands of possible datapoints that must be changed to create a believable spoofed fingerprint, where each change must be consistent with the others, Camoufox doesn't always succeed. Anti-bot providers test Camoufox over and over again to find even 1 unique inconsistency, then they immediately update their background scripts to test for it.\n\n---\n\n## How does Camoufox compare to other solutions?\n\n### JavaScript-based solutions\n\nIn the past, developers tried injecting JavaScript to spoof these values, but it doesn't work reliably since JavaScript can't spoof everything. Incomplete coverage causes inconsistent fingerprints. For example, an anti-bot system will flag you if your network request's User Agent doesn't match your navigator's User Agent.\n\nAdditionally, all injected JavaScript is detectable in some way. Anti-bot systems can check if `Object.getOwnPropertyDescriptor` reveals an overwritten property, if a function's `toString()` no longer returns `[native code]` (revealing it was hijacked), or if data in the window context doesn't match the worker thread context. Workarounds only take you so far, but there will always be a way to detect JS injection if you search deep enough.\n\n#### Camoufox's approach\n\nSince Camoufox intercepts calls in the browser's C++ implementation level, all of the hijacked objects and properties appear native. There is no JavaScript hijacking to be detected.\n\nCamoufox also attempts to generate consistent and believable fingerprints with Browserforge as well. However, this can still be detected by complex fingerprint detection methods like mismatching data (as described earlier).\n\n\u003chr width=50\u003e\n\n### CDP-based libraries\n\nCDP (Chrome DevTools Protocol) is an automation protocol built into Chromium and Firefox. However, CDP makes no effort to hide the fact that it's an automation protocol and exposes much of its functionality in the page scope. Some common methods are checking if `navigator.webdriver` is true, catching it reading the stack debugger, checking for variables that ChromeDriver injects into the document object for internal communication, and more.\n\n#### Camoufox's approach\n\nWhile Playwright uses CDP to control Chromium, it uses _Juggler_ for Firefox. Juggler is a custom protocol developed before Firefox supported CDP ([original repo](https://github.com/puppeteer/juggler)). It is a distinct module within Firefox, and not part of its core browser. This makes it easier to edit and control what's revealed to the page.\n\nCamoufox patches Juggler to give it its own isolated \"copy\" of the page to work with. Playwright can read and edit its own version of the page freely. Everything appears to work normally to it, but the real page is completely unaffected by these changes. The page also can't detect when things are being read (through tricks like hijacking getters) or listeners being added to watch elements.\n\nAdditionally, Juggler sends its inputs directly through the Firefox's original user input handlers, meaning they are handled the exact same way as if you were using the browser normally. Camoufox also patches Firefox's headless mode to appear the same as if it were running in a normal window. But as a fallback, the Python library can run Camoufox in a [virtual display](https://camoufox.com/python/virtual-display/) if headless mode ever leaks.\n\n---\n\n\u003ch1 align=\"center\"\u003eBuild System\u003c/h1\u003e\n\n\u003e [!WARNING]\n\u003e The content below is intended for those interested in building \u0026 debugging Camoufox. For Playwright usage instructions, see [here](https://github.com/daijro/camoufox/tree/main/pythonlib#camoufox-python-interface).\n\n### Overview\n\nHere is a diagram of the build system, and its associated make commands:\n\n```mermaid\ngraph TD\n    FFSRC[Firefox Source] --\u003e|make fetch| REPO\n\n    subgraph REPO[Camoufox Repository]\n        PATCHES[Fingerprint masking patches]\n        ADDONS[uBlock \u0026 B.P.C.]\n        DEBLOAT[Debloat/optimizations]\n        SYSTEM_FONTS[Win, Mac, Linux fonts]\n        JUGGLER[Patched Juggler]\n    end\n\n    subgraph Local\n    REPO --\u003e|make dir| PATCH[Patched Source]\n    PATCH --\u003e|make build| BUILD[Built]\n    BUILD --\u003e|make package-linux| LINUX[Linux Portable]\n    BUILD --\u003e|make package-windows| WIN[Windows Portable]\n    BUILD --\u003e|make package-macos| MAC[macOS Portable]\n    end\n```\n\nThis was originally based on the LibreWolf build system.\n\n## Build CLI\n\n\u003e [!WARNING]\n\u003e Camoufox's build system is designed to be used in Linux. WSL will not work!\n\nFirst, clone this repository with Git:\n\n```bash\ngit clone --depth 1 https://github.com/daijro/camoufox\ncd camoufox\n```\n\nNext, build the Camoufox source code with the following command:\n\n```bash\nmake dir\n```\n\nAfter that, you have to bootstrap your system to be able to build Camoufox. You only have to do this one time. It is done by running the following command:\n\n```bash\nmake bootstrap\n```\n\nFinally you can build and package Camoufox the following command:\n\n```bash\npython3 multibuild.py --target linux windows macos --arch x86_64 arm64 i686\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\nCLI Parameters\n\u003c/summary\u003e\n\n```bash\nOptions:\n  -h, --help            show this help message and exit\n  --target {linux,windows,macos} [{linux,windows,macos} ...]\n                        Target platforms to build\n  --arch {x86_64,arm64,i686} [{x86_64,arm64,i686} ...]\n                        Target architectures to build for each platform\n  --bootstrap           Bootstrap the build system\n  --clean               Clean the build directory before starting\n\nExample:\n$ python3 multibuild.py --target linux windows macos --arch x86_64 arm64\n```\n\n\u003c/details\u003e\n\n### Using Docker\n\nCamoufox can be built through Docker on all platforms.\n\n1. Create the Docker image containing Firefox's source code:\n\n```bash\ndocker build -t camoufox-builder .\n```\n\n2. Build Camoufox patches to a target platform and architecture:\n\n```bash\ndocker run -v \"$(pwd)/dist:/app/dist\" camoufox-builder --target \u003cos\u003e --arch \u003carch\u003e\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\nHow can I use my local ~/.mozbuild directory?\n\u003c/summary\u003e\n\nIf you want to use the host's .mozbuild directory, you can use the following command instead to run the docker:\n\n```bash\ndocker run \\\n  -v \"$HOME/.mozbuild\":/root/.mozbuild:rw,z \\\n  -v \"$(pwd)/dist:/app/dist\" \\\n  camoufox-builder \\\n  --target \u003cos\u003e \\\n  --arch \u003carch\u003e\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\nDocker CLI Parameters\n\u003c/summary\u003e\n\n```bash\nOptions:\n  -h, --help            show this help message and exit\n  --target {linux,windows,macos} [{linux,windows,macos} ...]\n                        Target platforms to build\n  --arch {x86_64,arm64,i686} [{x86_64,arm64,i686} ...]\n                        Target architectures to build for each platform\n  --bootstrap           Bootstrap the build system\n  --clean               Clean the build directory before starting\n\nExample:\n$ docker run -v \"$(pwd)/dist:/app/dist\" camoufox-builder --target windows macos linux --arch x86_64 arm64 i686\n```\n\n\u003c/details\u003e\n\nBuild artifacts will now appear written under the `dist/` folder.\n\n---\n\n## Development Tools\n\nThis repo comes with a developer UI under scripts/developer.py:\n\n```\nmake edits\n```\n\nPatches can be edited, created, removed, and managed through here.\n\n\u003cimg src=\"https://i.imgur.com/BYAN5J0.png\"\u003e\n\n### How to make a patch\n\n1. In the developer UI, click **Reset workspace**.\n2. Make changes in the `camoufox-*/` folder as needed. You can test your changes with `make build` and `make run`.\n3. After you're done making changes, click **Write workspace to patch** and save the patch file.\n\n### How to work on an existing patch\n\n1. In the developer UI, click **Edit a patch**.\n2. Select the patch you'd like to edit. Your workspace will be reset to the state of the selected patch.\n3. After you're done making changes, hit **Write workspace to patch** and overwrite the existing patch file.\n\n---\n\n## Leak Debugging\n\nThis is a flow chart demonstrating my process for determining leaks without deobfuscating WAF Javascript. The method incrementally reintroduces Camoufox's features into Firefox's source code until the testing site flags.\n\nThis process requires a Linux system and assumes you have Firefox build tools installed (see [here](https://github.com/daijro/camoufox?tab=readme-ov-file#build-cli)).\n\n\u003cdetails\u003e\n\u003csummary\u003e\nSee flow chart...\n\u003c/summary\u003e\n\n```mermaid\nflowchart TD\n    A[Start] --\u003e B[Does website flag in the official Firefox?]\n    B --\u003e|Yes| C[Likely bad IP/rate-limiting. If the website fails on both headless and headful mode on the official Firefox distribution, the issue is not with the browser.]\n    B --\u003e|No| D[\"Run make ff-dbg(1) and build(2) a clean distribution of Firefox. Does the website flag in Firefox **headless** mode(4)?\"]\n    D --\u003e|Yes| E[\"Does the website flag in headful mode(3) AND headless mode(4)?\"]\n    D --\u003e|No| F[\"Open the developer UI(5), apply config.patch, then rebuild(2). Does the website still flag(3)?\"]\n    E --\u003e|No| G[\"Enable privacy.resistFingerprinting in the config(6). Does the website still flag(3)?\"]\n    E --\u003e|Yes| C\n    G --\u003e|No| H[\"In the config(6), enable FPP and start omitting overrides until you find the one that fixed the leak.\"]\n    G --\u003e|Yes| I[If you get to this point, you may need to deobfuscate the Javascript behind the website to identify what it's testing.]\n    F --\u003e|Yes| K[\"Open the developer UI, apply the playwright bootstrap patch, then rebuild. Does it still flag?\"]\n    F --\u003e|No| J[\"Omit options from camoufox.cfg(6) and rerun(3) until you find the one causing the leak.\"]\n    K --\u003e|No| M[Juggler needs to be debugged to locate the leak.]\n    K --\u003e|Yes| L[The issue has nothing to do with Playwright. Apply the rest of the Camoufox patches one by one until the one causing the leak is found.]\n    M --\u003e I\n```\n\n#### Cited Commands\n\n| #   | Command                                       | Description                                                                                                 |\n| --- | --------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |\n| (1) | `make ff-dbg`                                 | Setup vanilla Firefox with minimal patches.                                                                 |\n| (2) | `make build`                                  | Build the source code.                                                                                      |\n| (3) | `make run`                                    | Runs the built browser.                                                                                     |\n| (4) | `make run args=\"--headless https://test.com\"` | Run a URL in headless mode. All redirects will be printed to the console to determine if the test passed.   |\n| (5) | `make edits`                                  | Opens the developer UI. Allows the user to apply/undo patches, and see which patches are currently applied. |\n| (6) | `make edit-cfg`                               | Edit camoufox.cfg in the default system editor.                                                             |\n\n\u003c/details\u003e\n\n---\n\n## Thanks\n\nDebloating \u0026 references:\n\n- [LibreWolf](https://gitlab.com/librewolf-community/browser/source): Debloat patches \u0026 build system inspiration\n- [BetterFox](https://github.com/yokoffing/BetterFox): Speed and debloat preferences\n- [Ghostery](https://github.com/ghostery/user-agent-desktop): Debloat reference ([disable onboarding](https://github.com/daijro/camoufox/blob/main/patches/ghostery/Disable-Onboarding-Messages.patch))\n\nWeb scraping \u0026 testing:\n\n- [riflosnake/HumanCursor](https://github.com/riflosnake/HumanCursor): Original human-like cursor movement algorithm, ported to C++\n- [CreepJS](https://github.com/abrahamjuliot/creepjs), [Browserleaks](https://browserleaks.com), [BrowserScan](https://www.browserscan.net/) - Valuable leak testing sites\n\nUI theming:\n\n- [Jamir-boop/minimalisticfox](https://github.com/Jamir-boop/minimalisticfox): Inspired Camoufox's minimal css theming [(link)](https://github.com/daijro/camoufox/blob/main/settings/chrome.css)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsanthsecurity%2Freynard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsanthsecurity%2Freynard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsanthsecurity%2Freynard/lists"}