Rustwright is an alpha, Chromium-only project. The Python package is on PyPI and the Node.js binding is on npm; you can also build from source, as shown below. Review the known limitations before depending on it in production.
Paste this into Claude Code or Codex:
Set up Rustwright for Python from https://github.com/Skyvern-AI/rustwright. If the repository already exists, use the current checkout; otherwise clone it. Read
QUICKSTART.mdandLIMITATIONS.mdfirst. Use a repository-local.venvand do not change global Python packages or shell configuration. Verify Python 3.9–3.14 and CPython 3.15.0rc1 (pre-release; CI tracks 3.15-dev until GA) and Rust 1.85+, build with maturin, install Chromium, runpython examples/quickstart.py, and report the exact output or blocker. Do not modify or commit source files.
You need:
- Git
- Python 3.9 through 3.14, or CPython 3.15.0rc1; Python 3.15 support remains pre-release, and CI tracks 3.15-dev until GA
- A Rust toolchain 1.85 or newer, including the platform
build tools recommended by
rustup
git clone https://github.com/Skyvern-AI/rustwright
cd rustwright
python3 -m venv .venv # Windows: use `python` · Debian/Ubuntu: requires the python3-venv packageActivate the virtual environment on macOS or Linux:
source .venv/bin/activateOr activate it in Windows PowerShell (if activation is blocked by the execution
policy, run Set-ExecutionPolicy -Scope Process Bypass first):
.\.venv\Scripts\Activate.ps1With the environment active, build and install Rustwright. The first build compiles the Rust engine and typically takes a few minutes:
python -m pip install -U pip maturin
maturin develop --releaseOn Debian/Ubuntu, install Chromium's system libraries first (apt-based
distros only; the command self-elevates with sudo). Other distros install the
equivalent Chromium runtime packages through their own package manager, and
macOS/Windows need none:
python -m rustwright install-deps chromium # Debian/Ubuntu onlyThen, on any platform, download Chromium and run the smoke example:
python -m rustwright install chromium
python examples/quickstart.pyThe example uses a local data: URL, so it makes no network requests once the
build dependencies and Chromium are installed. A successful run prints:
Rustwright works
If Chrome or Chromium is already installed, Rustwright can usually discover it.
You can also set RUSTWRIGHT_CHROMIUM, CHROME, or CHROMIUM to the browser
executable before running the example.
For Python code that stays within Rustwright's supported surface, start by changing the import:
- from playwright.sync_api import sync_playwright
+ from rustwright.sync_api import sync_playwrightThe async entrypoint is available from rustwright.async_api. If changing
imports is inconvenient, call rustwright.enable_playwright_compat() before
importing playwright; this compatibility mode is opt-in and may evolve before
beta.
The rustwright CLI keeps one browser alive across agent commands:
rustwright open example.com # launch + navigate; prints an accessibility snapshot
rustwright snapshot # accessibility tree with refs (e1, e2, …)
rustwright click e3 # act on an element by its ref
rustwright --json snapshot # one JSON object, for scripting
rustwright close # shut the session downThe CLI verbs and the MCP server's tools are the same surface.
See docs/agent-interfaces.md for the CLI verbs,
configuration, threat model, and current scope. The MCP server for Rustwright
is the native rustwright-mcp server — see mcp/README.md
for install and client configuration. With its binary installed, rustwright mcp
starts it.
The Node.js binding is published to npm. It
has no browser downloader and exposes only the subset listed in
node/README.md. Install Chrome/Chromium or set
RUSTWRIGHT_CHROMIUM, CHROME, or CHROMIUM to an existing executable, then:
npm install rustwrightTo build from source instead — you need a recent Node.js (LTS recommended) plus the Rust toolchain from the Python prerequisites — from the repository root:
cd node
npm install
npm run build
npm run smokeActivate the same virtual environment used for the build, then rerun:
maturin develop --releaseRun python -m rustwright install chromium, install Chrome/Chromium manually,
or set RUSTWRIGHT_CHROMIUM to the executable's absolute path.
Rustwright deliberately supports Chromium only. Firefox and WebKit entrypoints return an explicit unsupported-browser error.