<titledata-rh="true">Configuration | Puppeteer</title><metadata-rh="true"name="viewport"content="width=device-width,initial-scale=1"><metadata-rh="true"name="twitter:card"content="summary_large_image"><metadata-rh="true"property="og:url"content="https://pptr.dev/guides/configuration"><metadata-rh="true"name="docsearch:language"content="en"><metadata-rh="true"name="docsearch:counter"content="2"><metadata-rh="true"property="og:title"content="Configuration | Puppeteer"><metadata-rh="true"name="description"content="All defaults in Puppeteer can be customized in two ways:"><metadata-rh="true"property="og:description"content="All defaults in Puppeteer can be customized in two ways:"><linkdata-rh="true"rel="icon"href="/img/favicon.ico"><linkdata-rh="true"rel="canonical"href="https://pptr.dev/guides/configuration"><linkdata-rh="true"rel="alternate"href="https://pptr.dev/guides/configuration"hreflang="en"><linkdata-rh="true"rel="alternate"href="https://pptr.dev/guides/configuration"hreflang="x-default"><linkdata-rh="true"rel="preconnect"href="https://DVKY664LG7-dsn.algolia.net"crossorigin="anonymous"><linkrel="search"type="application/opensearchdescription+xml"title="Puppeteer"href="/opensearch.xml">
as <code>HTTPS_PROXY</code>).</p></div></div><divclass="theme-admonition theme-admonition-caution alert alert--warning admonition_LlT9"><divclass="admonitionHeading_tbUL"><spanclass="admonitionIcon_kALy"><svgviewBox="0 0 16 16"><pathfill-rule="evenodd"d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>caution</div><divclass="admonitionContent_S0QG"><p>Puppeteer's configuration files and environment variables are ignored by <code>puppeteer-core</code>.</p></div></div><h2class="anchor anchorWithStickyNavbar_LWe7"id="configuration-files">Configuration files<ahref="#configuration-files"class="hash-link"aria-label="Direct link to Configuration files"title="Direct link to Configuration files"></a></h2><p>Configuration files are the <strong>recommended</strong> choice for configuring Puppeteer.
Puppeteer will look up the file tree for any of the following formats:</p><ul><li><code>.puppeteerrc.cjs</code>,</li><li><code>.puppeteerrc.js</code>,</li><li><code>.puppeteerrc</code> (YAML/JSON),</li><li><code>.puppeteerrc.json</code>,</li><li><code>.puppeteerrc.yaml</code>,</li><li><code>puppeteer.config.js</code>, and</li><li><code>puppeteer.config.cjs</code></li></ul><p>Puppeteer will also read a <code>puppeteer</code> key from your application's
<code>puppeteer</code> for it to take effect if the changes affect installation.</p></div></div><h3class="anchor anchorWithStickyNavbar_LWe7"id="examples">Examples<ahref="#examples"class="hash-link"aria-label="Direct link to Examples"title="Direct link to Examples"></a></h3><h4class="anchor anchorWithStickyNavbar_LWe7"id="changing-the-default-cache-directory">Changing the default cache directory<ahref="#changing-the-default-cache-directory"class="hash-link"aria-label="Direct link to Changing the default cache directory"title="Direct link to Changing the default cache directory"></a></h4><p>Starting in v19.0.0, Puppeteer stores browsers in <code>~/.cache/puppeteer</code> to
about the ambient environment is needed (in this case, <code>__dirname</code>).</p></div></div><h4class="anchor anchorWithStickyNavbar_LWe7"id="enabling-experiments">Enabling experiments<ahref="#enabling-experiments"class="hash-link"aria-label="Direct link to Enabling experiments"title="Direct link to Enabling experiments"></a></h4><p>By default, experiments are turned off, but they can be individually turned on
using the <ahref="/api/puppeteer.configuration.experiments"><code>experiments</code></a> key.</p><p>For example, if you want to enable ARM-native macOS chromium, you can use</p><divclass="tabs-container tabList__CuJ"><ulrole="tablist"aria-orientation="horizontal"class="tabs"><lirole="tab"tabindex="0"aria-selected="true"class="tabs__item tabItem_LNqP tabs__item--active">CommonJS</li><lirole="tab"tabindex="-1"aria-selected="false"class="tabs__item tabItem_LNqP">JSON</li><lirole="tab"tabindex="-1"aria-selected="false"class="tabs__item tabItem_LNqP">YAML</li></ul><divclass="margin-top--md"><divrole="tabpanel"class="tabItem_Ymn6"><divclass="language-js codeBlockContainer_Ckt0 theme-code-block"style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><divclass="codeBlockTitle_Ktv7">.puppeteerrc.cjs</div><divclass="codeBlockContent_biex"><pretabindex="0"class="prism-code language-js codeBlock_bY9V thin-scrollbar"><codeclass="codeBlockLines_e6Vv"><spanclass="token-line"style="color:#393A34"><spanclass="token comment"style="color:#999988;font-style:italic">/**</span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token comment"style="color:#999988;font-style:italic"> * @type {import("puppeteer").Configuration}</span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token comment"style="color:#999988;font-style:italic"> */</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain">module</span><spanclass="token punctuation"style="color:#393A34">.</span><spanclass="token property-access">exports</span><spanclass="token plain"></span><spanclass="token operator"style="color:#393A34">=</span><spanclass="token plain"></span><spanclass="token punctuation"style="color:#393A34">{</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token literal-property property"style="color:#36acaa">experiments</span><spanclass="token operator"style="color:#393A34">:</span><spanclass="token plain"></span><spanclass="token punctuation"style="color:#393A34">{</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token literal-property property"style="color:#36acaa">macArmChromiumEnabled</span><spanclass="token operator"style="color:#393A34">:</span><spanclass="token plain"></span><spanclass="token boolean"style="color:#36acaa">true</span><spanclass="token punctuation"style="color:#393A34">,</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token punctuation"style="color:#393A34">}</span><spanclass="token punctuation"style="color:#393A34">,</span><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#393A34"><spanclass="token plain"></span><spanclass="token punctuation"style="color:#393A34">}</span><spanclass="token punctuation"style="color:#393A34">;</span><br></span></code></pre><divclass="buttonGroup__atx"><buttontype="button"aria-label="Copy code to clipboard"title="Copy"class="clean-btn"><spanclass="copyButtonIcons_eSgA"aria-hidden="true"><svgclass="copyButtonIcon_y97N"viewBox="0 0 24 24"><pathd="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svgclass="copyButtonSuccessIcon_LjdS"viewBox="0 0 24 24"><pathd="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></div><divrole="tabpanel"class="tabItem_Ymn6"hidden=""><divclass="language-json codeBlockContainer_Ckt0 theme-code-block"style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><divclass="codeBlockTitle_Ktv7">.puppeteerrc.json</div><divclass="codeBlockContent_biex"><pretabindex="0"class="prism-codelanguage-jsoncodeBlock_bY9Vthin-scrollb
<ahref="https://en.wikipedia.org/wiki/Environment_variable"target="_blank"rel="noopener noreferrer">environment variables</a> for
customizing behavior. Environment variables will always override configuration
file options when applicable.</p><p>The following options are <em>environment-only</em> options</p><ul><li><code>HTTP_PROXY</code>, <code>HTTPS_PROXY</code>, <code>NO_PROXY</code> - defines HTTP proxy settings that are