Skip to main content
ClaudeWave

Portable WPE WebKit runtime for AI agents with native input, screenshots, ordered JSONL, and reproducible benchmarks.

SubagentsOfficial Registry2 stars1 forks● JavaScriptApache-2.0Updated today
ClaudeWave Trust Score
87/100
✓ Trusted
Passed
  • ✓Open-source license (Apache-2.0)
  • ✓Actively maintained (<30d)
  • ✓Clear description
  • ✓Topics declared
  • ✓Documented (README)
Flags
  • !Install pipes a remote script into a shell (curl | sh)
Last scanned: 10/12/2026
Install as a Claude Code subagent
Method: Clone
Terminal
git clone https://github.com/masakaai/jet-browser && cp jet-browser/*.md ~/.claude/agents/
1. Clone the repository and copy the agent .md definitions into ~/.claude/agents (or .claude/agents inside a project).
2. Start a new Claude Code session to load the agents.
3. Delegate work to them with the Task/Agent tool or by name.
Use cases

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"
      ]
    }
  }
}
~~~

[![Install Jet Browser in VS Code](https://img.shields.io/badge/VS_Code-Install_Jet_Browser-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](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
agent-skillsagent-toolsagentic-aiai-agentsai-browserbenchmarkbrowser-agentbrowser-automationbrowser-runtimeclaude-codecodexcoding-agentsdockerheadless-browserjsonlmcp-serverweb-automationwebkitwpe-webkitwpewebkit

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.

Featured on ClaudeWave: masakaai/jet-browser
[![Featured on ClaudeWave](https://claudewave.com/api/badge/masakaai-jet-browser)](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

jet-browser alternatives