Recommended Free Tools
puppeteer.defaultArgs(options) shows the default browser arguments for a particular launch configuration. To add a flag, use args; to remove Puppeteer-supplied flags, use ignoreDefaultArgs. These options do different things, and the actual defaults depend on the Puppeteer version and launch options.
Inspect the default arguments for your launch
The public defaultArgs() API returns a string[] containing the default arguments Puppeteer would use with the supplied launch options. Query the package installed in your project instead of relying on a copied list: the output can vary with the options and Puppeteer version.
The Puppeteer API documentation is versioned; the documentation referenced here identifies version 25.12.0. That is documentation context, not a claim that every project is running that version.
const puppeteer = require('puppeteer');
const options = {};
const args = await puppeteer.defaultArgs(options);
console.log(args);
For an ES module, import the package and use the same call:
#1 Best Overall
import puppeteer from 'puppeteer';
const options = {};
console.log(await puppeteer.defaultArgs(options));
Pass the relevant launch options when inspecting a particular setup, so you see defaults for that configuration rather than treating an empty-options result as universal. The documented API is described in the Puppeteer defaultArgs reference.
Add an argument or remove a default?
args adds command-line arguments to the launch. It does not mean “replace Puppeteer’s defaults.” ignoreDefaultArgs changes what happens to Puppeteer’s generated defaults: set it to true to suppress them all, or pass an array to filter selected arguments. Its documented default is false.
| Intent | Option | Effect | Scope |
|---|---|---|---|
| Add your own browser flag | args: ['--some-flag'] |
Adds the supplied argument alongside Puppeteer’s defaults. | Additive; the example flag is illustrative, not a built-in default. |
| Remove one Puppeteer-supplied argument | ignoreDefaultArgs: ['--mute-audio'] |
Filters the named argument from Puppeteer’s defaults. | Selective. |
| Suppress Puppeteer’s default arguments | ignoreDefaultArgs: true |
Does not use the generated default argument set. | Broad; changes the whole default set. |
Add a flag with args
const browser = await puppeteer.launch({
args: ['--some-flag'],
});
Replace --some-flag with the browser argument your use case requires. This example illustrates the option; it does not assert that the flag is a Puppeteer default or suitable for every browser.
Rank #2
Filter one default with ignoreDefaultArgs
Puppeteer’s documented launch example selectively removes --mute-audio:
const browser = await puppeteer.launch({
ignoreDefaultArgs: ['--mute-audio'],
});
Use this form when you have a specific reason to remove a particular generated argument. Puppeteer cautions: “Use this with care – you probably want the default arguments Puppeteer uses.”
Suppressing all defaults is a different choice
ignoreDefaultArgs: true is not a shortcut for adding a custom flag; it suppresses Puppeteer’s default argument set. The API advises care, and the documentation does not establish a universal list of failures caused by doing this. Do not assume it is a routine optimization: make the change only when you intend to take responsibility for the launch arguments, and verify the resulting browser behavior for your setup.
Choose the browser binary with the arguments in mind
Arguments are used to launch a browser, so the executable matters too. Puppeteer lists Chrome as the default browser and supports an executablePath override. It says it works best with the Chrome for Testing binary it downloads by default and does not guarantee compatibility with arbitrary Chrome versions. When specifying a custom executable path, the LaunchOptions documentation recommends setting the browser property because Chrome is otherwise the default.
With puppeteer-core, provide either executablePath or channel. For that package, choose and verify the browser explicitly rather than expecting the bundled-browser setup used by puppeteer. See the LaunchOptions reference and launch method reference for the documented options and compatibility context.
| Browser choice | What the documentation establishes | Practical implication |
|---|---|---|
| Puppeteer’s downloaded Chrome for Testing | Puppeteer says it works best with this binary and guarantees compatibility with its bundled browser. | Prefer it when you want the documented compatibility baseline. |
| Custom executable or channel | Other Chrome versions are not guaranteed; puppeteer-core requires executablePath or channel. |
Use the documentation for your package and launch method, then validate the exact browser/version combination. |
The Puppeteer browsers package has its own browser-launcher options surface. Do not assume its LaunchOptions are interchangeable with the Node puppeteer.launch() interface; consult the reference for the API you are calling.
Rank #4
Troubleshoot argument configuration
- Your custom flag seems to replace defaults. Check whether you used
argsorignoreDefaultArgs.argsadds arguments; the latter controls Puppeteer’s generated defaults. - A Puppeteer argument is still present. Inspect
await puppeteer.defaultArgs(options)with the launch options you actually use, then filter the specific argument with anignoreDefaultArgsarray if that is the intended change. - The launch behaves differently from a copied argument list. Query the installed package and relevant options. A list from another version, configuration, platform, or browser is not established as your launch’s default list.
- A custom Chrome executable behaves unexpectedly. Confirm the chosen executable and browser setting, and account for the fact that Puppeteer does not guarantee compatibility with arbitrary Chrome versions. With
puppeteer-core, supplyexecutablePathorchannel. - Many browser behaviors change after setting
ignoreDefaultArgs: true. That setting suppresses the whole default set, not a single flag. Use a selective array when only one default needs filtering.
Capture a page without managing browser arguments
If your goal is a website screenshot rather than control of a Puppeteer browser session, ScreenshotNeo is a website screenshot API and MCP server from Yorker Media. Its API takes a URL in a GET request and returns an image or PDF; it avoids setting up browser launch arguments for that capture workflow.
Or skip the browser setup
Make one request with your ScreenshotNeo API key and target URL. Replace the URL below as needed; the response is saved as a WebP file. See the ScreenshotNeo API documentation for request options.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
ScreenshotNeo accepts cookie and consent banners like a visitor, then removes 60+ known consent platforms, newsletter popups, and chat widgets before capture; each step can be turned off. Bot checks/CAPTCHAs, blank pages, timeouts, failed loads, and cache hits cost nothing, and responses identify page verdict and billing status in headers. An MCP server offers take_screenshot, get_page_info, and capture_pdf tools for Claude, Cursor, and other MCP clients. The Free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Scan for outdated or missing drivers - takes under a minute3Clear out junk files and repair common Windows errorsSign up free for 1,000 screenshots a month, with no card.
Best Value
- Used Book in Good Condition
Frequently Asked Questions
What does `puppeteer.defaultArgs()` return?
It returns a string array of Puppeteer’s default browser launch arguments for the options supplied.
Does `args` replace Puppeteer’s defaults?
No. `args` adds command-line arguments; `ignoreDefaultArgs` controls whether Puppeteer’s defaults are used or filtered.
Can `puppeteer-core` launch without specifying a browser executable?
The documented requirement is to provide either `executablePath` or `channel`.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Quick Recap
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.




