Recommended Free Tools
Use Puppeteer’s browser-level browser.uninstallPWA() method to remove a Progressive Web App installed through Puppeteer’s PWA workflow. Launch Puppeteer with pipe: true: the PWA API is available over a pipe connection, not a WebSocket connection. You’ll also need the app’s manifest ID, which you can retain from installPWA().
Uninstall a PWA with Puppeteer
The basic sequence is to launch Chromium with the required pipe transport, pass the app’s manifest ID to uninstallPWA(), and close the browser when finished:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({ pipe: true });
try {
const manifestId = 'YOUR_PWA_MANIFEST_ID';
await browser.uninstallPWA({ manifestId });
} finally {
await browser.close();
}
})();
Replace YOUR_PWA_MANIFEST_ID with the ID for the PWA installed in this browser. This example shows the documented call relationship; it does not establish that the app was installed or that a particular run succeeded. Check the API types for your installed Puppeteer version to confirm the supported UninstallPWAOptions fields.
Requirements before you run it
- Puppeteer version: The PWA install, launch, and uninstall methods were added in Puppeteer 25.4.0, according to its changelog. The documentation consulted for this article reported version 25.12.0, with a changelog entry dated 2026-09-23; releases may change, so verify the installed version and current API reference.
- Pipe transport: Start Puppeteer with
pipe: true. The documented PWA API family is not exposed over a WebSocket connection. - Manifest ID: Supply the manifest ID for the PWA. If your script installed it, preserve the ID returned by
installPWA()rather than trying to reconstruct it later. - Matching browser state: The method applies to a PWA previously installed in the browser used for the workflow. The documentation describes the Puppeteer API workflow; it does not establish how to remove apps installed through other means.
Install and uninstall in one script
If the same script owns the app lifecycle, save the ID returned by installPWA() and pass it directly to uninstallPWA(). Use the exact install options required by the Puppeteer version in your project; consult that version’s API types for the full option shape.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minutePC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11#1 Best Overall
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({ pipe: true });
try {
const installed = await browser.installPWA({
// Add the install options required by your Puppeteer version.
});
const manifestId = installed.manifestId;
await browser.uninstallPWA({ manifestId });
} finally {
await browser.close();
}
})();
The example emphasizes retaining and reusing the returned ID. The install options and returned-value details can vary with the API version, so confirm the precise types in the version you have installed.
What does not uninstall the PWA
- Bypassing a service worker:
page.setBypassServiceWorker(true)changes how page requests interact with the service worker. It is not the PWA uninstall operation. - Closing a browser context: A context closes its pages and isolates cookies and local storage. The documented context behavior does not say that closing a context uninstalls a PWA.
- Uninstalling an extension:
browser.uninstallExtension(id)is for Chrome extensions, not installed PWAs. - Connecting over WebSocket: Do not assume a regular remote-debugging WebSocket connection can call these methods; the PWA API is documented for pipe connections.
Troubleshooting
The PWA method is unavailable
Check that your installed Puppeteer release includes the browser-level PWA methods and that the browser was launched with pipe: true. The changelog records their introduction in version 25.4.0. A WebSocket connection does not satisfy the documented transport requirement.
Rank #2
The uninstall call does not identify the app
Check that you are passing the manifest ID associated with the PWA installed in this browser. If your script called installPWA(), use the ID it returned. Confirm the option’s exact field name and shape in the API types for your installed version.
You changed service-worker behavior but the app remains installed
Service-worker bypass is a request-handling setting, not an uninstall. Call browser.uninstallPWA({ manifestId }) over the required pipe connection instead.
Free tools Windows power users keep installed
One-click scans. No signup required.
The browser process is still running
When your script launched the browser and should stop it, call await browser.close(). browser.disconnect() disconnects Puppeteer while leaving the browser process running, so it is not a substitute for closing a browser launched by the script.
Or skip the browser setup
ScreenshotNeo is a website screenshot API, not a PWA uninstaller; it cannot remove an installed app. If your actual goal is to capture a page rather than uninstall its PWA, one GET request can return an image or PDF. See the ScreenshotNeo API documentation.
Quick Recap
Best Value
- Used Book in Good Condition
Rank #4
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
For screenshots, ScreenshotNeo removes cookie and consent banners, newsletter popups, and chat widgets before capture; bot checks, blank pages, and failed loads are never billed. It also provides an MCP server for AI agents. The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000. Learn about ScreenshotNeo or sign up free.
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.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →

