v0.2.0
Obscura can now render and capture modern web pages directly, without bundling or launching Chromium. This release adds a native Rust rendering engine, screenshots, scrolling, screencasting, and PDF export through the CLI, MCP, Puppeteer, and Playwright. 449 commits since v0.1.11.
Highlights
- Native rendering: block and inline layout, Flexbox, Grid, tables, floats, positioning, scrolling, transforms, text shaping, images, SVG, Canvas, forms, gradients, shadows, and animations.
- Modern websites: external stylesheets, JavaScript modules, dynamic imports, hydration, responsive images, web fonts, observers, Shadow DOM, and custom elements.
- Screenshots: viewport, clipped, scrolled, and full-page capture with PNG, JPEG, and WebP output through CDP.
- Screencasting: activity-driven PNG or JPEG frames with sizing, quality controls, acknowledgement backpressure, and isolated CDP sessions.
- PDF export: print styles, pagination, paper sizes, margins, scale, landscape mode, backgrounds, page ranges, and streamed output.
CLI and automation
Capture a page directly:
obscura fetch https://example.com --screenshot page.pngPuppeteer and Playwright can use their normal screenshot and PDF APIs through Obscura's CDP endpoint. Pages can be scrolled through JavaScript, mouse-wheel input, or DOM.scrollIntoViewIfNeeded.
Render-enabled MCP builds add browser_screenshot and browser_pdf.
Browser compatibility
This release also improves:
- React-controlled form filling through MCP
- Namespaced and qualified attributes
cloneNode()and context-sensitive HTML fragmentsEvent,CustomEvent,PromiseRejectionEvent, andStorageEventbehavior- String timer execution
- Dynamic
data:scripts - Style attribute synchronization
- Quirks-mode selectors
- Platform CA certificate support
- Compressed responses through the stealth transport
- HTML charset detection
Release downloads
Every supported platform now receives four builds:
| Suffix | Rendering | Stealth |
|---|---|---|
| (none) | Yes | No |
-stealth
| Yes | Yes |
-no-render
| No | No |
-no-render-stealth
| No | Yes |
The default archive and Docker image include rendering. No-render builds preserve the existing lightweight automation configuration.
Current limitations
Rendering is new and is not yet complete Chromium parity. Long-tail CSS, some Web APIs, native media playback, and GPU compositor effects may still differ.
PDF output is currently raster-backed, so text is not selectable. Screencasting captures page activity rather than fixed-rate desktop video.
Contributors
Thanks to @mnaza, @tamish560, @lisa0314, @dgcavalcante-png, @alectimison-maker, @ibukanov, @marcoripa96, and @stack3mpty.
Full Changelog: v0.1.11...v0.2.0