Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

You can run Puppeteer’s client API from browser-side JavaScript, but the page does not launch its own browser. Bundle the browser-specific entry point from puppeteer-core, then connect it to a separate, already-running browser using a reachable WebSocket endpoint. Browser-side Puppeteer can control that remote browser; launching or downloading a browser requires Node.js.

What “running Puppeteer in a browser” means

There are two processes: the web page runs a bundled Puppeteer client, and a separate browser process performs the browsing and automation. The client connects to that browser over WebSocket. The remote browser must already be running with an open debugging endpoint, and the page must be able to reach that endpoint.

This is different from the usual Node.js setup, where a Node process can launch a browser and create pages. Browser-side Puppeteer cannot launch or download a browser because those operations rely on Node.js APIs.

Prerequisites

  • A browser-targeted bundle: use Puppeteer’s browser-specific entry point and a bundler such as Rollup or Webpack.
  • A remote browser: it must be running and expose a valid WebSocket endpoint.
  • Network access to that endpoint: the browser page’s environment must be able to connect to the endpoint. The Puppeteer guide establishes the endpoint requirement but does not provide deployment security instructions; do not expose an unprotected debugging port.
  • Compatible versions: use the official supported-browser mapping for your Puppeteer release rather than assuming any installed Chrome or Firefox will work.

Install the right package

For browser-side control, the documented entry point is puppeteer-core/lib/puppeteer/puppeteer-core-browser.js. The puppeteer-core package does not download Chrome during installation; it is intended for cases such as connecting to a remote browser or managing a browser yourself. The full puppeteer package downloads a compatible Chrome for a Node.js workflow.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
Sale
BONTEC Mobile Standing Desk with Keyboard Tray, Mobile Podium on Wheels
  • ADJUSTABLE HEIGHT DESIGN: The mobile standing desk promotes a healthier workstyle by allowing quick transitions between sitting and standing. The gas spring lift smoothly adjusts the height from 28.3in to 44in, supporting better posture and reducing neck and back strain during long working hours. This portable desk improves daily comfort and productivity across different environments.
  • SUPERIOR STABILITY AND DURABILITY: The rolling desk adjustable height model stands out with its sturdy H shaped steel base and reinforced structure, providing stability even at maximum extension. The waterproof and scratch resistant MDF desktop ensures long lasting use, while the retractable keyboard tray and hook create organized storage for accessories. This unique design differentiates the desk from standard folding table or rolling podium options on the market.
  • ERGONOMIC AND FUNCTIONAL DESIGN: The portable standing desk offers a spacious 25.6 x 17.7in surface to accommodate a laptop, monitor, or books. A dedicated slot holds phones and tablets, while the 23.6 x 11.8in keyboard tray supports a full size keyboard and mouse. The thoughtful structure allows the small standing desk to serve as a side table, study cart, or computer desk with keyboard tray in living rooms, bedrooms, and offices.
  • EASY MOBILITY WITH LOCKABLE WHEELS: The adjustable rolling desk includes four caster wheels that allow smooth movement between rooms. The lockable function secures the desk in place when needed, creating flexibility for use as a rolling laptop desk, classroom furniture, or teacher standing desk. The compact rolling table design makes the desk on wheels easy to move, while maintaining stability during presentations or study sessions.
  • EASY OPERATION AND LOW MAINTENANCE: The sit stand desk is operated with a simple hand lever that activates the gas spring for smooth upward adjustment, while gentle pressure lowers the surface. The mobile desk workstation requires minimal maintenance, as the MDF board is waterproof, scratch resistant, and easy to clean with a damp cloth. This reliable raising desk minimizes user effort and ensures long term durability without complex upkeep.

Install the core package in your project:

npm install puppeteer-core

If package-manager settings block dependency installation scripts and you are setting up a browser locally, Puppeteer’s installation guidance recommends manually installing the browser with npx puppeteer browsers install or allowing Puppeteer’s install script. That local installation issue does not remove the browser-side requirement for a reachable WebSocket endpoint.

Bundle and connect from browser-side JavaScript

Create a browser entry file and bundle it with Rollup or Webpack. The connection URL below is intentionally a placeholder: obtain a valid endpoint from the environment that runs your remote browser; do not substitute an arbitrary URL.

import puppeteer from 'puppeteer-core/lib/puppeteer/puppeteer-core-browser.js';

const wsUrl = 'wss://YOUR-REMOTE-BROWSER-ENDPOINT';

async function connectToBrowser() {
  const browser = await puppeteer.connect({ browserWSEndpoint: wsUrl });

  try {
    const pages = await browser.pages();
    console.log(`Open pages: ${pages.length}`);

    // Use supported Puppeteer operations against the connected browser.
    // For example, inspect or control a page returned by browser.pages().
  } finally {
    browser.disconnect();
  }
}

connectToBrowser().catch((error) => {
  console.error('Could not connect to the remote browser:', error);
});

In this example, browser.disconnect() closes the Puppeteer client connection; it is not the operation for launching or installing the browser. Include the generated bundle in the web page, for example:

<script src="/dist/app.js" defer></script>

The official browser guide shows connecting with puppeteer.connect({ browserWSEndpoint: wsUrl }), checking open pages, and disconnecting. Your application can then use supported operations against the remote browser.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Bundling notes

Configure the bundler to resolve dependencies for a browser environment. Puppeteer’s browser guide demonstrates Rollup and notes that the WebDriver BiDi mapper can be excluded to reduce bundle size if you do not need WebDriver BiDi. Check your bundler’s output and test the actual page; Node.js-only modules cannot become browser capabilities simply by bundling.

Rank #2
Sale
HUANUO 32x19 Inch Small Electric Standing Desk, Adjustable, Light Walnut
  • 【32” x 19” Perfect for Small Spaces & Corner】 Specially designed with a compact 32" x 19" desktop, this small electric standing desk seamlessly fits into limited areas like apartments, bedrooms, and cozy home office corners without crowding your room. It is the ultimate space-saving, height-adjustable solution to pair with under-desk treadmills and walking pads for remote workers, freelancers, and students
  • 【4 Memory Presets & DIY Wheel Ready】 This adjustable desk features a smart control panel with 4 programmable memory presets for effortless one-touch height adjustment (28.3" to 46.5"). Plus, built-in universal M8 screw holes on the desk feet allow you to easily install your own casters/wheels to DIY it into a mobile rolling desk.
  • 【176 lbs Max Load & Rounded Safety Corners】 Constructed with heavy-duty steel rails and a solid desktop, this small stand up desk supports up to 176 lbs with exceptional stability while transitioning. The tabletop features smooth rounded corners to protect you, your family, or pets from accidental bumps in tight, compact spaces.
  • 【Rigorously Tested for Long-Lasting Use】 Engineered for daily reliability, our motor and lifting system have been rigorously tested to withstand up to 50,000 lift cycles under full capacity. Enjoy a whisper-quiet, smooth sit-to-stand transition that keeps you focused and productive all day.
  • 【Easy Assembly & Budget-Friendly Choice】 Comes with detailed instructions and all hardware included for a hassle-free, quick setup. Get premium electric sit-stand functionality at an unbeatable, budget-friendly price. Risk-free purchase with dedicated customer support ready to help.

What browser-side Puppeteer can do

Once connected, the API can perform operations on the remote browser, including:

  • Connect over WebSocket and evaluate JavaScript in the remote browser context.
  • Read, create, and close pages; navigate pages; and generate screenshots or PDFs.
  • Inspect and modify cookies.
  • Monitor or intercept network activity.

The page is the location of the Puppeteer client, not the browser being controlled. Actions take place in the separate connected browser.

Choose browser-side, Node.js, or the package that fits

Approach Where the Puppeteer client runs Who provides the browser Use it when
Browser-side Puppeteer with puppeteer-core In a browser page, as a bundled client A separate browser is already running and reachable at a WebSocket endpoint The page itself needs to issue automation calls to that remote browser
Node.js with puppeteer In a Node.js process Puppeteer downloads a compatible Chrome as part of the standard package setup Your application needs the ordinary launch-and-automate workflow
Node.js with puppeteer-core In a Node.js process You supply or manage the browser, or connect to a remote one You need to choose the browser executable or connect to an existing browser

For a conventional Node.js automation task, the flow is to launch a browser, create a page, navigate, and close the browser. If instead the page must issue commands, use the browser-side client and arrange the remote endpoint separately.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Browser and protocol compatibility

Puppeteer’s FAQ, displayed as version 25.12.0 when checked on October 3, 2026, says Puppeteer v23.0.0 onward supports Chrome and Firefox. It describes Chrome DevTools Protocol (CDP) as the default for Chrome and WebDriver BiDi as the default for Firefox, and says WebDriver BiDi support is production-ready for both. The project will continue CDP support for Chrome. These details can change; consult the current Puppeteer FAQ and supported-browser version mapping before choosing versions.

Puppeteer releases are tied to particular browser releases to keep protocol compatibility predictable. Configuration documentation also explains selecting a different Chrome or Chromium executable by path, enabling Firefox downloads, and installing multiple browsers. See the Puppeteer configuration guide for those Node.js or managed-browser setup options.

Rank #3
Dell Optiplex 3060 Desktop Computer | Intel i5-8500 (3.2) | 32GB DDR4 RAM | 1TB SSD Solid State | Built in WiFi | Bluetooth | Windows 11 Professional | Home or Office PC (Renewed)
  • [INTEL POWERED CONTENT] - Built with a 8th Generation Hexa-Core Intel i5 and 32GB of DDR4 RAM; Modern, Windows 11 ready, with 4K support, Executive multitasking, media streaming and smooth, multi-tab web browsing; Perfect as an all-purpose multimedia computer; built for content creators; Plenty of RAM and Mass storage for photo and video editing powered by Intel HD 630
  • [LATEST WIRELESS TECH] - This Dell Desktop Computer easily connects to the internet through the Built In WiFi / Bluetooth
  • [SOLID STATE STORAGE] - This Dell Computer setup comes with an ultra-fast 1TB Solid State Drive (SSD); Setup as the primary boot device; Boot and load programs with lightning speed ; Additional expansion available
  • [BUY & OWN WITH CONFIDENCE] - From the world's largest Microsoft Authorized Refurbisher; Quality Guarantee and Free Tech Support; Award-winning Customer Service; | Support Sustainable Business
  • [MODERN HI-SPEED PORTS] - USB 3.0 (x4) | USB 2.0 (x4) | DisplayPort (x1) | HDMI Port (x1) | Audio Combo Jack (x1) | Audio Out (x1) | RJ-45 Ethernet (x1) | Internal SATA (x3)
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Troubleshooting

The bundle fails to build or runs Node.js-only code

Cause: the browser entry point was not used, browser-targeted dependency resolution is not configured, or code depends on Node.js APIs. Fix: import puppeteer-core/lib/puppeteer/puppeteer-core-browser.js, configure Rollup or Webpack for a browser target, and keep browser launch or download tasks in Node.js.

The page cannot connect to the browser

Cause: the WebSocket URL is missing, invalid, unreachable from the page, or the remote browser is not running with an open debugging endpoint. Fix: verify the endpoint with the system that operates the browser and confirm connectivity from the environment where the page runs. Do not solve connectivity by exposing an unprotected debugging port.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The connection works, but the browser behaves inconsistently

Cause: the installed browser version may not match the Puppeteer release’s supported mapping, or the selected protocol may differ from the expected one. Fix: check the current supported-browser mapping and the FAQ’s CDP/BiDi defaults, then align the browser and Puppeteer versions.

Chrome was not installed after adding Puppeteer

Cause: the project uses puppeteer-core, which does not download Chrome, or the package manager blocked install scripts. Fix: if you intend to manage a local browser, install it using the Puppeteer browser-install command or allow the install script as appropriate. If the page will control a remote browser, install or provide that browser separately and connect to its WebSocket endpoint.

The browser-side client appears to launch nothing

Cause: browser-side Puppeteer does not launch or download browsers. Fix: start and configure the browser outside the page, then connect using its valid WebSocket endpoint; alternatively, move the launch workflow to Node.js.

Rank #4
Sale
VIVO Black 32 in Standing Desk Converter, DESK-V000K
  • Create Instant Active Standing - VIVO’s desk riser provides on-demand standing throughout the day for the freedom to get out of your chair and relieve muscle tension, reduce stress, and increase productivity. --Patented--
  • Space Efficient 31.5" Surface - The top surface measures 31.5” x 15.7”, which maximizes space while still providing room for dual monitors. The 31.3" x 11.8" (10.5" in center) keyboard tray raises in sync with the top surface to create a comfortable workstation.
  • Strong 33 lbs Lift Assist - Go from sitting to standing in one smooth motion using the innovative simple touch height locking mechanism (Adjustment Range: 4.5" to 20"). Lift design elevates straight upwards.
  • Very Minimal Assembly - This riser is almost ready to go right out of the box! Place on your existing desk, attach the keyboard tray, and start organizing your workstation.
  • We've Got You Covered - Sturdy, high-grade steel design is backed with a 3-Year Manufacturer Warranty and friendly tech support to help with any questions or concerns.

Or skip the browser setup

If your goal is simply to capture a website rather than build browser automation into a web page, ScreenshotNeo offers a one-request screenshot API. It accepts a URL and returns a PNG, JPEG, WebP, or PDF. The API also has an MCP server with take_screenshot, get_page_info, and capture_pdf tools for AI agents.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

cURL example, with the target URL adapted from the documented example:

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.com -o shot.webp

See the ScreenshotNeo API documentation for the request options. Cookie banners are accepted and removed before capture; newsletter popups and chat widgets are also removed. Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed, and the response identifies the page verdict and billing status in headers. An MCP server lets AI agents take screenshots. The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 shots.

Sign up for ScreenshotNeo and get 1,000 screenshots a month free with no card.

Frequently Asked Questions

Can I launch a browser with Puppeteer from a web page?

No. Browser-side Puppeteer connects to an already-running browser; launching or downloading a browser depends on Node.js APIs.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Does browser-side Puppeteer require WebSocket access?

Yes. It connects to a separate browser through a valid, reachable WebSocket endpoint.

Which protocol does Puppeteer use for Chrome and Firefox?

The FAQ displayed as version 25.12.0 on October 3, 2026 says CDP is the default for Chrome and WebDriver BiDi for Firefox; check the current FAQ for updates.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.