{"repo":"h4ckf0r0day/obscura","free":true,"listed":false,"github":"https://github.com/h4ckf0r0day/obscura","clone":"git clone https://github.com/h4ckf0r0day/obscura.git","description":"The headless browser for AI agents and web scraping","language":"Rust","stars":21457,"topics":["antidetect","antidetect-browser","browser","browser-automation","cdp","headless","playwright","puppeteer","rust"],"license":"Apache-2.0","category":"browser_automation","readme_excerpt":"<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/h4ckf0r0day/obscura/main/assets/icon.png\" alt=\"Obscura\" width=\"80\" />\n</p>\n<h2 align=\"center\">Obscura</h2>\n<p align=\"center\">\n  <a href=\"https://trendshift.io/repositories/25837?utm_source=trendshift-badge&amp;utm_medium=badge&amp;utm_campaign=badge-trendshift-25837\" target=\"_blank\" rel=\"noopener noreferrer\"><img src=\"https://trendshift.io/api/badge/trendshift/repositories/25837/daily\" alt=\"h4ckf0r0day%2Fobscura | Trendshift\" width=\"250\" height=\"55\"/></a>\n</p>\n<p align=\"center\">\n  <a href=\"https://docs.obscura.sh\"><img src=\"https://img.shields.io/badge/Docs-1a1a1a?style=for-the-badge&logo=gitbook&logoColor=white\" alt=\"Documentation\" /></a>\n  <a href=\"https://obscura.sh\"><img src=\"https://img.shields.io/badge/Website-1a1a1a?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjE5MCAxNzAgNDIwIDQyMCI+PHBhdGggZmlsbD0iI0ZGRkZGRiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNDA2LDE3NS4wMDA0MTIgQzQ0MC40OTg5MzIsMTc1LjAwMDM1MSA0NzQuNDk4MTA4LDE3NS4wODA5OTQgNTA4LjQ5NjczNSwxNzQuOTc1NjYyIEM1MzcuNzMzNjQzLDE3NC44ODUwODYgNTYxLjI3MDY5MSwxODcuMjIwNTUxIDU3OS45Mzk2MzYsMjA4Ljc4NjYyMSBDNTkwLjg0MTA2NCwyMjEuMzc5Nzc2IDU5Ny44ODM1NDUsMjM2LjM1MjY2MSA1OTkuOTgxODczLDI1My4yMjAzNjcgQzYwMC40NDU1NTcsMjU2Ljk0NzU0MCA2MDAuOTUxMTExLDI2MC43MDQ0MzcgNjAwLjk1NjYwNCwyNjQuNDQ4MzY0IEM2MDEuMDIyNjQ0LDMwOS42MTM1MjUgNjAxLjA3NTgwNiwzNTQuNzc5MDIyIDYwMC45NTE3ODIsMzk5Ljk0MzkzOSBDNjAwLjkxMzE0Nyw0MTQuMDMyMzQ5IDYwMC42NjMyNjksNDI4LjE0MDEwNiA1OTkuNzgyMjg4LDQ0Mi4xOTMzNTkgQzU5OS41NDEwMTYsNDQ2LjA0MDg5NCA1OTcuNTYwNzkxLDQ1MC42MTU2MDEgNTk0Ljg1MzIxMCw0NTMuMzQxMzA5IEM1NzEuMTc3NTUxLDQ3Ny4xNzUzMjMgNTQ3LjE4MDcyNSw1MDAuNjkwNzk2IDUyMy4yMjc5NjYsNTI0LjI0ODc3OSBDNTA2Ljc5OTgzNSw1NDAuNDA2MTI4IDQ5MC4yMDk5OTEsNTU2LjM5OTkwMiA0NzMuODY0NTYzLDU3Mi42NDAxMzcgQzQ2OC44MDA4NDIsNTc3LjY3MTIwNCA0NjMuMDgyODg2LDU4MC4wNTQxOTkgNDU1Ljk3MDYxMiw1ODAuMDQzODIzIEM0MDAuOTcyNDQzLDU3OS45NjM1MDEgMzQ1Ljk3MzY2Myw1ODAuMTMyMDE5IDI5MC45NzYwNDQsNTc5LjkzNjc2OCBDMjY3LjU4MDQxNCw1NzkuODUzNjk5IDI0Ni41NTEyMDgsNTcyLjA0MzU3OSAyMjguOTM5NzQzLDU1Ni44Mjc1MTUgQzIxMi44NDk2MjUsNTQyLjkyNTg0MiAyMDIuNzUxOTY4LDUyNC45MDIxMDAgMTk4LjE1NjE1OCw1MDQuMDM5NjczIEMxOTcuMjgyMTk2LDUwMC4wNzIyOTYgMTk3LjA1MjQxNCw0OTUuODk1Mzg2IDE5Ny4wNDczMzMsNDkxLjgxNDQ4NCBDMTk2Ljk3ODE0OSw0MzYuMTQ5NjU4IDE5Ny4wNTA3MjAsMzgwLjQ4NDYxOSAxOTYuOTMyNjE3LDMyNC44MTk5NDYgQzE5Ni45MTkxNDQsMzE4LjQ3MDkxNyAxOTkuMTg0ODQ1LDMxMy40MTYxOTkgMjAzLjQ5NTU3NSwzMDkuMTAwNTI1IEMyNDAuNTg3OTk3LDI3MS45NjU0MjQgMjc3LjY4MjQ5NSwyMzQuODMyMzA2IDMxNC44MzQ1NjQsMTk3Ljc1Njk1OCBDMzIwLjk1NjQyMSwxOTEuNjQ3Nzk3IDMyNy4yNjQ0MzUsMTg1LjcxNTI1NiAzMzMuNjczOTIwLDE3OS45MDgwODEgQzMzNy4zNzYwMzgsMTc2LjU1MzgzMyAzNDEuNzIxNDY2LDE3NC44NTMzMTcgMzQ3LjAwNTc5OCwxNzQuOTEyODcyIEMzNjYuNTAxNzA5LDE3NS4xMzI2MTQgMzg2LjAwMTYxNywxNzUuMDAwMzIwIDQwNiwxNzUuMDAwNDEyIFogTTUwMy4zNDQ2NjYsMjczLjg0MDE0OSBDNTA0LjEwMjcyMiwyNzYuMTY3NTcyIDUwNC45NDA5NDgsMjc4LjIxMTA5MCA1MDQuOTQzMjY4LDI4MC4yNTU1MjQgQzUwNS4wMTI4NDgsMzQxLjc0MjI0OSA1MDQuOTY5MTQ3LDQwMy4yMjkwNjUgNTA1LjAzMDc5Miw0NjQuNzE1NzkwIEM1MDUuMDQwODAyLDQ3NC42ODY0OTMgNDk2LjExNzQ2Miw0ODMuOTUzMTg2IDQ4NS43Nzc5MjQsNDgzLjk2NTI3MSBDNDI0LjYyNDQ1MSw0ODQuMDM2ODk2IDM2My40NzA5MTcsNDg0LjAwMzIzNSAzMDIuMzE3MzgzLDQ4My45OTY3MzUgQzI5NS41ODc3NjksNDgzLjk5NjAzMyAyOTMuMDAxMjUxLDQ4MS4zMDE2MDUgMjkzLjAwMDkxNiw0NzQuMzM4NTYyIEMyOTIuOTk3ODY0LDQxMy4zNTE2NTQgMjkzLjIwOTYyNSwzNTIuMzYzMzEyIDI5Mi43ODA3MDEsMjkxLjM3OTM5NSBDMjkyLjcxMzUzMSwyODEuODI4MDk0IDMwMy4yMTMwNDMsMjcwLjgyNDE1OCAzMTMuNDc4MjcxLDI3MC44OTQzMTggQzM1MS45NjgyMDEsMjcxLjE1NzQ0MCAzOTAuNDYwOTk5LDI3MC45OTk3ODYgNDI4Ljk1MjcyOCwyNzAuOTk5Nzg2IEM0NTEuMTE0NjI0LDI3MC45OTk3ODYgNDczLjI3NzI4MywyNzAuOTE3NDgwIDQ5NS40Mzc0NjksMjcxLjExMjE1MiBDNDk3Ljk3NzAyMCwyNzEuMTM0NDkxIDUwMC41MDI5MzAsMjcyLjcwNDM3NiA1MDMuMzQ0NjY2LDI3My44NDAxNDkgWiI+PC9wYXRoPjwvc3ZnPgo=&logoColor=white\" alt=\"Website\" /></a>\n  <a href=\"https://x.com/obscura_sh\" target=\"_blank\" rel=\"noopener noreferrer\"><img src=\"https://img.shields.io/badge/TWITTER%20%2F%20X-1a1a1a?style=for-the-badge&logo=x&logoColor=white\" alt=\"Obscura on Twitter/X\" /></a>\n  <a href=\"https://cal.com/obscura/quick-chat\"><img src=\"https://img.shields.io/badge/Book_a_Demo-1a1a1a?style=for-the-badge&logo=googlecalendar&logoColor=white\" alt=\"Book a demo\" /></a>\n  <a href=\"https://github.com/h4ckf0r0day/obscura/releases\"><img src=\"https://img.shields.io/badge/Releases-1a1a1a?style=for-the-badge&logo=github&logoColor=white\" alt=\"Releases\" /></a>\n</p>\n<p align=\"center\">\n  <strong>The open-source headless browser for AI agents and web scraping.</strong><br>\n  Lightweight, stealthy, and built in Rust.\n</p>\n<h3 align=\"center\">Native rendering is here. No Chromium required. 🎉 </h3>\n<p align=\"center\">\n  Capture screenshots, screencast live pages, and export PDFs directly with Obscura.\n</p>\n\n---\n\nObscura is a headless browser engine written in Rust, built for web scraping and AI agent automation. It runs real JavaScript via V8, supports the Chrome DevTools Protocol, and acts as a drop-in replacement for headless Chrome with Puppeteer and Playwright.\n\n### Why Obscura over headless Chrome?\n\n| Metric       | Obscura      | Headless Chrome |\n|--------------|--------------|------------------|\n| Memory       | **30 MB**    | 200+ MB          |\n| Binary size  | **70 MB**    | 300+ MB          |\n| Anti-detect  | **Built-in** | None          |\n| Page load    | **85 ms**    | ~500 ms          |\n| Startup      | **Instant**  | ~2s              |\n| Puppeteer    | **Yes**      | Yes              |\n| Playwright   | **Yes**      | Yes              |\n\n## 🎉 10,000 stars and what's next\n\nWe are working on **Obscura Cloud** the hosted version, with managed infrastructure, residential proxies, and dedicated support. For people who want the engine without operating it themselves.\n\nThe open-source engine stays Apache-2.0, fully featured. No feature gating, ever.\n\n**[Get on the waitlist →](https://tally.so/r/gDWzdD)**\n<br>\n**[📅 Book a demo →](https://cal.com/obscura/quick-chat)**\n\n## Sponsors\n\n**Obscura** is supported by organizations helping us build independent open-source browser infrastructure.\n\nWant to sponsor? Email [hello@obscura.sh](mailto:hello@obscura.sh).\n\n<table>\n   <tr>\n    <td width=\"200\" align=\"center\" valign=\"middle\">\n      <a href=\"https://go.nodemaven.com/obscura\" target=\"_blank\">\n        <img alt=\"NodeMaven\" src=\"assets/sponsors/nodemaven.svg\" width=\"180\"/>\n      </a>\n    </td>\n    <td valign=\"middle\">\n      <a href=\"https://go.nodemaven.com/obscuraread\"><b>NodeMaven</b></a> — the most reliable proxy provider with the highest quality IPs on the market. Built for automation, web scraping, SEO research, and social media management.<br><br>\n      <b>99.9% uptime<br>\n      Sticky sessions up to 7 days<br>\n      IP filtering on every proxy<br>\n      No KYC required<br>\n      Cashback on traffic — earn up to 10% back<br><br></b>\n      🎁 Use code <b>OBSCURA35</b> for 35% off Mobile & Residential, or <b>OBSCURA40</b> for 40% off ISP (Static) proxies.\n    </td>\n  </tr>\n  <tr>\n    <td width=\"200\" align=\"center\" valign=\"middle\">\n      <a href=\"https://proxyempire.io/?ref=obscura&utm_source=obscuragithub\" target=\"_blank\">\n        <img alt=\"ProxyEmpire\" src=\"assets/sponsors/proxyempire.png\" width=\"180\"/>\n      </a>\n    </td>\n    <td valign=\"middle\">\n      🚀 <b>Obscura × ProxyEmpire</b><br>\n      Using Obscura for AI agents, browser automation, or web scraping? Power it with reliable residential and mobile proxies from <a href=\"https://proxyempire.io/?ref=obscura&utm_source=obscuragithub\"><b>ProxyEmpire</b></a>.<br><br>\n      <b>🌍 30M+ residential IPs in 170+ countries<br>\n      📱 4G/5G mobile proxies<br>\n      🔄 Rotating & sticky sessions<br>\n      🎯 City, region & ISP targeting<br>\n      🔐 HTTP, HTTPS & SOCKS5 support<br><br>\n      🎁 Use code <b>OBSCURA35</b> for a <b>35% recurring discount</b>.<br><br></b>\n      Better proxies. Fewer blocks. More scalable automation.\n    </td>\n  </tr>\n      <td width=\"200\" align=\"center\" valign=\"middle\">\n        <a href=\"https://9proxy.com/?utm_source=Github&utm_campaign=obscura\" target=\"_blank\">\n          <img alt=\"9Proxy\" src=\"assets/sponsors/9proxy.png\" width=\"180\"/>\n        </a>\n      </td>\n      <td valign=\"middle\">\n        <a href=\"https://9proxy.com/?utm_source=Github&utm_campaign=obscura\"><b>9Proxy</b></a> provides residential proxies from\n  just $0.018/IP or $0.68/GB. 20M+ IPs across 90+ countries. Sticky or rotating sessions, managed from desktop or mobile app.\n      </td>\n    </tr>\n    <td width=\"200\" align=\"center\" valign=\"middle\">\n      <a href=\"https://www.thordata.com/?ls=dob&lk=dob\" target=\"_blank\">\n        <img alt=\"Thordata\" src=\"/assets/sponsors/thordatalogo.png\" width=\"180\"/>\n      </a>\n    </td>\n    <td valign=\"middle\">\n      🚀 <b>Obscura × Thordata</b><br>\n      Need more stable proxies for automation, public web scraping, SEO, or ad verification? Power your workflow with <a href=\"https://www.thordata.com/?ls=dob&lk=dob\"><b>Thordata</b></a>.<br><br>\n      <b>🌍 Residential Proxies: 100M+ real residential IPs in 190+ countries<br>\n      ♾️ Unlimited Proxies: for heavy traffic and high concurrency<br>\n      ✨ Recently upgraded residential IP pool<br>\n      ✨ Unlimited Concurrent Sessions<br>\n      🔁 Rotating & Sticky Sessions<br>\n      📍 Flexible GEO targeting<br>\n      ⚡ Stable HTTP(S) connections<br><br>\n      🎁 Use code <b>obscura</b> for <b>10% off</b>.<br><br></b>\n      Get started with a 3-day free trial and test Thordata with your own workflow.\n    </td>\n  </tr>\n</table>\n\n## Install\n\n### Download\n\nGrab the latest binary from [Releases](https://github.com/h4ckf0r0day/obscura/releases):\n\n```bash\n# Linux x86_64\ncurl -LO https://github.com/h4ckf0r0day/obscura/releases/latest/download/obscura-x86_64-linux.tar.gz\ntar xzf obscura-x86_64-linux.tar.gz\n./obscura fetch https://example.com --eval \"document.title\"\n\n# Linux ARM64 (aarch64)\ncurl -LO https://github.com/h4ckf0r0day/obscura/releases/latest/download/obscura-aarch64-linux.tar.gz\ntar xzf obscura-aarch64-linux.tar.gz\n\n# Arch Linux (AUR)\nyay -S obscura-browser\n\n# NixOS\nnix-env","default_branch":"main","files":358,"tree":[".cargo/config.toml",".gitattributes",".gitbook.yaml",".github/CODEOWNERS",".github/ISSUE_TEMPLATE/bug_report.yml",".github/ISSUE_TEMPLATE/config.yml",".github/ISSUE_TEMPLATE/feature_request.yml",".github/pull_request_template.md",".github/workflows/ci.yml",".github/workflows/docker.yml",".github/workflows/release.yml",".gitignore","AGENTS.md","CONTRIBUTING.md","Cargo.lock","Cargo.toml","Dockerfile","LICENSE","README.md","SECURITY.md","assets/banner.png","assets/icon.png","assets/sponsors/9proxy.gif","assets/sponsors/9proxy.png","assets/sponsors/mangoproxy.png","assets/sponsors/nodemaven.svg","assets/sponsors/proxyempire.png","assets/sponsors/rapidproxy.png","assets/sponsors/swiftproxy.png","assets/sponsors/swiftproxy2.png","assets/sponsors/sxproxy.png","assets/sponsors/thordatalogo.png","build.log","crates/obscura-browser/Cargo.toml","crates/obscura-browser/src/context.rs","crates/obscura-browser/src/lib.rs","crates/obscura-browser/src/lifecycle.rs","crates/obscura-browser/src/page.rs","crates/obscura-browser/src/pdf.rs","crates/obscura-browser/src/profiles.rs","crates/obscura-cdp/Cargo.toml","crates/obscura-cdp/src/cookie_params.rs","crates/obscura-cdp/src/dispatch.rs","crates/obscura-cdp/src/domains/accessibility.rs","crates/obscura-cdp/src/domains/browser.rs","crates/obscura-cdp/src/domains/dom.rs","crates/obscura-cdp/src/domains/domsnapshot.rs","crates/obscura-cdp/src/domains/emulation.rs","crates/obscura-cdp/src/domains/fetch.rs","crates/obscura-cdp/src/domains/input.rs","crates/obscura-cdp/src/domains/io.rs","crates/obscura-cdp/src/domains/lp.rs","crates/obscura-cdp/src/domains/mod.rs","crates/obscura-cdp/src/domains/network.rs","crates/obscura-cdp/src/domains/page.rs","crates/obscura-cdp/src/domains/pdf.rs","crates/obscura-cdp/src/domains/runtime.rs","crates/obscura-cdp/src/domains/storage.rs","crates/obscura-cdp/src/domains/target.rs","crates/obscura-cdp/src/lib.rs","crates/obscura-cdp/src/server.rs","crates/obscura-cdp/src/types.rs","crates/obscura-cdp/src/util.rs","crates/obscura-cdp/tests/cdp_click_submit_parity.rs","crates/obscura-cdp/tests/child_frame_tree.rs","crates/obscura-cdp/tests/concurrent_connections_heavy_page.rs","crates/obscura-cdp/tests/concurrent_navigations.rs","crates/obscura-cdp/tests/concurrent_navigations_with_fetch.rs","crates/obscura-cdp/tests/control_plane_unblocked.rs","crates/obscura-cdp/tests/dynamic_script_onload_fires.rs","crates/obscura-cdp/tests/dynamic_stylesheet_onload_fires.rs","crates/obscura-cdp/tests/execution_context_pruned_on_navigation.rs","crates/obscura-cdp/tests/form_submit_method_bypasses_listener.rs","crates/obscura-cdp/tests/iframe_event_dispatch.rs","crates/obscura-cdp/tests/input_key_event_escaping.rs","crates/obscura-cdp/tests/input_mouse_event_parity.rs","crates/obscura-cdp/tests/js_fetch_emits_network_events.rs","crates/obscura-cdp/tests/max_connections_cap.rs","crates/obscura-cdp/tests/nodefilter_constants.rs","crates/obscura-cdp/tests/scroll_event_on_assignment.rs","crates/obscura-cdp/tests/structured_clone_crypto_parity.rs","crates/obscura-cdp/tests/treewalker_document_order.rs","crates/obscura-cdp/tests/window_conformance_parity.rs","crates/obscura-cli/Cargo.toml","crates/obscura-cli/build.rs","crates/obscura-cli/src/main.rs","crates/obscura-cli/src/worker.rs","crates/obscura-cli/tests/mcp_client.rs","crates/obscura-cli/tests/screenshot_after_eval.rs","crates/obscura-dom/Cargo.toml","crates/obscura-dom/src/lib.rs","crates/obscura-dom/src/selector.rs","crates/obscura-dom/src/serialize.rs","crates/obscura-dom/src/tree.rs","crates/obscura-dom/src/tree_sink.rs","crates/obscura-js/Cargo.toml","crates/obscura-js/build.rs","crates/obscura-js/js/bootstrap.js","crates/obscura-js/src/cdp_watchdog.rs","crates/obscura-js/src/frame.rs","crates/obscura-js/src/import_map.rs","crates/obscura-js/src/lib.rs","crates/obscura-js/src/markdown.rs","crates/obscura-js/src/module_loader.rs","crates/obscura-js/src/ops.rs","crates/obscura-js/src/runtime.rs","crates/obscura-js/src/v8_flags.rs","crates/obscura-mcp/Cargo.toml","crates/obscura-mcp/src/http.rs","crates/obscura-mcp/src/lib.rs","crates/obscura-mcp/tests/cors_preflight.rs","crates/obscura-mcp/tests/sse_stream_does_not_wedge.rs","crates/obscura-net/Cargo.toml","crates/obscura-net/src/blocklist.rs","crates/obscura-net/src/client.rs","crates/obscura-net/src/cookies.rs","crates/obscura-net/src/encoding.rs","crates/obscura-net/src/interceptor.rs","crates/obscura-net/src/lib.rs","crates/obscura-net/src/pgl_domains.txt","crates/obscura-net/src/robots.rs","crates/obscura-net/src/wreq_client.rs","crates/obscura-render/Cargo.toml","crates/obscura-render/assets/FONT-PROVENANCE.md","crates/obscura-render/assets/LICENSE-NOTO-COLOR-EMOJI.txt","crates/obscura-render/assets/dejavu-sans-bold.ttf","crates/obscura-render/assets/dejavu-sans-boldoblique.ttf","crates/obscura-render/assets/dejavu-sans-oblique.ttf","crates/obscura-render/assets/dejavu-sans.ttf","crates/obscura-render/assets/liberation-mono-bold.ttf","crates/obscura-render/assets/liberation-mono-boldoblique.ttf","crates/obscura-render/assets/liberation-mono-oblique.ttf","crates/obscura-render/assets/liberation-mono.ttf","crates/obscura-render/assets/liberation-sans-bold.ttf","crates/obscura-render/assets/liberation-sans-boldoblique.ttf","crates/obscura-render/assets/liberation-sans-oblique.ttf","crates/obscura-render/assets/liberation-sans.ttf","crates/obscura-render/assets/liberation-serif-bold.ttf","crates/obscura-render/assets/liberation-serif-boldoblique.ttf","crates/obscura-render/assets/liberation-serif-oblique.ttf","crates/obscura-render/assets/liberation-serif.ttf","crates/obscura-render/assets/noto-color-emoji.ttf","crates/obscura-render/src/bin/paint_file.rs","crates/obscura-render/src/border.rs","crates/obscura-render/src/css.rs","crates/obscura-render/src/dom.rs","crates/obscura-render/src/inline.rs","crates/obscura-render/src/lib.rs","crates/obscura-render/src/paint.rs","crates/obscura-render/src/style.rs","crates/obscura-render/tests/fonts/LICENSE-OFL-1.1.txt","crates/obscura-render/tests/fonts/PROVENANCE.txt","crates/obscura-render/tests/fonts/obscura-vf-test.woff2.b64","crates/obscura-render/tests/layout_test.rs","crates/obscura/Cargo.toml","crates/obscura/README.md","crates/obscura/examples/basic.rs","crates/obscura/src/browser.rs","crates/obscura/src/config.rs","crates/obscura/src/cookie.rs","crates/obscura/src/error.rs","crates/obscura/src/lib.rs","crates/obscura/src/page.rs","crates/obscura/tests/attribute_injection.rs","crates/obscura/tests/child_frame_scripts.rs","crates/obscura/tests/image_shim.rs","crates/obscura/tests/interception.rs","crates/obscura/tests/select_semantics.rs","crates/obscura/tests/sequential_runtime_fetch.rs","deny.toml","docs/Adding-a-CDP-method-or-Web-API.md","docs/Architecture-overview.md","docs/Build-from-source.md","docs/CLI-reference.md","docs/Configure-stealth-and-proxies.md","docs/Connect-Puppeteer-or-Playwright.md","docs/Environment-variables.md","docs/Extract-data.md","docs/Installation.md","docs/Intercept-and-modify-requests.md","docs/Markdown-extraction.md","docs/Persist-cookies-and-storage.md","docs/README.md","docs/Run-in-production-at-scale.md","docs/SUMMARY.md","docs/Testing-and-debugging.md","docs/Use-as-a-Rust-library.md","docs/Use-the-MCP-server.md","docs/Use-with-Playwright.md","docs/Use-with-Puppeteer.md","docs/Your-first-fetch.md","render-repros/abs-fill.html","render-repros/absolute-containing-block.html","render-repros/absolute-static-position.html","render-repros/animation-fill-forwards.html","render-repros/background-shorthand-reset.html","render-repros/block-auto-margins.html","render-repros/block-whitespace-margin-collapse.html","render-repros/bootstrap-float-clearfix.html","render-repros/box-sizing.html","render-repros/capture_chromium.py","render-repros/carousel-clip.html","render-repros/cascade-priority.html","render-repros/check.py","render-repros/checks.json","render-repros/clear-float.html","render-repros/contextual-css-math.html","render-repros/contextual-grid-gap.html","render-repros/direction-rtl.html","render-repros/display-contents-cascade.html","render-repros/eventtarget-lifecycle.html","render-repros/fixed-table-layout.html","render-repros/flex-flow.html","render-repros/flex-post-ratio-cross-size.html","render-repros/flex-whitespace-items.html","render-repros/float-bfc-continuation.html","render-repros/float-flow-bands.html","render-repros/font-metric-line-height.html","render-repros/font-shorthand.html","render-repros/forced-line-breaks.html","render-repros/form-control-geometry.html","render-repros/form-control-quirks.html","render-repros/grid-auto-repeat.html","render-repros/grid-shorthand.html","render-repros/img-density-and-alt.html","render-repros/inline-block-flex-items.html","render-repros/inline-replaced-flow.html","render-repros/item-self-alignment.html","render-repros/legacy-center.html","render-repros/list-indentation.html","render-repros/logical-borders.html","render-repros/long-full-page-capture.html","render-repros/max-height-replaced.html","render-repros/media-text-track.html","render-repros/mixed-content-block.html","render-repros/mixed-float-run.html","render-repros/modern-containing-block-triggers.html","render-repros/modern-hydration-contracts.html","render-repros/modern-streams.html","render-repros/nested-float-clearance.html","render-repros/opposing-header-floats.html","render-repros/paired-corpus.py","render-repros/pdf-print-import.css","render-repros/pdf-print-media.html","render-repros/percentage-height-indefinite-parent.html","render-repros/probe_long_full_page_chromium.py","render-repros/ratio-only-inline-images.html","render-repros/relative-box-edges.html","render-repros/replaced-block-wrapper.html","render-repros/replaced-grid-order.html","render-repros/representative-suite/run.sh","render-repros/representative-suite/sites.txt","render-repros/representative-suite/test_suite.py","render-repros/right-float-navigation.html","render-repros/run.sh","render-repros/spot-sites.txt","render-repros/supports-var-feature-query.html","render-repros/table-row-geometry.html","render-repros/table-track-geometry.html","render-repros/tables.html","render-repros/test_check.py","render-repros/test_paired_corpus.py","render-repros/text-align-flex-items.html","render-repros/transform-containing-block.html","render-repros/video-poster.html","render-repros/viewport-consistency.html","render-repros/z-index.html","scripts/ci/compare_obstacle.py","scripts/ci/perf_smoke.py","scripts/ci/pr_policy.py","skills/obscura/SKILL.md","vendor/cosmic-text/Cargo.toml","vendor/cosmic-text/Cargo.toml.orig","vendor/cosmic-text/LICENSE-APACHE","vendor/cosmic-text/LICENSE-MIT","vendor/cosmic-text/README.md","vendor/cosmic-text/fonts/NotoSans-LICENSE","vendor/cosmic-text/fonts/NotoSans-Regular.ttf","vendor/cosmic-text/fonts/NotoSansArabic.ttf","vendor/cosmic-text/fonts/NotoSansHebrew.ttf","vendor/cosmic-text/src/attrs.rs","vendor/cosmic-text/src/bidi_para.rs","vendor/cosmic-text/src/buffer.rs","vendor/cosmic-text/src/buffer_line.rs","vendor/cosmic-text/src/cached.rs","vendor/cosmic-text/src/cursor.rs","vendor/cosmic-text/src/edit/editor.rs","vendor/cosmic-text/src/edit/mod.rs","vendor/cosmic-text/src/edit/syntect.rs","vendor/cosmic-text/src/edit/vi.rs","vendor/cosmic-text/src/font/fallback/macos.rs","vendor/cosmic-text/src/font/fallback/mod.rs","vendor/cosmic-text/src/font/fallback/other.rs","vendor/cosmic-text/src/font/fallback/unix.rs","vendor/cosmic-text/src/font/fallback/windows.rs","vendor/cosmic-text/src/font/mod.rs","vendor/cosmic-text/src/font/system.rs","vendor/cosmic-text/src/glyph_cache.rs","vendor/cosmic-text/src/layout.rs","vendor/cosmic-text/src/lib.rs","vendor/cosmic-text/src/line_ending.rs","vendor/cosmic-text/src/math.rs","vendor/cosmic-text/src/shape.rs","vendor/cosmic-text/src/shape_run_cache.rs","vendor/cosmic-text/src/swash.rs","vendor/taffy/Cargo.toml","vendor/taffy/LICENSE","vendor/taffy/README.md","vendor/taffy/src/compute/block.rs","vendor/taffy/src/compute/common/alignment.rs","vendor/taffy/src/compute/common/content_size.rs","vendor/taffy/src/compute/common/mod.rs","vendor/taffy/src/compute/flexbox.rs","vendor/taffy/src/compute/float.rs","vendor/taffy/src/compute/grid/alignment.rs","vendor/taffy/src/compute/grid/explicit_grid.rs","vendor/taffy/src/compute/grid/implicit_grid.rs","vendor/taffy/src/compute/grid/mod.rs","vendor/taffy/src/compute/grid/placement.rs","vendor/taffy/src/compute/grid/track_sizing.rs","vendor/taffy/src/compute/grid/types/cell_occupancy.rs","vendor/taffy/src/compute/grid/types/coordinates.rs","vendor/taffy/src/compute/grid/types/grid_item.rs","vendor/taffy/src/compute/grid/types/grid_track.rs","vendor/taffy/src/compute/grid/types/grid_track_counts.rs","vendor/taffy/src/compute/grid/types/mod.rs","vendor/taffy/src/compute/grid/types/named.rs","vendor/taffy/src/compute/grid/util/mod.rs","vendor/taffy/src/compute/grid/util/test_helpers.rs","vendor/taffy/src/compute/leaf.rs","vendor/taffy/src/compute/mod.rs","vendor/taffy/src/geometry.rs","vendor/taffy/src/lib.rs","vendor/taffy/src/prelude.rs","vendor/taffy/src/style/alignment.rs","vendor/taffy/src/style/available_space.rs","vendor/taffy/src/style/block.rs","vendor/taffy/src/style/compact_length.rs","vendor/taffy/src/style/dimension.rs","vendor/taffy/src/style/flex.rs","vendor/taffy/src/style/float.rs","vendor/taffy/src/style/grid.rs","vendor/taffy/src/style/mod.rs","vendor/taffy/src/style_helpers.rs","vendor/taffy/src/test.rs","vendor/taffy/src/tree/cache.rs","vendor/taffy/src/tree/layout.rs","vendor/taffy/src/tree/mod.rs","vendor/taffy/src/tree/node.rs","vendor/taffy/src/tree/taffy_tree.rs","vendor/taffy/src/tree/traits.rs","vendor/taffy/src/util/debug.rs","vendor/taffy/src/util/math.rs","vendor/taffy/src/util/mod.rs","vendor/taffy/src/util/parse.rs","vendor/taffy/src/util/print.rs","vendor/taffy/src/util/resolve.rs","vendor/taffy/src/util/sys.rs"],"storefront":"/r/h4ckf0r0day","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/h4ckf0r0day/obscura/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}