Portable WPE WebKit runtime for AI agents with native input, screenshots, ordered JSONL, and reproducible benchmarks.
- ✓Open-source license (Apache-2.0)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
- ✓Documented (README)
- !Install pipes a remote script into a shell (curl | sh)
git clone https://github.com/masakaai/jet-browser && cp jet-browser/*.md ~/.claude/agents/Subagents overview
<p align="center">
<img width="100%" src="./docs/assets/jet-browser-banner.svg" alt="Jet Browser — a small browser runtime for web agents">
</p>
<p align="center">
English · <a href="./README.zh-CN.md">简体中文</a> · <a href="./README.ja.md">日本語</a> · <a href="./README.ko.md">한국어</a> · <a href="./README.de.md">Deutsch</a> · <a href="./README.fr.md">Français</a> · <a href="./README.es.md">Español</a> · <a href="./README.pt-BR.md">Português</a>
</p>
<p align="center">
<img alt="Node.js 24+" src="https://img.shields.io/badge/Node.js-24%2B-292622?style=flat-square">
<img alt="Rust stable" src="https://img.shields.io/badge/Rust-stable-292622?style=flat-square">
<img alt="WPE WebKit 2.54" src="https://img.shields.io/badge/WPE%20WebKit-2.54-e87532?style=flat-square">
<img alt="Apache-2.0 license" src="https://img.shields.io/badge/license-Apache--2.0-e87532?style=flat-square">
<a href="https://github.com/masakaai/jet-browser/actions/workflows/ci.yml"><img alt="CI" src="https://github.com/masakaai/jet-browser/actions/workflows/ci.yml/badge.svg"></a>
</p>
Jet Browser packages WPE WebKit and a Rust WebDriver bridge as a standalone runtime. One container runs one isolated browser session; your harness sends ordered JSONL commands and receives machine-readable results.
Bring any harness or deterministic test runner. No account, API key, model, database, or hosted control plane is required.
<p align="center">
<a href="https://masaka-ai.vercel.app/jet-browser/">Product overview</a> ·
<a href="https://masaka-ai.vercel.app/jet-browser/tech-report/">Technical report</a> ·
<a href="https://github.com/marketplace/actions/jet-browser-runtime-smoke-test">GitHub Marketplace Action</a> ·
<a href="https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.masakaai%2Fjet-browser">Official MCP Registry</a> ·
<a href="./integrations/hermes/README.md">Hermes integration</a> ·
<a href="./integrations/mcp/README.md">MCP verifier</a> ·
<a href="./docs/benchmarks.md">Method</a> ·
<a href="./docs/stability.md">Stability method</a> ·
<a href="./benchmarks/results/runtime-2026-10-07.json">Raw samples</a>
</p>
## Pick Jet Browser when
Jet Browser is the execution layer for runs that need a clear, inspectable browser boundary:
- **Isolation matters:** one disposable browser session per container, with explicit lifecycle and resource limits.
- **Evidence must agree:** native input, DOM state, and a fresh screenshot come from the same runtime instead of separate replay paths.
- **The harness should stay replaceable:** ordered JSONL works with any model, agent loop, CI job, or deterministic test runner.
- **You need a non-Chromium runtime:** WPE WebKit provides a second engine without shipping another browser-agent framework.
Keep Playwright, CDP, or your current browser stack when you need their browser matrix, extension ecosystem, or an existing signed-in Chrome profile. Jet Browser does not attach to daily Chrome and does not include a model or agent.
[Run the verified smoke test →](#3-run-the-verified-standalone-flow) · [See the protocol →](#4-embed-the-runtime-boundary)
## Reproducible runtime benchmark
Jet Browser reached a verified page in **1,445.25 ms** with **189.6 MiB** of active memory—**72.7% lower ready time** and **33.2% lower memory** than the next result. [Method](./docs/benchmarks.md) · [Raw data](./benchmarks/results/runtime-2026-10-07.json)
<p align="center">
<img width="100%" src="./docs/assets/runtime-benchmark.svg" alt="Horizontal bar charts comparing median verified browser-ready time and active container memory for Jet Browser, Browser Use, Steel Browser, and Browserless. Lower is better in both panels.">
</p>
## Let your coding agent verify it
Paste this single line into Codex, Claude Code, or another repository-aware coding agent. GitHub code blocks include a one-click copy action.
~~~text
Install or upgrade Jet Browser to the latest main for this repository from https://github.com/masakaai/jet-browser. Read README.md and use its native marketplace instructions when Codex or Claude Code plugin commands are available; otherwise register .agents/skills/jet-browser/SKILL.md as a repository skill. Confirm Docker is available, run curl -fsSL https://raw.githubusercontent.com/masakaai/jet-browser/main/scripts/try-jet.sh | sh, and report whether browser startup, native input, DOM verification, and PNG capture passed. Do not attach to my daily Chrome profile or start a persistent Chrome daemon. Only source builds require Node.js 24+; follow docs/demo.md if setup or verification fails.
~~~
## Quick start
### 1. Prove the runtime with one command
Docker only—no clone, Node.js, account, API key, or outbound browser network:
~~~bash
curl -fsSL https://raw.githubusercontent.com/masakaai/jet-browser/main/scripts/try-jet.sh | sh
~~~
The [reviewable script](./scripts/try-jet.sh) downloads the release-pinned seccomp policy, verifies its SHA-256, selects native `linux/amd64` or `linux/arm64` from the immutable multi-platform image, and exercises browser startup, native input, DOM state, and PNG capture. It starts a disposable, resource-bounded container with networking disabled and does not mount the Docker socket or a host directory.
Successful output ends with:
~~~json
{"status":"passed","version":"0.9.0","network":"disabled","nativeInput":"verified","dom":"verified","screenshot":"verified PNG"}
~~~
The full source checkout and SDK paths below require Docker and Node.js 24+.
### 2. Install the coding-agent plugin
Codex:
~~~bash
codex plugin marketplace add masakaai/jet-browser --ref main && codex plugin add jet-browser@masaka
~~~
Claude Code:
~~~bash
claude plugin marketplace add masakaai/jet-browser && claude plugin install jet-browser@masaka
~~~
Hermes Agent:
~~~bash
hermes plugins install masakaai/jet-browser/integrations/hermes
hermes plugins enable jet-browser
~~~
MCP clients:
~~~json
{
"mcpServers": {
"jet-browser": {
"command": "docker",
"args": [
"run", "--rm", "-i", "--network=none",
"--mount", "type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock",
"ghcr.io/masakaai/jet-browser-mcp:0.9.0"
]
}
}
}
~~~
[](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522jet-browser%2522%252C%2522command%2522%253A%2522docker%2522%252C%2522args%2522%253A%255B%2522run%2522%252C%2522--rm%2522%252C%2522-i%2522%252C%2522--network%253Dnone%2522%252C%2522--mount%2522%252C%2522type%253Dbind%252Csrc%253D%252Fvar%252Frun%252Fdocker.sock%252Cdst%253D%252Fvar%252Frun%252Fdocker.sock%2522%252C%2522ghcr.io%252Fmasakaai%252Fjet-browser-mcp%253A0.9.0%2522%255D%257D)
VS Code opens a review prompt before adding the server. The link uses VS Code's official MCP install URI and preserves the same pinned image, disabled network, and Docker-socket boundary shown above.
Cursor users can [install this exact configuration in one click](https://cursor.com/link/mcp/install?name=jet-browser&config=eyJjb21tYW5kIjoiZG9ja2VyIiwiYXJncyI6WyJydW4iLCItLXJtIiwiLWkiLCItLW5ldHdvcms9bm9uZSIsIi0tbW91bnQiLCJ0eXBlPWJpbmQsc3JjPS92YXIvcnVuL2RvY2tlci5zb2NrLGRzdD0vdmFyL3J1bi9kb2NrZXIuc29jayIsImdoY3IuaW8vbWFzYWthYWkvamV0LWJyb3dzZXItbWNwOjAuOS4wIl19). Cursor opens a review prompt before adding it; the Docker-socket warning below still applies.
The Codex and Claude Code paths install the Jet Browser skill, which teaches coding agents how to check requirements, run the verified standalone flow, integrate the versioned tool schemas, and preserve the runtime's safety boundaries. The same repository-local skill is available at [`.agents/skills/jet-browser/SKILL.md`](./.agents/skills/jet-browser/SKILL.md) for agents that discover project skills directly.
The [Hermes plugin](./integrations/hermes/README.md) registers one bounded verification tool that runs the immutable public image with browser networking disabled and returns startup, native-input, DOM, and PNG evidence. It is deliberately a runtime verifier rather than a CDP browser provider.
The [MCP verifier](./integrations/mcp/README.md) is published as [`io.github.masakaai/jet-browser`](https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.masakaai%2Fjet-browser) in the official MCP Registry. It exposes the same bounded proof through a local stdio server and a versioned OCI package, advertises the immutable runtime contract, and runs the network-disabled acceptance without accepting a URL, profile, credential, or arbitrary command. Docker socket grants host-level control, so install it only for a trusted local MCP client.
### 3. Run the verified standalone flow
Published from a tagged GitHub release, one multi-platform manifest provides native `linux/amd64` and `linux/arm64` images with per-platform provenance. The smoke test disables outbound networking, starts a real browser, opens a local page, types through the native input path, verifies the DOM, captures a PNG, and closes the session.
~~~bash
git clone https://github.com/masakaai/jet-browser.git
cd jet-browser
docker pull ghcr.io/masakaai/jet-browser:0.9.0
JET_BROWSER_IMAGE=ghcr.io/masakaai/jet-browser:0.9.0 npm run standalone:smoke
~~~
Docker selects the matching native image from the manifest on x86_64 and ARM64 Linux hosts. Pin the manifest digest in production. To build and verify the checked-out source for the host architecture instead, run `npm run standalone`.
Successful output includes:
~~~json
{
"status": "passed",
"network": "disabled",
"title": "Jet Browser Ready",
"input": "open-source runtime"
}
~~~
Run the same acceptance check with the [GitHub Marketplace Action](https://github.com/marketplace/actions/jet-browser-runtime-smoke-test) without repository or account secrets:
~~~yaml
permissions:
contents: read
What people ask about jet-browser
What is masakaai/jet-browser?
+
masakaai/jet-browser is subagents for the Claude AI ecosystem. Portable WPE WebKit runtime for AI agents with native input, screenshots, ordered JSONL, and reproducible benchmarks. It has 2 GitHub stars and its last recorded update is dated 2026-10-12.
How do I install jet-browser?
+
You can install jet-browser by cloning the repository (https://github.com/masakaai/jet-browser) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is masakaai/jet-browser safe to use?
+
Our security agent has analyzed masakaai/jet-browser and assigned a Trust Score of 87/100 (tier: Trusted). See the full breakdown of passed checks and flags on this page.
Who maintains masakaai/jet-browser?
+
masakaai/jet-browser is maintained by masakaai. The last recorded GitHub activity is dated 2026-10-12, with 1 open issues.
Are there alternatives to jet-browser?
+
Yes. On ClaudeWave you can browse similar subagents at /categories/agents, sorted by popularity or recent activity.
Deploy jet-browser to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/masakaai-jet-browser)<a href="https://claudewave.com/repo/masakaai-jet-browser"><img src="https://claudewave.com/api/badge/masakaai-jet-browser" alt="Featured on ClaudeWave: masakaai/jet-browser" width="320" height="64" /></a>More Subagents
The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.
The agent that grows with you
Makes your AI agent think like the laziest senior dev in the room. The best code is the code you never wrote.
Java 面试 & 后端通用面试指南,覆盖计算机基础、数据库、分布式、高并发、系统设计与 AI 应用开发
Build Agentic workflows, RAG pipelines, with rich AI model and tool support on one collaborative workspace. Deploy on cloud, VPC, or self-hosted, so teams move from prototype to production without rebuilding the stack.
The agent engineering platform.