Skyvern-AI/rustwright

Playwright's API on a Rust CDP engine — Chromium browser automation for Python & Node, no driver subprocess. (Alpha)

What it solves

Rustwright is a high-performance, native Rust rewrite of the Playwright browser automation library. It eliminates the need for a Node.js driver subprocess, which reduces memory overhead, increases execution speed, and removes the specific automation fingerprints that websites use to detect Playwright.

How it works

It uses a native Rust engine built on Tokio that communicates directly with Chromium via the Chrome DevTools Protocol (CDP). This core engine is then exposed to Python and Node.js through thin bindings (PyO3 and napi-rs), allowing users to keep the familiar Playwright API while running on a more efficient backend.

Who it’s for

  • AI Agent Developers: Provides a CLI and a Model Context Protocol (MCP) server to give agents browser access via compact accessibility snapshots and element references.
  • Automation Engineers: Those seeking a faster, lower-memory alternative to Playwright for Chromium-based automation.
  • Web Scrapers: Users who want to avoid common Playwright-specific detection signatures.

Highlights

  • Performance: Up to 2.55x faster and uses approximately 70% less memory than playwright-python.
  • Agent-Ready: Includes a native MCP server and CLI for driving browsers via session-scoped element references (@e1, @e2).
  • Stealth: Removes Playwright driver signatures and normalizes headless identity to reduce detection.
  • Interoperable: Designed as a drop-in replacement for Playwright with minimal code changes (changing the import).
  • Trusted Input: Uses real CDP input events for clicks and typing rather than synthetic DOM calls.

Related

  • Project
  • Project
  • Project
  • Project