Route browser traffic to private services through a VPN or tunnel in the browser session
Use network.private_hosts when a browser session joins a VPN or tunnel and must reach private services through that connection. Matching destinations bypass Kernel-managed egress and use the session’s network routes and DNS instead.This is useful for services reachable through Tailscale, a corporate VPN, or another tunnel running inside the browser session.
network.private_hosts is different from network.proxy_routes, which sends selected hosts through a chosen proxy, and a proxy’s bypass_hosts, which chooses between that proxy and Kernel-managed direct egress. Private hosts bypass Kernel-managed egress so traffic can follow routes inside the browser session, including VPN and tunnel routes.
When you omit network.private_hosts, Kernel routes these private IP ranges through the session network by default:
RFC1918: 10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16
CGNAT and Tailscale: 100.64.0.0/10
IPv6 unique local addresses: fc00::/7
These CIDR rules only match URLs that use literal IP addresses. They don’t match a hostname after DNS resolution. Add private DNS names explicitly, even when they resolve to an address in a default range:
You can provide up to 32 entries, each no longer than 255 characters:
Exact hostnames: api.services.example.ts.net
A single leading wildcard: *.services.example.ts.net
Private IPv4 addresses: 10.1.30.63
Bracketed private IPv6 addresses: [fd00::1]
Canonical private CIDRs: 100.64.0.0/10 or fd00::/8
Hostnames or exact IP addresses with ports: api.services.example.ts.net:8443
Kernel rejects public IP ranges, loopback and link-local ranges, URL schemes, paths, catch-all wildcards, ports on CIDRs, and non-canonical CIDRs. Hostnames aren’t resolved during validation, so only add names that identify private destinations.
Changes to a browser pool’s private_hosts apply only to browsers created after the update. Pass discard_all_idle: true in an SDK request, or --discard-all-idle in the CLI, to immediately replace idle browsers with the new configuration. Acquired browsers keep their original private-host configuration until you release them with reuse disabled. Egress allowlist updates follow different replacement and release rules.Use kernel browser-pools update private-services --clear-private-hosts --discard-all-idle to remove a pool override and restore the default private IP ranges. To configure an explicit empty list, use an SDK request with network.private_hosts: [].
{"docsConfig":{"theme":"palm","$schema":"https://mintlify.com/docs.json","name":"Kernel","colors":{"primary":"#212225","light":"#CAB168","dark":"#CAB168"},"logo":{"light":"https://mintcdn.com/tbd-6fc993ce/Lt3m2NlMiCztMtQK/logo/black.svg?fit=max\u0026auto=format\u0026n=Lt3m2NlMiCztMtQK\u0026q=85\u0026s=68e987c751954bbc1d35886a02636c73","dark":"https://mintcdn.com/tbd-6fc993ce/y3CmyOX_b9m5t8tc/logo/white.svg?fit=max\u0026auto=format\u0026n=y3CmyOX_b9m5t8tc\u0026q=85\u0026s=c197f34af93346f9141a9a79870f101e"},"favicon":"https://mintcdn.com/tbd-6fc993ce/G-Oz940pmbilrFx5/favicon.svg?fit=max\u0026auto=format\u0026n=G-Oz940pmbilrFx5\u0026q=85\u0026s=ce38e3ee0e5d07700bccd70f5df08733","appearance":{"default":"light","strict":false},"background":{"color":{"light":"#F0F0F3","dark":"#212225"}},"navbar":{"links":[{"href":"https://dashboard.onkernel.com","label":"Dashboard"},{"href":"https://jobs.ashbyhq.com/usekernel","label":"Careers"}],"primary":{"type":"button","label":"Sign up","href":"https://dashboard.onkernel.com/sign-up"}},"footer":{"socials":{"x":"https://x.com/usekernel","github":"https://github.com/orgs/kernel","linkedin":"https://www.linkedin.com/company/trykernel"}},"seo":{"metatags":{"canonical":"https://www.kernel.sh/docs","og:image":"https://www.kernel.sh/docs/images/og-image.png","twitter:image":"https://www.kernel.sh/docs/images/og-image.png"},"indexing":"all"},"fonts":{"family":"Inter","weight":400},"integrations":{"ga4":{"measurementId":"G-GVEXRLYSN4"}},"contextual":{"options":["copy","chatgpt","claude"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"tbd-6fc993ce","hasAudioNarration":false,"actualSubdomain":"tbd-6fc993ce","customDomains":["www.kernel.sh"],"gitSource":{"type":"github","owner":"kernel","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae4301f0c59e275effff739","collectionId":"801f3a20-be5f-438c-ae29-21e630e0c574","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae4301f0c59e275effff739"},"feedback":{"thumbs":false},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae4af7e5507c0d0db08bc81","clientVersion":"0.0.4043","searchFilterCounts":[{"language":"default","tag":"API Reference","count":166},{"language":"default","tag":"Guides","count":91},{"language":"default","tag":"How it works","count":68},{"language":"default","tag":"Configure","count":39},{"language":"default","tag":"MCP","count":31},{"language":"default","tag":"Vaults","count":23},{"language":"default","tag":"Managed Auth","count":15},{"language":"default","tag":"Partnering with KERNEL","count":15},{"language":"default","tag":"CLI","count":15},{"language":"default","tag":"Browser Filesystem","count":15}]},"assistantConfig":{},"basePath":"/docs","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"*{text-transform:lowercase!important}.kernel-brand-name{text-transform:uppercase!important}.code-group code,.code-group pre,[class*=highlight] code,[class*=highlight] pre,code,code *,kbd,pre,pre *{text-transform:none!important}*,::after,::before{border-radius:0!important}:root{--btn-selected-bg:#CAB168;--btn-border:#000}#navigation-items .sidebar-group-header{font-weight:300!important;font-size:11px!important}html.dark #navigation-items .sidebar-group-header{color:rgba(237,238,240,.55)!important}#navigation-items div[class*=mt-]>.sidebar-group-header{margin-top:.75rem;padding-top:1rem;border-top:1px solid rgba(33,34,37,.1)}html.dark #navigation-items div[class*=mt-]>.sidebar-group-header{border-top-color:rgba(237,238,240,.1)}#navigation-items li[data-title]>button.group,#navigation-items li[data-title]>div.group{width:100%!important;flex-direction:row-reverse!important;justify-content:space-between!important}#navigation-items li[data-title]>button.group>svg,#navigation-items li[data-title]>div.group>svg{margin-right:0!important;margin-left:0!important}.prose table,article table,table{width:100%!important;border-collapse:separate!important;border-spacing:0!important;border-radius:0!important;overflow:hidden!important;border:1px solid rgb(var(--gray-950)/.1)!important;background-color:#f9fafb!important;margin:0!important;display:table!important}.prose table thead th,article table thead th,table thead th{padding:10px 16px!important;text-align:left!important;font-weight:600!important;font-size:.875rem!important;line-height:1.5rem!important;background-color:rgba(0,0,0,.02)!important;border-bottom:1px solid rgba(0,0,0,.1)!important;word-wrap:break-word!important;word-break:break-word!important;overflow-wrap:break-word!important;white-space:normal!important;max-width:0!important}.prose table tbody tr,article table tbody tr,table tbody tr{transition:background-color .15s ease!important;border-bottom:1px solid rgba(0,0,0,.06)!important}.prose table tbody tr:last-child,article table tbody tr:last-child,table tbody tr:last-child{border-bottom:none!important}.prose table tbody tr:hover,article table tbody tr:hover,table tbody tr:hover{background-color:rgba(0,0,0,.02)!important}.prose table tbody td,article table tbody td,table tbody td{padding:10px 16px!important;font-size:.875rem!important;line-height:1.5rem!important;word-wrap:break-word!important;word-break:break-word!important;overflow-wrap:break-word!important;white-space:normal!important;max-width:0!important;min-width:130px!important}.prose table code,article table code,table code{font-size:.8125rem!important;padding:2px 6px!important;border-radius:0!important}.prose code:not(pre *),article code:not(pre *),code:not(pre *){padding:1px 4px!important;background-color:transparent!important;border:1px solid #d0d2d9!important}html.dark .prose code:not(pre *),html.dark article code:not(pre *),html.dark code:not(pre *){border-color:rgba(237,238,240,.1)!important}.prose table tbody td:first-child,article table tbody td:first-child,table tbody td:first-child{font-weight:500!important}.tinker-box{display:flex;flex-direction:column;gap:32px;padding:32px;border:1px solid rgba(0,0,0,.12);margin-top:2rem;margin-bottom:2rem}.tinker-box-row{display:flex;align-items:center;gap:32px}.tinker-box-content{display:flex;flex-direction:column;gap:32px;flex:1;min-width:0}.copy-prompt-full button,.tinker-box-content button{width:100%!important;max-width:100%!important}@media (max-width:640px){.tinker-box{padding:24px;gap:24px}.tinker-box-row{flex-direction:column;align-items:stretch;gap:24px;width:100%}.tinker-box-content{width:100%}}html.dark .callout[class*=yellow],html.dark .prose table,html.dark article table,html.dark table{border-color:rgba(237,238,240,.1)!important;background-color:rgba(237,238,240,.02)!important}html.dark .prose table thead th,html.dark article table thead th,html.dark table thead th{background-color:rgba(237,238,240,.04)!important;border-bottom-color:rgba(237,238,240,.1)!important}html.dark .prose table tbody tr,html.dark article table tbody tr,html.dark table tbody tr{border-bottom-color:rgba(237,238,240,.08)!important}html.dark .prose table tbody tr:hover,html.dark article table tbody tr:hover,html.dark table tbody tr:hover{background-color:rgba(237,238,240,.04)!important}html.dark .tinker-box{border-color:rgba(237,238,240,.14)}html.dark{--btn-border:#EDEEF0}html.dark .callout[class*=yellow]{background-color:rgba(237,238,240,.03)!important}html.dark .callout[class*=yellow] svg{color:#cab168!important}.dark .card:hover{border-color:rgb(223 223 223)!important}.dark .link{border-bottom-color:#edeef0}#navigation-items img[src*=\"/images/integration-icons/\"]{width:14px;height:14px;opacity:.68}#navigation-items img[src*=\"/images/integration-icons/nousresearch.svg\"]{opacity:.72;transform:scale(1.06)}#navigation-items img[src*=\"/images/integration-icons/browser-use-logo-transparent.svg\"]{transform:scale(.9)}#navigation-items img[src*=\"/images/integration-icons/computer-cursor-rounded.svg\"]{transform:scale(.95)}#navigation-items img[src*=\"/images/integration-icons/laminar-outline.svg\"]{transform:scale(.9)}#navigation-items img[src*=\"/images/integration-icons/stagehand-logo-transparent.svg\"]{transform:scale(.88)}#navigation-items img[src*=\"/images/integration-icons/stripe.svg\"]{transform:scale(.82)}#navigation-items img[src*=\"/images/integration-icons/vercel.svg\"]{transform:scale(.76)}#navigation-items img[src*=\"/images/integration-icons/1password-logo-transparent.svg\"]{opacity:.6;transform:scale(.82)}#navigation-items li>button:has(img[src*=\"/images/integration-icons/\"])>div:has(>svg){order:1}#navigation-items li>button:has(img[src*=\"/images/integration-icons/\"])>div:has(>img[src*=\"/images/integration-icons/\"]){order:3}#navigation-items li>button:has(img[src*=\"/images/integration-icons/\"])>div:not(:has(>svg)):not(:has(>img[src*=\"/images/integration-icons/\"])){order:2}html.dark #navigation-items img[src*=\"/images/integration-icons/\"]{filter:invert(1)}#pagination a[href^=\"/cookbooks/\"]{display:none}#header .eyebrow[data-parent-group]{font-size:0}#header .eyebrow[data-parent-group]::after{content:attr(data-parent-group);font-size:.875rem}.cookbook-tag{display:block;font-size:.6875rem;font-weight:400;letter-spacing:-.015em;opacity:.72;margin-bottom:.5rem}html.dark .cookbook-tag{color:rgba(237,238,240,.7)}html[data-current-path=\"/\"] #header>div.prose{display:none!important}"}],"page":{"pagePath":"browsers/private-networking","slug":"/browsers/private-networking","pageMetadata":{"title":"Private Networking","description":"Route browser traffic to private services through a VPN or tunnel in the browser session","href":"/browsers/private-networking"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Route browser traffic to private services through a VPN or tunnel in the browser session\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,CodeGroup,Heading,Info,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!CodeGroup)_missingMdxReference(`CodeGroup`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Use `,_jsx(_components.code,{children:`network.private_hosts`}),` when a browser session joins a VPN or tunnel and must reach private services through that connection. Matching destinations bypass Kernel-managed egress and use the session’s network routes and DNS instead.`]}),`\n`,_jsx(_components.p,{children:`This is useful for services reachable through Tailscale, a corporate VPN, or another tunnel running inside the browser session.`}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`network.private_hosts`}),` is different from `,_jsx(_components.a,{href:`/proxies/routes`,children:_jsx(_components.code,{children:`network.proxy_routes`})}),`, which sends selected hosts through a chosen proxy, and a proxy’s `,_jsx(_components.a,{href:`/proxies/overview#bypass-hosts`,children:_jsx(_components.code,{children:`bypass_hosts`})}),`, which chooses between that proxy and Kernel-managed direct egress. Private hosts bypass Kernel-managed egress so traffic can follow routes inside the browser session, including VPN and tunnel routes.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`configure-a-browser`,children:`Configure a browser`}),`\n`,_jsx(_components.p,{children:`Set private hosts when you create the browser. You can’t change them after creation.`}),`\n`,_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`TypeScript`,numberOfLines:`14`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`14`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` Kernel`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '@onkernel/sdk'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` kernel`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` Kernel`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` browser`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` kernel`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`browsers`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`create`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` network:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` private_hosts:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '*.services.example.ts.net'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '100.64.0.0/10'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`browser`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`session_id`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`Python`,numberOfLines:`14`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`14`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` kernel `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Kernel`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`kernel `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Kernel()`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`browser `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` kernel.browsers.create(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` network`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"private_hosts\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"*.services.example.ts.net\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"100.64.0.0/10\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`print`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(browser.session_id)`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`Go`,numberOfLines:`26`,language:`go`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`go`,children:_jsxs(_components.code,{language:`go`,numberOfLines:`26`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`package`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` main`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#CE9178`},children:`context`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#CE9178`},children:`fmt`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#CE9178`},children:`github.com/kernel/kernel-go-sdk`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`func`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` main`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`() {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` :=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` kernel`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`NewClient`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` browser`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`err`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` :=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Browsers`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`New`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`context`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`Background`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(), `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`kernel`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`BrowserNewParams`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` Network`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`kernel`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`BrowserNetworkConfigParam`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` PrivateHosts`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: []`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#4EC9B0`},children:`string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"*.services.example.ts.net\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"100.64.0.0/10\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` })`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` err`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` !=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` nil`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` panic`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`err`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` fmt`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`Println`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`browser`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`SessionID`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`CLI`,numberOfLines:`3`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`kernel`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` browsers`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` create`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --private-host`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '*.services.example.ts.net'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --private-host`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '100.64.0.0/10'`})]}),`\n`]})})})]}),`\n`,_jsx(Heading,{level:`2`,id:`default-private-routes`,children:`Default private routes`}),`\n`,_jsxs(_components.p,{children:[`When you omit `,_jsx(_components.code,{children:`network.private_hosts`}),`, Kernel routes these private IP ranges through the session network by default:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`RFC1918: `,_jsx(_components.code,{children:`10.0.0.0/8`}),`, `,_jsx(_components.code,{children:`172.16.0.0/12`}),`, and `,_jsx(_components.code,{children:`192.168.0.0/16`})]}),`\n`,_jsxs(_components.li,{children:[`CGNAT and Tailscale: `,_jsx(_components.code,{children:`100.64.0.0/10`})]}),`\n`,_jsxs(_components.li,{children:[`IPv6 unique local addresses: `,_jsx(_components.code,{children:`fc00::/7`})]}),`\n`]}),`\n`,_jsx(_components.p,{children:`These CIDR rules only match URLs that use literal IP addresses. They don’t match a hostname after DNS resolution. Add private DNS names explicitly, even when they resolve to an address in a default range:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"network\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"private_hosts\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"api.services.example.ts.net\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Providing `,_jsx(_components.code,{children:`private_hosts`}),` replaces the default list; it doesn’t add to it. Include any default CIDRs you still need alongside your hostname rules.`]})}),`\n`,_jsx(_components.p,{children:`To disable direct private routing for browser requests and send them through Kernel-managed egress, provide an explicit empty list:`}),`\n`,_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`TypeScript`,numberOfLines:`3`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` browser`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` kernel`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`browsers`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`create`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` network:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`private_hosts:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [] },`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`Python`,numberOfLines:`3`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`browser `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` kernel.browsers.create(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` network`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"private_hosts\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: []}`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`]})})})]}),`\n`,_jsx(Heading,{level:`2`,id:`supported-entries`,children:`Supported entries`}),`\n`,_jsx(_components.p,{children:`You can provide up to 32 entries, each no longer than 255 characters:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Exact hostnames: `,_jsx(_components.code,{children:`api.services.example.ts.net`})]}),`\n`,_jsxs(_components.li,{children:[`A single leading wildcard: `,_jsx(_components.code,{children:`*.services.example.ts.net`})]}),`\n`,_jsxs(_components.li,{children:[`Private IPv4 addresses: `,_jsx(_components.code,{children:`10.1.30.63`})]}),`\n`,_jsxs(_components.li,{children:[`Bracketed private IPv6 addresses: `,_jsx(_components.code,{children:`[fd00::1]`})]}),`\n`,_jsxs(_components.li,{children:[`Canonical private CIDRs: `,_jsx(_components.code,{children:`100.64.0.0/10`}),` or `,_jsx(_components.code,{children:`fd00::/8`})]}),`\n`,_jsxs(_components.li,{children:[`Hostnames or exact IP addresses with ports: `,_jsx(_components.code,{children:`api.services.example.ts.net:8443`})]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Kernel rejects public IP ranges, loopback and link-local ranges, URL schemes, paths, catch-all wildcards, ports on CIDRs, and non-canonical CIDRs. Hostnames aren’t resolved during validation, so only add names that identify private destinations.`}),`\n`,_jsx(Heading,{level:`2`,id:`configure-a-browser-pool`,children:`Configure a browser pool`}),`\n`,_jsx(_components.p,{children:`Put the network configuration on a browser pool when every browser in the pool needs the same private routes.`}),`\n`,_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`TypeScript`,numberOfLines:`7`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`7`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` pool`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` kernel`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`browserPools`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`create`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` name:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'private-services'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` size:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 5`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` network:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` private_hosts:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'*.services.example.ts.net'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`Python`,numberOfLines:`7`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`7`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`pool `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` kernel.browser_pools.create(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"private-services\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` size`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`5`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` network`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"private_hosts\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"*.services.example.ts.net\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`CLI`,numberOfLines:`3`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`kernel`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` browser-pools`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` create`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` private-services`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --size`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 5`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --private-host`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '*.services.example.ts.net'`})]}),`\n`]})})})]}),`\n`,_jsxs(_components.p,{children:[`Changes to a browser pool’s `,_jsx(_components.code,{children:`private_hosts`}),` apply only to browsers created after the update. Pass `,_jsx(_components.code,{children:`discard_all_idle: true`}),` in an SDK request, or `,_jsx(_components.code,{children:`--discard-all-idle`}),` in the CLI, to immediately replace idle browsers with the new configuration. Acquired browsers keep their original private-host configuration until you release them with reuse disabled. `,_jsx(_components.a,{href:`/browsers/egress-allowlists#use-allowlists-with-browser-pools`,children:`Egress allowlist updates`}),` follow different replacement and release rules.`]}),`\n`,_jsxs(_components.p,{children:[`Use `,_jsx(_components.code,{children:`kernel browser-pools update private-services --clear-private-hosts --discard-all-idle`}),` to remove a pool override and restore the default private IP ranges. To configure an explicit empty list, use an SDK request with `,_jsx(_components.code,{children:`network.private_hosts: []`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Private Networking","description":"Route browser traffic to private services through a VPN or tunnel in the browser session","href":"/browsers/private-networking"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Configure a browser","slug":"configure-a-browser","depth":2,"children":[]},{"title":"Default private routes","slug":"default-private-routes","depth":2,"children":[]},{"title":"Supported entries","slug":"supported-entries","depth":2,"children":[]},{"title":"Configure a browser pool","slug":"configure-a-browser-pool","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/tbd-6fc993ce/ab7a5fd22e95880d/conceptual.js","/docs/_mintlify/custom/tbd-6fc993ce/08c6845006936328/eyebrow.js"],"subdomain":"tbd-6fc993ce","siteName":"Kernel","title":"Private Networking - Kernel","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-27T17:14:48.016Z","originalFileLocation":"browsers/private-networking.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Route browser traffic to private services through a VPN or tunnel in the browser session\">\u003cmeta data-mint-head name=\"application-name\" content=\"Kernel\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/tbd-6fc993ce/CjCJZGCXnaix-Ex0/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/tbd-6fc993ce/CjCJZGCXnaix-Ex0/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/tbd-6fc993ce/CjCJZGCXnaix-Ex0/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/tbd-6fc993ce/CjCJZGCXnaix-Ex0/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/tbd-6fc993ce/CjCJZGCXnaix-Ex0/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/tbd-6fc993ce/CjCJZGCXnaix-Ex0/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/tbd-6fc993ce/CjCJZGCXnaix-Ex0/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/tbd-6fc993ce/CjCJZGCXnaix-Ex0/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/tbd-6fc993ce/CjCJZGCXnaix-Ex0/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Private Networking - Kernel\">\u003cmeta data-mint-head property=\"og:description\" content=\"Route browser traffic to private services through a VPN or tunnel in the browser session\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Kernel\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://www.kernel.sh/docs/browsers/private-networking\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://www.kernel.sh/docs/images/og-image.png\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Private Networking - Kernel\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Route browser traffic to private services through a VPN or tunnel in the browser session\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://www.kernel.sh/docs/images/og-image.png\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/tbd-6fc993ce/CjCJZGCXnaix-Ex0/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Kernel\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#212225\">\u003clink data-mint-head rel=\"canonical\" href=\"https://www.kernel.sh/docs/browsers/private-networking\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/browsers/private-networking.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://www.kernel.sh/#organization\",\"name\":\"Kernel\",\"url\":\"https://www.kernel.sh\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/tbd-6fc993ce/Lt3m2NlMiCztMtQK/logo/black.svg?fit=max\u0026auto=format\u0026n=Lt3m2NlMiCztMtQK\u0026q=85\u0026s=68e987c751954bbc1d35886a02636c73\"}},{\"@type\":\"WebSite\",\"@id\":\"https://www.kernel.sh/docs#website\",\"name\":\"Kernel\",\"url\":\"https://www.kernel.sh/docs\",\"publisher\":{\"@id\":\"https://www.kernel.sh/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://www.kernel.sh/docs/browsers/private-networking#webpage\",\"url\":\"https://www.kernel.sh/docs/browsers/private-networking\",\"name\":\"Private Networking\",\"description\":\"Route browser traffic to private services through a VPN or tunnel in the browser session\",\"dateModified\":\"2026-10-27T17:14:48.016Z\",\"isPartOf\":{\"@id\":\"https://www.kernel.sh/docs#website\"}},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://www.kernel.sh/docs/browsers/private-networking#article\",\"headline\":\"Private Networking\",\"name\":\"Private Networking\",\"description\":\"Route browser traffic to private services through a VPN or tunnel in the browser session\",\"url\":\"https://www.kernel.sh/docs/browsers/private-networking\",\"mainEntityOfPage\":{\"@id\":\"https://www.kernel.sh/docs/browsers/private-networking#webpage\"},\"image\":\"https://www.kernel.sh/docs/images/og-image.png\",\"dateModified\":\"2026-10-27T17:14:48.016Z\",\"publisher\":{\"@id\":\"https://www.kernel.sh/#organization\"},\"isPartOf\":{\"@id\":\"https://www.kernel.sh/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Kernel\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Kernel","nav":{"global":null,"tabs":[{"tab":"Guides","groups":[{"group":"Overview","pages":[{"title":"wrangle the wild web","sidebarTitle":"Introduction","mode":"wide","href":""},{"title":"See All Features","mode":"wide","href":"/overview/features"},{"title":"How KERNEL Fits Between Your Agent and the Internet","sidebarTitle":"Important Concepts","mode":"wide","href":"/overview/concepts"},{"title":"Why KERNEL?","href":"/overview/why-kernel"}]},{"group":"Start building","pages":[{"title":"Quickstart","mode":"wide","href":"/start/quickstart"},{"title":"Agent Skills","sidebarTitle":"Agent Skills","mode":"wide","href":"/skills/overview"},{"title":"Integrations","sidebarTitle":"Integrations","mode":"wide","href":"/integrations/overview"},{"title":"cookbooks","sidebarTitle":"Cookbooks","mode":"wide","href":"/cookbooks"}]},{"group":"How it works","pages":[{"group":"Configure","pages":[{"title":"Configure","sidebarTitle":"Overview","mode":"wide","href":"/introduction/configure"},{"group":"Stealth","pages":[{"title":"Stealth","sidebarTitle":"Overview","href":"/browsers/bot-detection/overview"},{"title":"Stealth Mode","href":"/browsers/bot-detection/stealth"},{"title":"Web Bot Auth (WBA)","href":"/browsers/bot-detection/web-bot-auth"}]},{"group":"Proxies","pages":[{"title":"Proxies","sidebarTitle":"Overview","href":"/proxies/overview"},{"title":"Residential Proxies","href":"/proxies/residential"},{"title":"ISP Proxies","href":"/proxies/isp"},{"title":"Mobile Proxies","href":"/proxies/mobile"},{"title":"Custom Proxies","href":"/proxies/custom"},{"title":"Per-Host Proxy Routes","href":"/proxies/routes"},{"title":"Egress Allowlists","href":"/browsers/egress-allowlists"},{"title":"Proxy Errors","href":"/proxies/errors"}]},{"group":"Profiles","pages":[{"title":"Profiles","sidebarTitle":"Overview","href":"/browsers/profiles"},{"title":"Save and Reuse Profile State","sidebarTitle":"Save and Reuse State","href":"/browsers/profiles/save-and-reuse"},{"title":"Profile Sharing and Concurrency","sidebarTitle":"Sharing and Concurrency","href":"/browsers/profiles/concurrency"},{"title":"Browser Profile Patterns for AI Agents","sidebarTitle":"Patterns for AI Agents","href":"/browsers/profiles/agent-patterns"}]},{"group":"Vaults","pages":[{"title":"Vaults","sidebarTitle":"Overview","href":"/vaults/overview"},{"title":"Credential Items","href":"/vaults/credentials"},{"title":"Passkeys","href":"/vaults/passkeys"},{"title":"Use an Existing Credential Vault","href":"/vaults/existing-credential-vault"},{"title":"Fill Browser Fields","href":"/vaults/fill"},{"title":"1Password Agentic Autofill","href":"/vaults/1password"}]},{"group":"Authentication","pages":[{"title":"Authentication","sidebarTitle":"Overview","href":"/auth/overview"},{"title":"Fill from Vault","href":"/auth/fill-from-vault"},{"title":"Fill from Managed Auth","href":"/auth/fill-from-managed-auth"},{"group":"Managed Auth","pages":[{"title":"Managed Auth","sidebarTitle":"Overview","href":"/auth/managed-auth"},{"title":"Hosted UI","href":"/auth/hosted-ui"},{"title":"React Component","href":"/auth/react"},{"title":"Programmatic Flow","href":"/auth/programmatic"},{"title":"Connection Configuration","sidebarTitle":"Configuration","href":"/auth/configuration"},{"title":"Connection Lifecycle","sidebarTitle":"Lifecycle","href":"/auth/connection-lifecycle"}]}]},{"group":"Payments","pages":[{"title":"Payments","sidebarTitle":"Overview","href":"/browsers/payments"},{"title":"Wallets","href":"/integrations/wallets/overview"},{"title":"KERNEL Card","href":"/integrations/wallets/kernel"},{"title":"Link by Stripe","href":"/integrations/wallets/stripe-link"},{"title":"AgentCard","href":"/integrations/wallets/agentcard"},{"title":"Embedded Card Capture","href":"/integrations/wallets/embedded-card-capture"},{"title":"Embedded Card CVC","href":"/integrations/wallets/embedded-card-cvc"}]},{"title":"Config Registry","href":"/config-registry"}]},{"group":"Control","pages":[{"title":"Control","sidebarTitle":"Overview","href":"/introduction/control"},{"title":"Playwright Execution","href":"/browsers/playwright-execution"},{"title":"Computer Controls","href":"/browsers/computer-controls"},{"title":"WebMCP","href":"/browsers/webmcp"},{"title":"Browser REPL","href":"/browsers/repl"},{"title":"Process Execution","href":"/browsers/process-execution"},{"title":"File I/O","href":"/browsers/file-io"},{"group":"Code Execution Platform","pages":[{"title":"Develop an App","sidebarTitle":"Develop","href":"/apps/develop"},{"title":"Deploy an App","sidebarTitle":"Deploy","href":"/apps/deploy"},{"title":"Invoke an App","sidebarTitle":"Invoke","href":"/apps/invoke"},{"title":"Invocation Status","sidebarTitle":"Status","href":"/apps/status"},{"title":"Invocation Logs","sidebarTitle":"Logs","href":"/apps/logs"}]}]},{"group":"Scale","pages":[{"title":"Scale","sidebarTitle":"Overview","href":"/introduction/scale"},{"title":"Concurrency and Limits","href":"/browsers/concurrency-and-limits"},{"title":"Performance","href":"/browsers/performance"},{"title":"Browser Pools","href":"/browsers/pools"}]},{"group":"Observe","pages":[{"title":"Observe","sidebarTitle":"Overview","href":"/introduction/observe"},{"title":"Live View","href":"/browsers/live-view"},{"title":"Replays","href":"/browsers/replays"},{"group":"Browser Telemetry","pages":[{"title":"Browser Telemetry","sidebarTitle":"Overview","href":"/browsers/telemetry/overview"},{"title":"Telemetry Categories","sidebarTitle":"Categories","href":"/browsers/telemetry/categories"},{"title":"Stream Telemetry","sidebarTitle":"Streaming","href":"/browsers/telemetry/streaming"},{"title":"Export Telemetry","sidebarTitle":"Export","href":"/browsers/telemetry/export"}]}]},{"group":"Manage","pages":[{"title":"Manage","sidebarTitle":"Overview","mode":"wide","href":"/introduction/manage"},{"title":"Projects","href":"/info/projects"},{"title":"API Keys","href":"/info/api-keys"},{"title":"API Key Permissions","href":"/info/api-key-permissions"},{"title":"Audit Logs","href":"/info/audit-logs"},{"title":"Allowlist KERNEL Domains","sidebarTitle":"Firewall Allowlist","href":"/info/network-access"}]}]},{"group":"Partnering with KERNEL","pages":[{"group":"Plans and Billing","pages":[{"title":"Pricing","sidebarTitle":"Plans and Pricing","href":"/info/pricing"},{"title":"Spending Caps","href":"/info/spending-caps"},{"title":"Buy a Browser with MPP","href":"/info/mpp"}]},{"group":"Security and Trust","pages":[{"title":"Shared Responsibility Model","href":"/shared-responsibility-model"},{"title":"Trust Center","href":"/info/trust-center"},{"title":"Bug Bounty Program: Scope and Policy","sidebarTitle":"Vulnerability Reporting","href":"/security-vulnerability-reporting"},{"title":"KERNEL Bots and Agents","sidebarTitle":"Verify KERNEL Traffic","href":"/bots"}]},{"group":"Enterprise","pages":[{"title":"Enterprise","sidebarTitle":"Overview","href":"/info/enterprise"},{"title":"Single Sign-On (SSO)","sidebarTitle":"SSO","href":"/info/sso"},{"title":"HIPAA","href":"/info/hipaa"},{"title":"Zero Data Retention","href":"/info/zero-data-retention"},{"title":"Contact Sales","href":"/info/contact-sales"}]},{"group":"Support and Community","pages":[{"title":"Support","href":"/info/support"},{"title":"Discord","url":"https://discord.gg/FBrveQRcud","href":"/community/discord"},{"title":"Github","url":"https://github.com/onkernel/kernel-images","href":"/community/github"}]}]}]},{"tab":"API Reference","groups":[{"group":"Apps","pages":[{"title":"List apps","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /apps","href":"/api-reference/apps/list-apps"}]},{"group":"Audit Logs","pages":[{"title":"List audit logs","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /audit-logs","href":"/api-reference/audit-logs/list-audit-logs"},{"title":"Download an audit-log export chunk","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /audit-logs/export/chunk","href":"/api-reference/audit-logs/download-an-audit-log-export-chunk"},{"title":"List audit log export destinations","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /audit-logs/export/destinations","href":"/api-reference/audit-logs/list-audit-log-export-destinations"},{"title":"Create an audit log export destination","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /audit-logs/export/destinations","href":"/api-reference/audit-logs/create-an-audit-log-export-destination"},{"title":"Retrieve an audit log export destination","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /audit-logs/export/destinations/{id}","href":"/api-reference/audit-logs/retrieve-an-audit-log-export-destination"},{"title":"Delete an audit log export destination","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json delete /audit-logs/export/destinations/{id}","href":"/api-reference/audit-logs/delete-an-audit-log-export-destination"},{"title":"Update an audit log export destination","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json patch /audit-logs/export/destinations/{id}","href":"/api-reference/audit-logs/update-an-audit-log-export-destination"},{"title":"Test an audit log export destination","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /audit-logs/export/destinations/{id}/test","href":"/api-reference/audit-logs/test-an-audit-log-export-destination"}]},{"group":"Managed Auth","pages":[{"title":"List auth connections","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /auth/connections","href":"/api-reference/managed-auth/list-auth-connections"},{"title":"Create auth connection","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /auth/connections","href":"/api-reference/managed-auth/create-auth-connection"},{"title":"Get auth connection","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /auth/connections/{id}","href":"/api-reference/managed-auth/get-auth-connection"},{"title":"Delete auth connection","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json delete /auth/connections/{id}","href":"/api-reference/managed-auth/delete-auth-connection"},{"title":"Update auth connection","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json patch /auth/connections/{id}","href":"/api-reference/managed-auth/update-auth-connection"},{"title":"Stream login flow events via SSE","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /auth/connections/{id}/events","href":"/api-reference/managed-auth/stream-login-flow-events-via-sse"},{"title":"Start login flow","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /auth/connections/{id}/login","href":"/api-reference/managed-auth/start-login-flow"},{"title":"Submit field values","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /auth/connections/{id}/submit","href":"/api-reference/managed-auth/submit-field-values"},{"title":"Get auth connection event timeline","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /auth/connections/{id}/timeline","href":"/api-reference/managed-auth/get-auth-connection-event-timeline"}]},{"group":"Authentication","pages":[{"title":"Get authentication context","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /auth/context","href":"/api-reference/authentication/get-authentication-context"}]},{"group":"Browser Pools","pages":[{"title":"List browser pools","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /browser_pools","href":"/api-reference/browser-pools/list-browser-pools"},{"title":"Create a browser pool","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /browser_pools","href":"/api-reference/browser-pools/create-a-browser-pool"},{"title":"Get browser pool details","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /browser_pools/{id_or_name}","href":"/api-reference/browser-pools/get-browser-pool-details"},{"title":"Delete a browser pool","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json delete /browser_pools/{id_or_name}","href":"/api-reference/browser-pools/delete-a-browser-pool"},{"title":"Update a browser pool","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json patch /browser_pools/{id_or_name}","href":"/api-reference/browser-pools/update-a-browser-pool"},{"title":"Acquire a browser from the pool","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /browser_pools/{id_or_name}/acquire","href":"/api-reference/browser-pools/acquire-a-browser-from-the-pool"},{"title":"Flush all idle browsers in the pool","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /browser_pools/{id_or_name}/flush","href":"/api-reference/browser-pools/flush-all-idle-browsers-in-the-pool"},{"title":"Release a browser back to the pool","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /browser_pools/{id_or_name}/release","href":"/api-reference/browser-pools/release-a-browser-back-to-the-pool"}]},{"group":"Browsers","pages":[{"title":"List browser sessions","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /browsers","href":"/api-reference/browsers/list-browser-sessions"},{"title":"Create a browser session","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /browsers","href":"/api-reference/browsers/create-a-browser-session"},{"title":"Get browser session details","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /browsers/{id_or_name}","href":"/api-reference/browsers/get-browser-session-details"},{"title":"Delete a browser session by ID or name.","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json delete /browsers/{id_or_name}","href":"/api-reference/browsers/delete-a-browser-session-by-id-or-name"},{"title":"Update browser session","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json patch /browsers/{id_or_name}","href":"/api-reference/browsers/update-browser-session"},{"title":"Make an HTTP request through the browser's network stack","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /browsers/{id_or_name}/curl","href":"/api-reference/browsers/make-an-http-request-through-the-browsers-network-stack"},{"title":"Ad-hoc upload one or more unpacked extensions to a running browser instance.","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /browsers/{id_or_name}/extensions","href":"/api-reference/browsers/ad-hoc-upload-one-or-more-unpacked-extensions-to-a-running-browser-instance"},{"title":"Save the current browser state to a profile","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /browsers/{id_or_name}/profiles","href":"/api-reference/browsers/save-the-current-browser-state-to-a-profile"}]},{"group":"Browser Computer Controls","pages":[{"title":"Execute a batch of computer actions sequentially","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /browsers/{id_or_name}/computer/batch","href":"/api-reference/browser-computer-controls/execute-a-batch-of-computer-actions-sequentially"},{"title":"Simulate a mouse click action on the browser instance","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /browsers/{id_or_name}/computer/click_mouse","href":"/api-reference/browser-computer-controls/simulate-a-mouse-click-action-on-the-browser-instance"},{"title":"Read text from the clipboard on the browser instance","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /browsers/{id_or_name}/computer/clipboard/read","href":"/api-reference/browser-computer-controls/read-text-from-the-clipboard-on-the-browser-instance"},{"title":"Write text to the clipboard on the browser instance","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /browsers/{id_or_name}/computer/clipboard/write","href":"/api-reference/browser-computer-controls/write-text-to-the-clipboard-on-the-browser-instance"},{"title":"Set cursor visibility","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /browsers/{id_or_name}/computer/cursor","href":"/api-reference/browser-computer-controls/set-cursor-visibility"},{"title":"Drag the mouse along a path","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /browsers/{id_or_name}/computer/drag_mouse","href":"/api-reference/browser-computer-controls/drag-the-mouse-along-a-path"},{"title":"Get the current mouse cursor position on the browser instance","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /browsers/{id_or_name}/computer/get_mouse_position","href":"/api-reference/browser-computer-controls/get-the-current-mouse-cursor-position-on-the-browser-instance"},{"title":"Move the mouse cursor to the specified coordinates on the browser instance","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /browsers/{id_or_name}/computer/move_mouse","href":"/api-reference/browser-computer-controls/move-the-mouse-cursor-to-the-specified-coordinates-on-the-browser-instance"},{"title":"Press one or more keys on the host computer","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /browsers/{id_or_name}/computer/press_key","href":"/api-reference/browser-computer-controls/press-one-or-more-keys-on-the-host-computer"},{"title":"Capture a screenshot of the browser instance","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /browsers/{id_or_name}/computer/screenshot","href":"/api-reference/browser-computer-controls/capture-a-screenshot-of-the-browser-instance"},{"title":"Scroll the mouse wheel at a position on the host computer","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /browsers/{id_or_name}/computer/scroll","href":"/api-reference/browser-computer-controls/scroll-the-mouse-wheel-at-a-position-on-the-host-computer"},{"title":"Type text on the browser instance","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /browsers/{id_or_name}/computer/type","href":"/api-reference/browser-computer-controls/type-text-on-the-browser-instance"}]},{"group":"Browser Filesystem","pages":[{"title":"Create a new directory","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json put /browsers/{id_or_name}/fs/create_directory","href":"/api-reference/browser-filesystem/create-a-new-directory"},{"title":"Delete a directory","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json put /browsers/{id_or_name}/fs/delete_directory","href":"/api-reference/browser-filesystem/delete-a-directory"},{"title":"Delete a file","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json put /browsers/{id_or_name}/fs/delete_file","href":"/api-reference/browser-filesystem/delete-a-file"},{"title":"Download a directory as a ZIP archive","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /browsers/{id_or_name}/fs/download_dir_zip","href":"/api-reference/browser-filesystem/download-a-directory-as-a-zip-archive"},{"title":"Get information about a file or directory","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /browsers/{id_or_name}/fs/file_info","href":"/api-reference/browser-filesystem/get-information-about-a-file-or-directory"},{"title":"List files in a directory","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /browsers/{id_or_name}/fs/list_files","href":"/api-reference/browser-filesystem/list-files-in-a-directory"},{"title":"Move or rename a file or directory","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json put /browsers/{id_or_name}/fs/move","href":"/api-reference/browser-filesystem/move-or-rename-a-file-or-directory"},{"title":"Read file contents","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /browsers/{id_or_name}/fs/read_file","href":"/api-reference/browser-filesystem/read-file-contents"},{"title":"Set file or directory permissions/ownership","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json put /browsers/{id_or_name}/fs/set_file_permissions","href":"/api-reference/browser-filesystem/set-file-or-directory-permissionsownership"},{"title":"Upload one or more files","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /browsers/{id_or_name}/fs/upload","href":"/api-reference/browser-filesystem/upload-one-or-more-files"},{"title":"Upload a zip archive and extract it","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /browsers/{id_or_name}/fs/upload_zip","href":"/api-reference/browser-filesystem/upload-a-zip-archive-and-extract-it"},{"title":"Watch a directory for changes","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /browsers/{id_or_name}/fs/watch","href":"/api-reference/browser-filesystem/watch-a-directory-for-changes"},{"title":"Stop watching a directory","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json delete /browsers/{id_or_name}/fs/watch/{watch_id}","href":"/api-reference/browser-filesystem/stop-watching-a-directory"},{"title":"Stream filesystem events for a watch","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /browsers/{id_or_name}/fs/watch/{watch_id}/events","href":"/api-reference/browser-filesystem/stream-filesystem-events-for-a-watch"},{"title":"Write or create a file","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json put /browsers/{id_or_name}/fs/write_file","href":"/api-reference/browser-filesystem/write-or-create-a-file"}]},{"group":"Browser Logs","pages":[{"title":"Stream log files on the browser instance via SSE","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /browsers/{id_or_name}/logs/stream","href":"/api-reference/browser-logs/stream-log-files-on-the-browser-instance-via-sse"}]},{"group":"Browser Playwright","pages":[{"title":"Execute Playwright/TypeScript code against the browser","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /browsers/{id_or_name}/playwright/execute","href":"/api-reference/browser-playwright/execute-playwrighttypescript-code-against-the-browser"},{"title":"List Playwright executors","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /browsers/{id_or_name}/playwright/executors","href":"/api-reference/browser-playwright/list-playwright-executors"},{"title":"Delete a Playwright executor","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json delete /browsers/{id_or_name}/playwright/executors/{name}","href":"/api-reference/browser-playwright/delete-a-playwright-executor"}]},{"group":"Browser Processes","pages":[{"title":"Execute a command synchronously","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /browsers/{id_or_name}/process/exec","href":"/api-reference/browser-processes/execute-a-command-synchronously"},{"title":"Execute a command asynchronously","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /browsers/{id_or_name}/process/spawn","href":"/api-reference/browser-processes/execute-a-command-asynchronously"},{"title":"Send signal to process","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /browsers/{id_or_name}/process/{process_id}/kill","href":"/api-reference/browser-processes/send-signal-to-process"},{"title":"Resize a PTY-backed process terminal","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /browsers/{id_or_name}/process/{process_id}/resize","href":"/api-reference/browser-processes/resize-a-pty-backed-process-terminal"},{"title":"Get process status","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /browsers/{id_or_name}/process/{process_id}/status","href":"/api-reference/browser-processes/get-process-status"},{"title":"Write to process stdin","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /browsers/{id_or_name}/process/{process_id}/stdin","href":"/api-reference/browser-processes/write-to-process-stdin"},{"title":"Stream process stdout via SSE","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /browsers/{id_or_name}/process/{process_id}/stdout/stream","href":"/api-reference/browser-processes/stream-process-stdout-via-sse"}]},{"group":"Browser REPL","pages":[{"title":"Execute JavaScript in the persistent Browser REPL","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /browsers/{id_or_name}/repl","href":"/api-reference/browser-repl/execute-javascript-in-the-persistent-browser-repl"}]},{"group":"Browser Replays","pages":[{"title":"List browser session replays","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /browsers/{id_or_name}/replays","href":"/api-reference/browser-replays/list-browser-session-replays"},{"title":"Start a browser session replay recording","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /browsers/{id_or_name}/replays","href":"/api-reference/browser-replays/start-a-browser-session-replay-recording"},{"title":"Download a replay recording","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /browsers/{id_or_name}/replays/{replay_id}","href":"/api-reference/browser-replays/download-a-replay-recording"},{"title":"Stop a browser session replay recording","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /browsers/{id_or_name}/replays/{replay_id}/stop","href":"/api-reference/browser-replays/stop-a-browser-session-replay-recording"}]},{"group":"Browser Telemetry","pages":[{"title":"Read telemetry events for a browser session","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /browsers/{id_or_name}/telemetry/events","href":"/api-reference/browser-telemetry/read-telemetry-events-for-a-browser-session"},{"title":"Stream telemetry events via SSE","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /browsers/{id_or_name}/telemetry/stream","href":"/api-reference/browser-telemetry/stream-telemetry-events-via-sse"},{"title":"List OTLP destinations","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /telemetry/destinations","href":"/api-reference/browser-telemetry/list-otlp-destinations"},{"title":"Create an OTLP destination","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /telemetry/destinations","href":"/api-reference/browser-telemetry/create-an-otlp-destination"},{"title":"Get OTLP destination by ID or name","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /telemetry/destinations/{id_or_name}","href":"/api-reference/browser-telemetry/get-otlp-destination-by-id-or-name"},{"title":"Delete OTLP destination by ID or name","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json delete /telemetry/destinations/{id_or_name}","href":"/api-reference/browser-telemetry/delete-otlp-destination-by-id-or-name"},{"title":"Update OTLP destination by ID or name","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json patch /telemetry/destinations/{id_or_name}","href":"/api-reference/browser-telemetry/update-otlp-destination-by-id-or-name"}]},{"group":"Browser WebMCP","pages":[{"title":"List custom WebMCP tools","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /browsers/{id_or_name}/webmcp/custom-tools","href":"/api-reference/browser-webmcp/list-custom-webmcp-tools"},{"title":"Add custom WebMCP tools","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /browsers/{id_or_name}/webmcp/custom-tools","href":"/api-reference/browser-webmcp/add-custom-webmcp-tools"},{"title":"Remove a custom WebMCP tool","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json delete /browsers/{id_or_name}/webmcp/custom-tools/{id}","href":"/api-reference/browser-webmcp/remove-a-custom-webmcp-tool"},{"title":"Invoke a discovered WebMCP tool","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /browsers/{id_or_name}/webmcp/invoke","href":"/api-reference/browser-webmcp/invoke-a-discovered-webmcp-tool"},{"title":"Discover WebMCP tools across the browser","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /browsers/{id_or_name}/webmcp/tools","href":"/api-reference/browser-webmcp/discover-webmcp-tools-across-the-browser"}]},{"group":"Config Registry","pages":[{"title":"List configs","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /config-registry","href":"/api-reference/config-registry/list-configs"},{"title":"List config analyses","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /config-registry/analyses","href":"/api-reference/config-registry/list-config-analyses"},{"title":"Get a config analysis","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /config-registry/analyses/{id}","href":"/api-reference/config-registry/get-a-config-analysis"},{"title":"Cancel a config analysis","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /config-registry/analyses/{id}/cancel","href":"/api-reference/config-registry/cancel-a-config-analysis"},{"title":"Look up a config","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /config-registry/lookup","href":"/api-reference/config-registry/look-up-a-config"},{"title":"Resolve a config","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /config-registry/resolve","href":"/api-reference/config-registry/resolve-a-config"}]},{"group":"Credentials","pages":[]},{"group":"Deployments","pages":[{"title":"List deployments","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /deployments","href":"/api-reference/deployments/list-deployments"},{"title":"Create a deployment","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /deployments","href":"/api-reference/deployments/create-a-deployment"},{"title":"Get deployment details","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /deployments/{id}","href":"/api-reference/deployments/get-deployment-details"},{"title":"Delete a deployment","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json delete /deployments/{id}","href":"/api-reference/deployments/delete-a-deployment"},{"title":"Stream deployment events via SSE","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /deployments/{id}/events","href":"/api-reference/deployments/stream-deployment-events-via-sse"}]},{"group":"Extensions","pages":[{"title":"List browser extensions","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /extensions","href":"/api-reference/extensions/list-browser-extensions"},{"title":"Upload a browser extension","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /extensions","href":"/api-reference/extensions/upload-a-browser-extension"},{"title":"Download unpacked extension from Chrome Web Store","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /extensions/from_chrome_store","href":"/api-reference/extensions/download-unpacked-extension-from-chrome-web-store"},{"title":"Download extension archive","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /extensions/{id_or_name}","href":"/api-reference/extensions/download-extension-archive"},{"title":"Delete extension by ID or name","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json delete /extensions/{id_or_name}","href":"/api-reference/extensions/delete-extension-by-id-or-name"},{"title":"Get extension metadata","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /extensions/{id_or_name}/metadata","href":"/api-reference/extensions/get-extension-metadata"}]},{"group":"Invocations","pages":[{"title":"List invocations","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /invocations","href":"/api-reference/invocations/list-invocations"},{"title":"Invoke an action","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /invocations","href":"/api-reference/invocations/invoke-an-action"},{"title":"Get invocation details","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /invocations/{id}","href":"/api-reference/invocations/get-invocation-details"},{"title":"Update invocation","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json patch /invocations/{id}","href":"/api-reference/invocations/update-invocation"},{"title":"List browsers for an invocation","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /invocations/{id}/browsers","href":"/api-reference/invocations/list-browsers-for-an-invocation"},{"title":"Delete browser sessions for an invocation","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json delete /invocations/{id}/browsers","href":"/api-reference/invocations/delete-browser-sessions-for-an-invocation"},{"title":"Stream invocation events via SSE","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /invocations/{id}/events","href":"/api-reference/invocations/stream-invocation-events-via-sse"}]},{"group":"API Keys","pages":[{"title":"List API keys","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /org/api_keys","href":"/api-reference/api-keys/list-api-keys"},{"title":"Create an API key","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /org/api_keys","href":"/api-reference/api-keys/create-an-api-key"},{"title":"Get an API key","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /org/api_keys/{id}","href":"/api-reference/api-keys/get-an-api-key"},{"title":"Delete an API key","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json delete /org/api_keys/{id}","href":"/api-reference/api-keys/delete-an-api-key"},{"title":"Update an API key","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json patch /org/api_keys/{id}","href":"/api-reference/api-keys/update-an-api-key"},{"title":"Rotate an API key","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /org/api_keys/{id}/rotate","href":"/api-reference/api-keys/rotate-an-api-key"}]},{"group":"Credential Providers","pages":[]},{"group":"Organization","pages":[{"title":"Get organization entitlements","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /org/entitlements","href":"/api-reference/organization/get-organization-entitlements"},{"title":"Get organization limits","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /org/limits","href":"/api-reference/organization/get-organization-limits"},{"title":"Update organization limits","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json patch /org/limits","href":"/api-reference/organization/update-organization-limits"}]},{"group":"Projects","pages":[{"title":"List projects","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /org/projects","href":"/api-reference/projects/list-projects"},{"title":"Create a project","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /org/projects","href":"/api-reference/projects/create-a-project"},{"title":"Get a project by ID or name","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /org/projects/{id_or_name}","href":"/api-reference/projects/get-a-project-by-id-or-name"},{"title":"Delete a project by ID or name","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json delete /org/projects/{id_or_name}","href":"/api-reference/projects/delete-a-project-by-id-or-name"},{"title":"Update a project by ID or name","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json patch /org/projects/{id_or_name}","href":"/api-reference/projects/update-a-project-by-id-or-name"},{"title":"Get project limits by ID or name","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /org/projects/{id_or_name}/limits","href":"/api-reference/projects/get-project-limits-by-id-or-name"},{"title":"Update project limits by ID or name","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json patch /org/projects/{id_or_name}/limits","href":"/api-reference/projects/update-project-limits-by-id-or-name"},{"title":"List projects","deprecated":true,"version":null,"openapi":"https://api.onkernel.com/spec.json get /projects","href":"/api-reference/projects/list-projects-1"},{"title":"Create a project","deprecated":true,"version":null,"openapi":"https://api.onkernel.com/spec.json post /projects","href":"/api-reference/projects/create-a-project-1"},{"title":"Get a project by ID or name","deprecated":true,"version":null,"openapi":"https://api.onkernel.com/spec.json get /projects/{id_or_name}","href":"/api-reference/projects/get-a-project-by-id-or-name-1"},{"title":"Delete a project by ID or name","deprecated":true,"version":null,"openapi":"https://api.onkernel.com/spec.json delete /projects/{id_or_name}","href":"/api-reference/projects/delete-a-project-by-id-or-name-1"},{"title":"Update a project by ID or name","deprecated":true,"version":null,"openapi":"https://api.onkernel.com/spec.json patch /projects/{id_or_name}","href":"/api-reference/projects/update-a-project-by-id-or-name-1"},{"title":"Get project limits by ID or name","deprecated":true,"version":null,"openapi":"https://api.onkernel.com/spec.json get /projects/{id_or_name}/limits","href":"/api-reference/projects/get-project-limits-by-id-or-name-1"},{"title":"Update project limits by ID or name","deprecated":true,"version":null,"openapi":"https://api.onkernel.com/spec.json patch /projects/{id_or_name}/limits","href":"/api-reference/projects/update-project-limits-by-id-or-name-1"}]},{"group":"Profiles","pages":[{"title":"List profiles","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /profiles","href":"/api-reference/profiles/list-profiles"},{"title":"Create a new profile","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /profiles","href":"/api-reference/profiles/create-a-new-profile"},{"title":"Get profile by ID or name","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /profiles/{id_or_name}","href":"/api-reference/profiles/get-profile-by-id-or-name"},{"title":"Delete profile by ID or name","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json delete /profiles/{id_or_name}","href":"/api-reference/profiles/delete-profile-by-id-or-name"},{"title":"Rename profile by ID or name","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json patch /profiles/{id_or_name}","href":"/api-reference/profiles/rename-profile-by-id-or-name"},{"title":"Download profile archive","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /profiles/{id_or_name}/download","href":"/api-reference/profiles/download-profile-archive"}]},{"group":"Proxies","pages":[{"title":"List proxies","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /proxies","href":"/api-reference/proxies/list-proxies"},{"title":"Create a proxy","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /proxies","href":"/api-reference/proxies/create-a-proxy"},{"title":"Get proxy by ID or name","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /proxies/{id_or_name}","href":"/api-reference/proxies/get-proxy-by-id-or-name"},{"title":"Delete proxy by ID","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json delete /proxies/{id_or_name}","href":"/api-reference/proxies/delete-proxy-by-id"},{"title":"Rename proxy by ID","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json patch /proxies/{id_or_name}","href":"/api-reference/proxies/rename-proxy-by-id"},{"title":"Check proxy health","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /proxies/{id_or_name}/check","href":"/api-reference/proxies/check-proxy-health"}]},{"group":"Vaults","pages":[{"title":"List provider configurations in the organization","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /vault-provider-configs","href":"/api-reference/vaults/list-provider-configurations-in-the-organization"},{"title":"Register a provider configuration","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /vault-provider-configs","href":"/api-reference/vaults/register-a-provider-configuration"},{"title":"Get a provider configuration","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /vault-provider-configs/{id_or_name}","href":"/api-reference/vaults/get-a-provider-configuration"},{"title":"Delete an unused provider configuration","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json delete /vault-provider-configs/{id_or_name}","href":"/api-reference/vaults/delete-an-unused-provider-configuration"},{"title":"Update a provider configuration","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json patch /vault-provider-configs/{id_or_name}","href":"/api-reference/vaults/update-a-provider-configuration"},{"title":"List vaults in the current project","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /vaults","href":"/api-reference/vaults/list-vaults-in-the-current-project"},{"title":"Create or retrieve a vault by immutable name","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /vaults","href":"/api-reference/vaults/create-or-retrieve-a-vault-by-immutable-name"},{"title":"Get a vault","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /vaults/{id_or_name}","href":"/api-reference/vaults/get-a-vault"},{"title":"Delete a vault and invalidate its items","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json delete /vaults/{id_or_name}","href":"/api-reference/vaults/delete-a-vault-and-invalidate-its-items"},{"title":"Get a vault's public key for browser-encrypted credential values","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /vaults/{id_or_name}/encryption_key","href":"/api-reference/vaults/get-a-vaults-public-key-for-browser-encrypted-credential-values"},{"title":"List vault items without secret values","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /vaults/{id_or_name}/items","href":"/api-reference/vaults/list-vault-items-without-secret-values"},{"title":"Get a vault item, its currently available operations, and optionally expanded live data","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /vaults/{id_or_name}/items/{key}","href":"/api-reference/vaults/get-a-vault-item-its-currently-available-operations-and-optionally-expanded-live-data"},{"title":"Create or retrieve an identical vault item by immutable key","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json put /vaults/{id_or_name}/items/{key}","href":"/api-reference/vaults/create-or-retrieve-an-identical-vault-item-by-immutable-key"},{"title":"Delete a vault item and invalidate its secret value","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json delete /vaults/{id_or_name}/items/{key}","href":"/api-reference/vaults/delete-a-vault-item-and-invalidate-its-secret-value"},{"title":"Update a card specification or credential values","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json patch /vaults/{id_or_name}/items/{key}","href":"/api-reference/vaults/update-a-card-specification-or-credential-values"},{"title":"List immutable audit events for a vault item","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json get /vaults/{id_or_name}/items/{key}/events","href":"/api-reference/vaults/list-immutable-audit-events-for-a-vault-item"},{"title":"Perform an operation advertised by a vault item","deprecated":null,"version":null,"openapi":"https://api.onkernel.com/spec.json post /vaults/{id_or_name}/items/{key}/operations","href":"/api-reference/vaults/perform-an-operation-advertised-by-a-vault-item"}]}]},{"tab":"CLI","groups":[{"group":"Getting Started","pages":[{"title":"Kernel CLI","href":"/reference/cli"},{"title":"Create Kernel App","href":"/reference/cli/create"},{"title":"Authentication","href":"/reference/cli/auth"}]},{"group":"Commands","pages":[{"title":"Apps","href":"/reference/cli/apps"},{"title":"Browsers","href":"/reference/cli/browsers"},{"title":"Browser Pools","href":"/reference/cli/browser-pools"},{"title":"Profiles","href":"/reference/cli/profiles"},{"title":"Proxies","href":"/reference/cli/proxies"},{"title":"Extensions","href":"/reference/cli/extensions"},{"title":"Managed Auth","href":"/reference/cli/managed-auth"},{"title":"Projects","href":"/reference/cli/projects"},{"title":"API Keys","href":"/reference/cli/api-keys"},{"title":"Organization","href":"/reference/cli/org"},{"title":"Audit Logs","href":"/reference/cli/audit-logs"},{"title":"MCP","href":"/reference/cli/mcp"}]}]},{"tab":"MCP","groups":[{"group":"Getting Started","pages":[{"title":"MCP Server","href":"/reference/mcp-server"},{"title":"Transports","href":"/reference/mcp-server/transports"},{"title":"Authentication","href":"/reference/mcp-server/authentication"}]},{"group":"Connect Your Client","pages":[{"title":"Claude","href":"/reference/mcp-server/clients/claude"},{"title":"Cursor","href":"/reference/mcp-server/clients/cursor"},{"title":"Google Antigravity","href":"/reference/mcp-server/clients/antigravity"},{"title":"OpenCode","href":"/reference/mcp-server/clients/opencode"},{"title":"fx","href":"/reference/mcp-server/clients/fx"},{"title":"Goose","href":"/reference/mcp-server/clients/goose"},{"title":"Visual Studio Code","href":"/reference/mcp-server/clients/vscode"},{"title":"Windsurf","href":"/reference/mcp-server/clients/windsurf"},{"title":"Zed","href":"/reference/mcp-server/clients/zed"},{"title":"Smithery","href":"/reference/mcp-server/clients/smithery"},{"title":"Other Clients","href":"/reference/mcp-server/clients/others"}]},{"group":"Tools","pages":[{"title":"manage_browsers","href":"/reference/mcp-server/tools/manage-browsers"},{"title":"manage_profiles","href":"/reference/mcp-server/tools/manage-profiles"},{"title":"manage_browser_pools","href":"/reference/mcp-server/tools/manage-browser-pools"},{"title":"manage_proxies","href":"/reference/mcp-server/tools/manage-proxies"},{"title":"manage_extensions","href":"/reference/mcp-server/tools/manage-extensions"},{"title":"manage_apps","href":"/reference/mcp-server/tools/manage-apps"},{"title":"computer_action","href":"/reference/mcp-server/tools/computer-action"},{"title":"execute_playwright_code","href":"/reference/mcp-server/tools/execute-playwright-code"},{"title":"browser_repl","href":"/reference/mcp-server/tools/browser-repl"},{"title":"webmcp","href":"/reference/mcp-server/tools/webmcp"},{"title":"manage_replays","href":"/reference/mcp-server/tools/manage-replays"},{"title":"exec_command","href":"/reference/mcp-server/tools/exec-command"},{"title":"search_docs","href":"/reference/mcp-server/tools/search-docs"}]},{"group":"Resources \u0026 Prompts","pages":[{"title":"Resources","href":"/reference/mcp-server/resources"},{"title":"Prompts","href":"/reference/mcp-server/prompts"}]},{"group":"Reference","pages":[{"title":"Troubleshooting","href":"/reference/mcp-server/troubleshooting"},{"title":"Examples","href":"/reference/mcp-server/examples"}]}]},{"tab":"Changelog","href":"https://www.kernel.sh/changelog"}]},"basePath":"","title":"Private Networking - Kernel","buildId":"dpl_4RHMRqtvdHvKgaEfTTjFqjzja3B6","deploymentId":"dpl_4RHMRqtvdHvKgaEfTTjFqjzja3B6","dynamics":[],"chunks":[]}