Safely migrate browser automation from another provider to Notte with an AI coding agent.
AI agent instructions
Read the Notte skill and follow its setup instructions when setting up Notte or building browser automation. This is the shared source for CLI setup, authentication, and the browser-to-code workflow.
Use the Notte migration skills to move an existing browser-automation codebase
to Notte with a visible plan, measured baseline, safe proof, tests, and a
reversible rollout.
Copy the prompt below into Codex, Claude Code, Cursor, or another supported
coding agent from the root of the repository you want to migrate.
Use $migrate-to-notte to assess and migrate this codebase to Notte.Start by publishing a clear, user-visible phase plan. Complete the NotteQuickstart before inspecting the repository. Detect the current browserprovider, inventory every workflow and dependency, measure the current cost andlatency where data is available, and run a safe read-only Notte proof.Build the replacement progressively in an isolated area, add tests, run staticanalysis and the full relevant test suite, and preserve public contracts. Keepevery change reversible. Do not touch production resources, credentials,billing, or deploy to production without my explicit approval.
The skill routes the agent to the right provider-specific migration reference
and keeps progress visible throughout the work. It also compares your current
provider’s cost with an equivalent Notte workload, so you can ask for that
comparison before starting the migration.
{"docsConfig":{"theme":"maple","$schema":"https://mintlify.com/docs.json","name":"Notte","colors":{"primary":"#00b85c","light":"#00e673","dark":"#e8f6ee"},"logo":{"light":"https://mintcdn.com/notte/laVxhSjtZz3-wqG3/logo/notte-mark.svg?fit=max\u0026auto=format\u0026n=laVxhSjtZz3-wqG3\u0026q=85\u0026s=24bf291bf5f0deaffd706a98e4ba64e7","dark":"https://mintcdn.com/notte/laVxhSjtZz3-wqG3/logo/notte-mark-white.svg?fit=max\u0026auto=format\u0026n=laVxhSjtZz3-wqG3\u0026q=85\u0026s=9898271cf9d0f9b8288a4c06c4500a34"},"favicon":"https://mintcdn.com/notte/FewygNQL9LWqZVN9/favicon.ico?fit=max\u0026auto=format\u0026n=FewygNQL9LWqZVN9\u0026q=85\u0026s=c47e1c916946dc16f44dd6af719e2633","appearance":{"default":"light","strict":false},"navbar":{"links":[{"icon":"arrow-up-right-from-square","href":"https://join.slack.com/t/nottelabs-dev/shared_invite/zt-39a8n6hr9-d_BG7RNfytimSpVo5H03mA","label":"Support"},{"icon":"arrow-up-right-from-square","href":"https://cal.com/team/notte/demo","label":"Book Demo"},{"icon":"arrow-up-right-from-square","href":"https://console.notte.cc","label":"Sign In"}]},"footer":{"socials":{"github":"https://github.com/nottelabs/notte","x":"https://x.com/nottecore","linkedin":"https://www.linkedin.com/company/nottelabsinc"}},"banner":{"content":"Supercharge your AI agents with the Notte CLI and MCP. [Use this quickstart prompt for AI.](/quickstart)","dismissible":false,"color":{"light":"#e8f6ee","dark":"#163528"}},"errors":{"404":{"redirect":true}},"contextual":{"options":["copy","chatgpt","claude","cursor"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"notte","hasAudioNarration":false,"actualSubdomain":"notte","customDomains":["docs.notte.cc"],"gitSource":{"type":"github","owner":"nottelabs","repo":"notte","deployBranch":"main","contentDirectory":"docs/src","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae21a9283326b7b15ea4045","collectionId":"c86937f2-023a-45a5-b0ad-610c5ba906d5","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae21a9283326b7b15ea4045"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae21a9283326b7b15ea4045","clientVersion":"0.0.4005","searchFilterCounts":[{"language":"default","tag":"APIs and SDKs","count":285},{"language":"default","tag":"Core Features","count":116},{"language":"default","tag":"Node SDK","count":111},{"language":"default","tag":"APIs","count":98},{"language":"default","tag":"Python SDK","count":73},{"language":"default","tag":"Integrations","count":60},{"language":"default","tag":"Tooling","count":52},{"language":"default","tag":"Actions","count":46},{"language":"default","tag":"Documentation","count":36},{"language":"default","tag":"Session","count":36}]},"assistantConfig":{"enableStarterQuestions":true,"deflection":{"enabled":true,"email":"support@notte.cc"}},"basePath":"","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":"editor-v7-file-tree","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":"pause-universal-search-reconcile","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":"per-site-search-delta","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":"editor-private-page-search","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":"editor-nav-generations","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":"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":"editor-agent-model-picker","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":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"starterQuestions":[{"_id":"69615ec9c36d7b5b2b632811","deploymentId":"67325cb675ec6a1a358ff41d","questionText":"What are Notte functions?","status":"active","generatedBy":"manual","createdAt":"2026-01-09T20:02:17.860Z","updatedAt":"2026-01-09T20:02:17.860Z","__v":0},{"_id":"69615eb6c36d7b5b2b632274","deploymentId":"67325cb675ec6a1a358ff41d","questionText":"How do sessions manage browser state?","status":"active","generatedBy":"manual","createdAt":"2026-01-09T20:01:58.737Z","updatedAt":"2026-01-09T20:01:58.737Z","__v":0},{"_id":"69615e9fc36d7b5b2b631ad3","deploymentId":"67325cb675ec6a1a358ff41d","questionText":"How do I create my first agent?","status":"active","generatedBy":"manual","createdAt":"2026-01-09T20:01:35.768Z","updatedAt":"2026-01-09T20:01:35.768Z","__v":0}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"@keyframes notte-copy-confirm{0%{transform:scale(.985)}65%{transform:scale(1.008)}to{transform:scale(1)}}:root{--banner-bg-light:#e8f6ee;--banner-bg-dark:#163528}#banner{--banner-bg-light:#e8f6ee;--banner-bg-dark:#163528;height:2.5rem!important;min-height:2.5rem!important;max-height:2.5rem!important;padding:0 1rem!important;overflow:hidden!important;background:#e8f6ee!important;background-image:none!important;border-top:none!important;border-bottom:none!important;box-shadow:none!important;isolation:isolate}#banner,header#navbar{background-color:#e8f6ee!important}#banner>div{margin:0 auto!important;max-width:72rem}#banner p{margin:0!important;line-height:1.45}#banner,#banner *,#banner a:hover,#banner code{color:#14532d!important}#banner code{border:1px solid #b7dccb;background:#d8efe4!important}#banner a{color:#007038!important;text-decoration-color:rgba(0,112,56,.45)!important}#banner a:hover{text-decoration-color:#14532d!important}:is(html.dark, html[data-theme=\"dark\"], body.dark, body[data-theme=\"dark\"]) #banner{background-color:#163528!important;border-bottom:none!important;color:#d2f6e2!important}:is(html.dark, html[data-theme=\"dark\"], body.dark, body[data-theme=\"dark\"]) header#navbar{background-color:#163528!important}:is(html.dark, html[data-theme=\"dark\"], body.dark, body[data-theme=\"dark\"]) #banner *{color:#d2f6e2!important}:is(html.dark, html[data-theme=\"dark\"], body.dark, body[data-theme=\"dark\"]) #banner code{border-color:#2a5a42;background:#1a3d2e!important;color:#dcffec!important}:is(html.dark, html[data-theme=\"dark\"], body.dark, body[data-theme=\"dark\"]) #banner a{color:#98ffc5!important;text-decoration-color:rgba(152,255,197,.55)!important}:is(html.dark, html[data-theme=\"dark\"], body.dark, body[data-theme=\"dark\"]) #banner a:hover{color:#dcffec!important;text-decoration-color:#dcffec!important}@layer theme{html.light #banner,html.light #banner *{color:#14532d!important}html.light #banner a{color:#007038!important;text-decoration-color:rgba(0,112,56,.45)!important}html.light #banner a:hover{color:#14532d!important;text-decoration-color:#14532d!important}}.notte-fast-setup{margin:1rem 0 .75rem;padding:clamp(1.5rem,3.2vw,2.5rem);border:1px solid rgba(0,230,115,.18);border-radius:.875rem;background:0 0}.notte-fast-setup__header{display:flex;flex-direction:column;gap:.4rem}.notte-fast-setup__title{margin:0!important;font-size:1.35rem!important;font-weight:700!important;line-height:1.3!important;color:var(--tw-prose-headings, inherit)!important}.notte-fast-setup__desc{margin:.4rem 0 0!important;max-width:60rem;color:#aab9b2;font-size:.95rem!important;line-height:1.6!important}.notte-fast-setup__divider{height:1px;margin:1.5rem 0;background:rgba(0,230,115,.12)}.notte-fast-setup__button{display:flex;align-items:center;gap:1rem;width:100%;padding:.875rem 1.25rem;border:1px solid rgba(0,230,115,.22);border-radius:.75rem;background:rgba(0,184,92,.05);font:inherit;cursor:pointer;transition:background-color 160ms ease,border-color 160ms ease,box-shadow 160ms ease}.notte-fast-setup__button:hover{background:rgba(0,184,92,.1);border-color:rgba(0,230,115,.35);box-shadow:0 2px 12px rgba(0,184,92,.1)}.notte-fast-setup__button:active{background:rgba(0,184,92,.14)}.notte-fast-setup__button.is-copied{animation:notte-copy-confirm 260ms ease-out;border-color:rgba(0,230,115,.4)}.notte-fast-setup__button:focus-visible{outline:2px solid rgba(0,190,95,.5);outline-offset:2px}.notte-fast-setup__button-icon-wrap{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border-radius:50%;background:rgba(0,184,92,.1)}.notte-fast-setup__button-text{display:flex;flex-direction:column;text-align:left;flex:1;gap:.125rem}.notte-fast-setup__button-label{color:#00e673;font-weight:600;font-size:.95rem}.notte-fast-setup__button-subtitle{color:#8c9b94;font-size:.82rem}.notte-fast-setup__button-arrow{flex-shrink:0;opacity:.6;transition:opacity 160ms ease,transform 160ms ease}.notte-fast-setup__button:hover .notte-fast-setup__button-arrow{opacity:1;transform:translateX(2px)}.notte-fast-setup__features{display:grid;grid-template-columns:repeat(4,1fr);margin-top:1.5rem}.notte-fast-setup__feature{display:flex;align-items:center;justify-content:center;gap:1rem;padding:.25rem .75rem;border-right:1px solid rgba(0,230,115,.1)}.notte-fast-setup__feature>svg{flex-shrink:0;align-self:center}.notte-fast-setup__feature:last-child{border-right:none}.notte-fast-setup__feature-title{display:block;font-weight:600;font-size:.85rem}.notte-fast-setup__feature-sub{display:block;color:#8c9b94;font-size:.78rem}html:not(.dark) .notte-fast-setup{border-color:rgba(0,140,70,.15);background:0 0}html:not(.dark) .notte-fast-setup__desc{color:#505f58}html:not(.dark) .notte-fast-setup__divider{background:rgba(0,140,70,.1)}html:not(.dark) .notte-fast-setup__button{border-color:rgba(0,140,70,.15);background:rgba(0,160,80,.04)}html:not(.dark) .notte-fast-setup__button:hover{background:rgba(0,160,80,.08);border-color:rgba(0,140,70,.25);box-shadow:0 2px 12px rgba(0,140,70,.06)}html:not(.dark) .notte-fast-setup__button-icon-wrap{background:rgba(0,160,80,.08)}html:not(.dark) .notte-fast-setup__button-label{color:#008c46}html:not(.dark) .notte-fast-setup__button-subtitle{color:#64736c}html:not(.dark) .notte-fast-setup__feature{border-color:rgba(0,140,70,.1)}html:not(.dark) .notte-fast-setup__feature-sub{color:#64736c}@media (max-width:720px){.notte-fast-setup{padding:1.25rem}.notte-fast-setup__features{grid-template-columns:repeat(2,1fr);gap:.75rem}.notte-fast-setup__feature{border-right:none;padding:0}}@font-face{font-family:\"Geist Mono\";src:url(/fonts/GeistMonoVF.woff) format(\"woff\");font-weight:100 900;font-style:normal;font-display:swap}a:has(>.nav-logo){display:inline-flex;align-items:center}a:has(>.nav-logo) .nav-logo{width:22px;height:22px;max-width:22px;padding:0}a:has(>.nav-logo)::after{content:\"Documentation\";margin-left:.375rem;font-family:\"Geist Mono\",ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;font-size:1rem;font-weight:700;letter-spacing:.025em;line-height:1;text-transform:uppercase;white-space:nowrap;color:hsl(240 10% 3.9%)}html.dark a:has(>.nav-logo)::after,html[data-theme=dark] a:has(>.nav-logo)::after{color:hsl(0 0% 98%)}.notte-sidebar-toggle{display:none;position:relative;align-items:center;justify-content:center;flex-shrink:0;width:2rem;height:2rem;padding:0;border:0;border-radius:.375rem;background:0 0;color:hsl(240 10% 3.9%);cursor:pointer}html.dark .notte-sidebar-toggle,html[data-theme=dark] .notte-sidebar-toggle{color:hsl(0 0% 98%)}.notte-toggle-icon,.notte-toggle-logo{display:none;align-items:center;justify-content:center;width:22px;height:22px}#notte-sidebar-tooltip.is-visible,.notte-toggle-icon{display:flex}.notte-toggle-logo img{width:22px;height:22px}.notte-toggle-logo-light{display:block}.notte-toggle-logo-dark,html.dark .notte-toggle-logo-light,html[data-theme=dark] .notte-toggle-logo-light{display:none}.notte-sidebar-toggle svg,html.dark .notte-toggle-logo-dark,html[data-theme=dark] .notte-toggle-logo-dark{display:block}.notte-sidebar-toggle:hover{background:rgba(10,10,10,.05)}.notte-sidebar-toggle:focus-visible{outline:2px solid rgba(0,190,95,.5);outline-offset:2px}html.dark .notte-sidebar-toggle:hover,html[data-theme=dark] .notte-sidebar-toggle:hover{background:rgba(255,255,255,.05)}#notte-sidebar-tooltip{position:fixed;z-index:2147483647;display:none;align-items:center;gap:.25rem;padding:.375rem .75rem;border:1px solid hsl(240 5.9% 90%);border-radius:.375rem;background:hsl(0 0% 100%);color:hsl(240 10% 3.9%);font-size:.875rem;font-weight:400;line-height:1.25;white-space:nowrap;box-shadow:0 4px 6px -1px rgb(0 0 0/.1),0 2px 4px -2px rgb(0 0 0/.1);pointer-events:none}#notte-sidebar-tooltip .notte-toggle-tooltip-shortcut{color:hsl(240 3.8% 46.1%);font-weight:500}html.dark #notte-sidebar-tooltip,html[data-theme=dark] #notte-sidebar-tooltip{border-color:hsl(240 3.7% 15.9%);background:hsl(240 10% 3.9%);color:hsl(0 0% 98%)}html.dark #notte-sidebar-tooltip .notte-toggle-tooltip-shortcut,html[data-theme=dark] #notte-sidebar-tooltip .notte-toggle-tooltip-shortcut{color:hsl(240 5% 64.9%)}@media (min-width:1024px){html:not([data-page-mode=custom]):not([data-page-mode=center]) .notte-sidebar-toggle{display:inline-flex}#navbar-transition-maple,#navbar-transition-maple[data-is-opaque=false],#navbar-transition-maple[data-is-opaque=true]{top:var(--banner-height, 2.5rem)!important;margin-top:0!important;z-index:40;isolation:isolate;background:#fff!important;background-color:#fff!important;background-image:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}html.dark #navbar-transition-maple,html.dark #navbar-transition-maple[data-is-opaque=false],html.dark #navbar-transition-maple[data-is-opaque=true],html[data-theme=dark] #navbar-transition-maple,html[data-theme=dark] #navbar-transition-maple[data-is-opaque=false],html[data-theme=dark] #navbar-transition-maple[data-is-opaque=true]{background:#0a0a0b!important;background-color:#0a0a0b!important;background-image:none!important}#navbar-transition-maple::before{content:\"\";position:absolute;inset:0;z-index:0;pointer-events:none;background-color:#fff}html.dark #navbar-transition-maple::before,html[data-theme=dark] #navbar-transition-maple::before{background-color:#0a0a0b}#navbar-transition-maple>*{position:relative;z-index:1}#navbar-transition-maple .notte-sidebar-toggle{margin-right:.75rem;align-self:center}html.notte-sidebar-hidden .notte-sidebar-toggle{display:none!important}html.notte-sidebar-hidden #sidebar{display:flex!important;width:3rem!important;min-width:3rem!important;max-width:3rem!important;overflow:hidden;align-items:flex-start;justify-content:flex-start}html.notte-sidebar-hidden #sidebar-content,html.notte-sidebar-hidden #sidebar>:not(#notte-sidebar-rail-toggle){display:none!important}html.notte-sidebar-hidden #content-container{margin-left:3rem!important}html.notte-sidebar-hidden #navbar-transition-maple{left:3rem!important}.notte-sidebar-rail-toggle{display:none}html.notte-sidebar-hidden .notte-sidebar-rail-toggle{display:inline-flex;position:absolute;top:.5rem;right:auto;bottom:auto;left:50%;transform:translateX(-50%);align-items:center;justify-content:center;width:2rem;height:2rem;margin:0;padding:0;border:0;border-radius:.375rem;background:0 0;color:hsl(240 10% 3.9%);cursor:pointer;z-index:2}html.dark.notte-sidebar-hidden .notte-sidebar-rail-toggle,html[data-theme=dark].notte-sidebar-hidden .notte-sidebar-rail-toggle{color:hsl(0 0% 98%)}html.notte-sidebar-hidden .notte-sidebar-rail-toggle:hover{background:rgba(10,10,10,.05)}html.dark.notte-sidebar-hidden .notte-sidebar-rail-toggle:hover,html[data-theme=dark].notte-sidebar-hidden .notte-sidebar-rail-toggle:hover{background:rgba(255,255,255,.05)}html.notte-sidebar-hidden .notte-sidebar-rail-toggle .notte-toggle-logo{display:flex}html.notte-sidebar-hidden .notte-sidebar-rail-toggle .notte-toggle-icon{display:none}html.notte-sidebar-hidden .notte-sidebar-rail-toggle:focus-visible .notte-toggle-logo,html.notte-sidebar-hidden .notte-sidebar-rail-toggle:hover .notte-toggle-logo{display:none}html.notte-sidebar-hidden .notte-sidebar-rail-toggle:focus-visible .notte-toggle-icon,html.notte-sidebar-hidden .notte-sidebar-rail-toggle:hover .notte-toggle-icon{display:flex}}#navbar .nav-logo,#navbar a:has(>.nav-logo),#navbar-transition-maple .nav-logo,#navbar-transition-maple a:has(>.nav-logo){display:none!important}#navbar a[href*=\"cal.com/team/notte/demo\"],#navbar a[href*=\"console.notte.cc\"],#navbar a[href*=\"join.slack.com\"],#navbar li.navbar-link,#navbar nav[aria-label=Main],#navbar-transition li.navbar-link,#navbar-transition nav[aria-label=Main],#navbar-transition-maple .notte-navbar-links,#navbar-transition-maple a[href*=\"cal.com/team/notte/demo\"],#navbar-transition-maple a[href*=\"console.notte.cc\"],#navbar-transition-maple a[href*=\"join.slack.com\"],#navbar-transition-maple li.navbar-link,#navbar-transition-maple nav[aria-label=Main],#notte-navbar-links{display:none!important}"}],"page":{"pagePath":"migrate-to-notte","slug":"/migrate-to-notte","pageMetadata":{"title":"Migrate to Notte","description":"Safely migrate browser automation from another provider to Notte with an AI coding agent.","href":"/migrate-to-notte"},"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: \"Safely migrate browser automation from another provider to Notte with an AI coding agent.\"\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},{Accordion,CodeBlock,Heading,Tip,Visibility}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Visibility)_missingMdxReference(`Visibility`,true);return _jsxs(_Fragment,{children:[_jsx(Visibility,{for:`humans`,children:_jsx(Accordion,{title:`AI agent instructions`,id:`ai-agent-instructions`,children:_jsx(Tip,{children:_jsxs(_components.p,{children:[`Read `,_jsx(_components.a,{href:`https://notte.cc/skill.md`,children:`the Notte skill`}),` and follow its setup instructions when setting up Notte or building browser automation. This is the shared source for CLI setup, authentication, and the browser-to-code workflow.`]})})})}),`\n`,_jsx(Visibility,{for:`agents`,children:_jsx(Tip,{children:_jsxs(_components.p,{children:[`Read `,_jsx(_components.a,{href:`https://notte.cc/skill.md`,children:`the Notte skill`}),` and follow its setup instructions when setting up Notte or building browser automation. This is the shared source for CLI setup, authentication, and the browser-to-code workflow.`]})})}),`\n`,_jsx(_components.p,{children:`Use the Notte migration skills to move an existing browser-automation codebase\nto Notte with a visible plan, measured baseline, safe proof, tests, and a\nreversible rollout.`}),`\n`,_jsx(Heading,{level:`2`,id:`install-the-skills`,children:`Install the skills`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,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:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npx`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` skills`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` add`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` nottelabs/notte-skills`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -y`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -g`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`The skills support migrations from Browserbase + Stagehand, Kernel, Anchor\nBrowser, Browser Use Cloud, Steel, Hyperbrowser, and Skyvern.`}),`\n`,_jsx(Heading,{level:`2`,id:`give-this-prompt-to-your-ai-coding-agent`,children:`Give this prompt to your AI coding agent`}),`\n`,_jsx(_components.p,{children:`Copy the prompt below into Codex, Claude Code, Cursor, or another supported\ncoding agent from the root of the repository you want to migrate.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`12`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`12`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Use $migrate-to-notte to assess and migrate this codebase to Notte.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Start by publishing a clear, user-visible phase plan. Complete the Notte`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Quickstart before inspecting the repository. Detect the current browser`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`provider, inventory every workflow and dependency, measure the current cost and`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`latency where data is available, and run a safe read-only Notte proof.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Build the replacement progressively in an isolated area, add tests, run static`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`analysis and the full relevant test suite, and preserve public contracts. Keep`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`every change reversible. Do not touch production resources, credentials,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`billing, or deploy to production without my explicit approval.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`The skill routes the agent to the right provider-specific migration reference\nand keeps progress visible throughout the work. It also compares your current\nprovider’s cost with an equivalent Notte workload, so you can ask for that\ncomparison before starting the migration.`}),`\n`,_jsx(Heading,{level:`2`,id:`skill-source`,children:`Skill source`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://github.com/nottelabs/notte-skills/tree/main/plugins/notte-migrate/skills/migrate-to-notte`,children:`Migration skill`})}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Need help with a migration? Join the `,_jsx(_components.a,{href:`https://join.slack.com/t/nottelabs-dev/shared_invite/zt-39a8n6hr9-d_BG7RNfytimSpVo5H03mA`,children:`Notte community Slack`}),`.`]})]})}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":"Migrate to Notte","description":"Safely migrate browser automation from another provider to Notte with an AI coding agent.","href":"/migrate-to-notte"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Install the skills","slug":"install-the-skills","depth":2,"children":[]},{"title":"Give this prompt to your AI coding agent","slug":"give-this-prompt-to-your-ai-coding-agent","depth":2,"children":[]},{"title":"Skill source","slug":"skill-source","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/notte/4fe38c8fffa69151/custom.js"],"subdomain":"notte","siteName":"Notte","title":"Migrate to Notte - Notte","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-12T16:28:27.913Z","originalFileLocation":"migrate-to-notte.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=\"Safely migrate browser automation from another provider to Notte with an AI coding agent.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Notte\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/notte/5ubvs29hUSCn4yi3/_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=\"/mintlify-assets/_mintlify/favicons/notte/5ubvs29hUSCn4yi3/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/notte/5ubvs29hUSCn4yi3/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/notte/5ubvs29hUSCn4yi3/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/notte/5ubvs29hUSCn4yi3/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/notte/5ubvs29hUSCn4yi3/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/notte/5ubvs29hUSCn4yi3/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/notte/5ubvs29hUSCn4yi3/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/notte/5ubvs29hUSCn4yi3/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Migrate to Notte - Notte\">\u003cmeta data-mint-head property=\"og:description\" content=\"Safely migrate browser automation from another provider to Notte with an AI coding agent.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Notte\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.notte.cc/migrate-to-notte\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://notte.mintlify.app/_mintlify/api/og/v2?division=Getting+Started\u0026amp;title=Migrate+to+Notte\u0026amp;description=Safely+migrate+browser+automation+from+another+provider+to+Notte+with+an+AI+coding+agent.\u0026amp;theme=e4a5bdf78eaeb9de31911fa0\u0026amp;signature=0919c1e7fff626f16c3b3aa5e640b27851e1f2bcfaf7b583b802f5316ea87159\">\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=\"Migrate to Notte - Notte\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Safely migrate browser automation from another provider to Notte with an AI coding agent.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://notte.mintlify.app/_mintlify/api/og/v2?division=Getting+Started\u0026amp;title=Migrate+to+Notte\u0026amp;description=Safely+migrate+browser+automation+from+another+provider+to+Notte+with+an+AI+coding+agent.\u0026amp;theme=e4a5bdf78eaeb9de31911fa0\u0026amp;signature=0919c1e7fff626f16c3b3aa5e640b27851e1f2bcfaf7b583b802f5316ea87159\">\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=\"/mintlify-assets/_mintlify/favicons/notte/5ubvs29hUSCn4yi3/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Notte\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#00b85c\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.notte.cc/migrate-to-notte\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/migrate-to-notte.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.notte.cc/#organization\",\"name\":\"Notte\",\"url\":\"https://docs.notte.cc\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/notte/laVxhSjtZz3-wqG3/logo/notte-mark.svg?fit=max\u0026auto=format\u0026n=laVxhSjtZz3-wqG3\u0026q=85\u0026s=24bf291bf5f0deaffd706a98e4ba64e7\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.notte.cc#website\",\"name\":\"Notte\",\"url\":\"https://docs.notte.cc\",\"publisher\":{\"@id\":\"https://docs.notte.cc/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.notte.cc/migrate-to-notte#webpage\",\"url\":\"https://docs.notte.cc/migrate-to-notte\",\"name\":\"Migrate to Notte\",\"description\":\"Safely migrate browser automation from another provider to Notte with an AI coding agent.\",\"dateModified\":\"2026-10-12T16:28:27.913Z\",\"isPartOf\":{\"@id\":\"https://docs.notte.cc#website\"},\"breadcrumb\":{\"@id\":\"https://docs.notte.cc/migrate-to-notte#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.notte.cc/migrate-to-notte#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Getting Started\",\"item\":\"https://docs.notte.cc/index\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Migrate to Notte\",\"item\":\"https://docs.notte.cc/migrate-to-notte\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.notte.cc/migrate-to-notte#article\",\"headline\":\"Migrate to Notte\",\"name\":\"Migrate to Notte\",\"description\":\"Safely migrate browser automation from another provider to Notte with an AI coding agent.\",\"url\":\"https://docs.notte.cc/migrate-to-notte\",\"mainEntityOfPage\":{\"@id\":\"https://docs.notte.cc/migrate-to-notte#webpage\"},\"dateModified\":\"2026-10-12T16:28:27.913Z\",\"publisher\":{\"@id\":\"https://docs.notte.cc/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.notte.cc#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Notte\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Notte","nav":{"global":null,"tabs":[{"tab":"Documentation","groups":[{"group":"Getting Started","pages":[{"title":"Introduction","mode":"wide","href":""},{"title":"Quickstart","mode":"wide","href":"/quickstart"},{"title":"Templates","url":"https://www.notte.cc/templates","href":"/templates"},{"title":"Notte Browser MCP","description":"Connect your AI assistant to cloud browsers with Notte Browser MCP","href":"/mcp-server"},{"title":"Migrate to Notte","href":"/migrate-to-notte"}]},{"group":"Sessions","icon":"tv","pages":[{"title":"Browser Sessions","description":"Cloud-hosted browser instances for automation","href":"/concepts/sessions"},{"title":"Session Lifecycle","href":"/features/sessions/lifecycle"},{"title":"Session Configurations","href":"/features/sessions/configuration"},{"title":"Browser Controls","href":"/features/sessions/browser-controls"},{"title":"Act, choose and check","href":"/features/sessions/act"},{"title":"Observe Migration","href":"/features/sessions/observe-migration"},{"title":"Playwright vs Notte Controls","href":"/features/sessions/playwright-vs-notte"},{"title":"File Storage","href":"/concepts/file-storage"},{"group":"Session Capabilities","pages":[{"title":"Stealth Mode","href":"/features/sessions/stealth-mode"},{"title":"Proxies","href":"/features/sessions/proxies"},{"title":"CAPTCHA Solving","href":"/features/sessions/captcha-solving"},{"title":"Ad Blocking","href":"/features/sessions/ad-blocking"},{"title":"Recordings","href":"/features/sessions/recordings"},{"title":"Live View","href":"/features/sessions/live-view"},{"title":"Embed in your app","href":"/features/sessions/embed-iframe"},{"title":"Cookies","href":"/features/sessions/cookies"},{"title":"Cloudflare Web Bot Auth","href":"/features/sessions/cloudflare-web-bot-auth"}]},{"group":"Connect over CDP","pages":[{"title":"Connect with Playwright","href":"/features/sessions/playwright"},{"title":"Connect with Puppeteer","href":"/features/sessions/puppeteer"},{"title":"External Providers","href":"/features/sessions/external-providers"}]}]},{"group":"Authentication","icon":"key","pages":[{"title":"Secret Vaults","href":"/concepts/vaults"},{"title":"Browser Profiles","href":"/features/sessions/browser-profiles"},{"title":"Persona Identities","href":"/concepts/personas"},{"title":"Managed Auth","href":"/guides/managed-auth"}]},{"group":"Functions","icon":"https://mintlify.s3.us-west-1.amazonaws.com/notte/logo/square-function.svg","pages":[{"title":"Functions","href":"/concepts/functions"},{"title":"Creating Functions","href":"/features/functions/creating"},{"title":"Function Invocations","href":"/features/functions/invocations"},{"title":"Function Schedules","href":"/features/functions/schedules"},{"title":"Function Management","href":"/features/functions/management"}]},{"group":"Web API","icon":"download","pages":[{"title":"Fetch","href":"/concepts/scraping"},{"title":"Search","href":"/concepts/search"},{"title":"Anything API","href":"/concepts/anything"}]},{"group":"Guides","icon":"book-open","pages":[{"title":"Anti-Detection Playbook","href":"/guides/stealth"},{"title":"Create accounts with Personas","href":"/guides/account_creation"},{"title":"Scrape a website hourly into MySQL","href":"/guides/scrape-to-mysql"}]}]},{"tab":"Integrations","pages":[{"title":"Integrations","href":"/integrations"}]},{"tab":"APIs and SDKs","pages":[{"title":"APIs and SDKs","href":"/api-reference/authentication"}]},{"tab":"CLI","pages":[{"title":"CLI","href":"/cli-reference"}]},{"tab":"Resources","pages":[{"title":"Resources","href":"/resources"}]}]},"title":"Migrate to Notte - Notte","buildId":"dpl_48qhjNLiu9iJQQSZJz9Fa2ihBbPH","deploymentId":"dpl_48qhjNLiu9iJQQSZJz9Fa2ihBbPH","dynamics":["10e4515597"],"chunks":["BannerMarkdown-B0m80FZC.js","dist-tb1XVL5i.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-Q3eNRTcf.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js"]}