1# In-app browser1# Browser
2 2
3The in-app browser gives you and Codex a shared view of rendered web pages3Browser lets ChatGPT open websites, gather current information, and take action
4inside a thread. Use it when you're building or debugging a web app and want to4while you stay in control. Use it to compare options, complete a multi-step task
5preview pages and attach visual comments.5on a website, or review a page you're building.
6
7Browser is available in ChatGPT on the web and in the ChatGPT desktop app.
8
9Treat page content as untrusted context. Review the site and proposed action
10before sharing sensitive information or allowing ChatGPT to act.
6 11
7Use it for local development servers, file-backed previews, and public pages
8that don't require sign-in. For anything that depends on login state or browser
9extensions, use your regular browser or the
10[Codex Chrome extension](https://developers.openai.com/codex/app/chrome-extension).
11 12
12Open the in-app browser from the toolbar, by clicking a URL, by navigating
13manually in the browser, or by pressing <kbd>Cmd</kbd>+<kbd>Shift</kbd>+<kbd>B</kbd>
14(<kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>B</kbd> on Windows).
15 13
16The in-app browser does not support authentication flows, signed-in pages,14The built-in browser in the ChatGPT desktop app gives you and ChatGPT a shared
17 your regular browser profile, cookies, extensions, or existing tabs. Use it15view of websites and local web apps inside a task. Use it to preview a page,
18 for pages Codex can open without logging in.16leave visual feedback, or let ChatGPT interact with a site on your behalf.
19 17
20Treat page content as untrusted context. Don't paste secrets into browser flows.18The built-in browser uses a browser profile that is separate from your regular
19browser. It doesn't automatically share your existing tabs or browser session.
20You can sign in directly when a task requires an account. Open **Settings >
21Browser** to manage browser data and any profile-import features available on
22your device.
23
24Browser downloads go to your system Downloads folder by default. In **Settings >
25Browser**, you can choose another download location, reset it to the system
26default, or turn on **Ask where to save downloads**.
27
28Use the [Chrome extension](https://learn.chatgpt.com/docs/chrome-extension) instead when ChatGPT needs
29to work in an existing Chrome tab or use your regular Chrome profile.
30
31Open the built-in browser from the toolbar, by clicking a URL, by navigating
32manually, or by pressing <kbd>Cmd</kbd>+<kbd>Shift</kbd>+<kbd>B</kbd>
33(<kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>B</kbd> on Windows).
21 34
22<CodexScreenshot35<CodexScreenshot
23 alt="Codex app showing a browser comment on a local web app preview"36 alt="ChatGPT desktop app showing a browser comment on a local web app preview"
24 lightSrc="/images/codex/app/in-app-browser-light.webp"37 lightSrc="/images/codex/app/in-app-browser-light.webp"
25 darkSrc="/images/codex/app/in-app-browser-dark.webp"38 darkSrc="/images/codex/app/in-app-browser-dark.webp"
26 maxHeight="420px"39 maxHeight="420px"
27 variant="no-wallpaper"40 variant="no-wallpaper"
28/>41/>
29 42
30## Browser use43<a id="browser-use"></a>
44
45## Computer Use in the browser
31 46
32Browser use lets Codex operate the in-app browser directly. Use it for local47Computer Use lets ChatGPT operate the built-in browser directly. ChatGPT can
33development servers and file-backed previews when Codex needs to click, type,48open pages, click, type, inspect rendered state, take screenshots, and verify
34inspect rendered state, take screenshots, download page assets, run read-only49the result of its work in the page.
35page inspection JavaScript, or verify a fix in the page.
36 50
37To use it, install and enable the Browser plugin. Then ask Codex to use the51In the desktop app, open the Plugins Directory and install **Browser**. Then ask
38browser in your task, or reference it directly with `@Browser`. The app keeps52ChatGPT to use the browser in your task, or reference it directly with
39browser use inside the in-app browser and lets you manage allowed and blocked53`@Browser`.
40websites from settings.
41 54
42Example:55For example:
43 56
44```text57```text
45Use the browser to open http://localhost:3000/settings, reproduce the layout58Use the browser to open http://localhost:3000/settings, reproduce the layout
46bug, and fix only the overflowing controls.59bug, and fix only the overflowing controls.
47```60```
48 61
49Codex asks before using a website unless you've allowed it. Removing a site from62ChatGPT asks before it uses a website unless you have already allowed that
50the allowed list means Codex asks again before using it; removing a site from the63site. Manage allowed and blocked sites in **Settings > Browser**. ChatGPT also
51blocked list means Codex can ask again instead of treating it as blocked.64asks for confirmation before sensitive actions such as submitting information,
65making a purchase, changing permissions, or deleting data. ChatGPT can't
66automate file uploads in the built-in browser.
52 67
53For signed-in websites in Chrome, see68Instructions on a page can be misleading or malicious. A website permission
54[Codex Chrome extension](https://developers.openai.com/codex/app/chrome-extension).69 lets ChatGPT interact with that site; it doesn't make the site's content
70 trustworthy or approve every action.
55 71
56## Preview a page72## Preview a page
57 73
581. Start your app's development server in the [integrated terminal](https://developers.openai.com/codex/app/features#integrated-terminal) or with a [local environment action](https://developers.openai.com/codex/app/local-environments#actions).741. Start your app's development server in the [integrated terminal](https://learn.chatgpt.com/docs/integrated-terminal) or with a [local environment action](https://learn.chatgpt.com/docs/environments/local-environment#actions).
592. Open an unauthenticated local route, file-backed page, or public page by752. Open the local route, file-backed page, or public page by clicking a URL or
60 clicking a URL or navigating manually in the browser.76 navigating manually in the browser.
613. Review the rendered state alongside the code diff.773. Review the rendered state alongside the code diff.
624. Leave browser comments on the elements or areas that need changes.784. Leave browser comments on the elements or areas that need changes.
635. Ask Codex to address the comments and keep the scope narrow.795. Ask ChatGPT to address the comments and keep the scope narrow.
64 80
65Example feedback:81For example:
66 82
67```text83```text
68I left comments on the pricing page in the in-app browser. Address the mobile84I left comments on the pricing page in the built-in browser. Address the mobile
69layout issues and keep the card structure unchanged.85layout issues and keep the card structure unchanged.
70```86```
71 87
72## Comment on the page88## Comment on the page
73 89
74When a bug is visible only in the rendered page, use browser comments to give90When a bug is visible only in the rendered page, use browser comments to give
75Codex precise feedback on the page.91ChatGPT precise feedback.
76
77- Turn on Annotation mode, select an element or area, and submit a comment.
78- In Annotation mode, hold <kbd>Shift</kbd> and click to select an area.
79- Hold <kbd>Cmd</kbd> while clicking to send a comment immediately.
80 92
81After you leave comments, send a message in the thread asking Codex to address931. Turn on **Annotation mode**.
82them. Comments are most useful when Codex needs to make a precise visual change.942. Click an element, or drag to select an area.
953. Write and save your comment.
964. Send a message in the task asking ChatGPT to address the comments.
83 97
84Good feedback is specific:98Comments work best when you name the problem and the result you want:
85 99
86```text100```text
87This button overflows on mobile. Keep the label on one line if it fits,101This button overflows on mobile. Keep the label on one line if it fits,
99 113
100### Styling feedback114### Styling feedback
101 115
102When you add an annotation to a section on the page, press the config icon next116When you add an annotation to a section on the page, select **Adjust** next to
103to the text input to give Codex more granular style feedback. You can change117the text input to give ChatGPT more granular style feedback. You can change
104values like font, text, spacing, and color, preview the result directly on the118values such as font, text, spacing, and color, preview the result on the page,
105page, and then send the annotation so Codex has a clearer target for the change.119and then send the annotation with a clearer target.
106 120
107</div>121</div>
108 122
109<CodexScreenshot123<CodexScreenshot
110 alt="Codex app showing in-app browser annotation style controls"124 alt="ChatGPT desktop app showing built-in browser annotation style controls"
111 lightSrc="/images/codex/app/iab-annotations-light.webp"125 lightSrc="/images/codex/app/iab-annotations-light.webp"
112 darkSrc="/images/codex/app/iab-annotations-dark.webp"126 darkSrc="/images/codex/app/iab-annotations-dark.webp"
113 maxHeight="420px"127 maxHeight="420px"
117 131
118## Keep browser tasks scoped132## Keep browser tasks scoped
119 133
120The in-app browser is for review and iteration. Keep each browser task small134Keep each browser task small enough to review in one pass.
121enough to review in one pass.
122 135
123- Name the page, route, or local URL.136- Name the page, route, or URL.
124- Name the visual state you care about, such as loading, empty, error, or137- Name the state you care about, such as loading, empty, error, or success.
125 success.
126- Leave comments on the exact elements or areas that need changes.138- Leave comments on the exact elements or areas that need changes.
127- Review the updated route after Codex changes the code.139- Review the page again after ChatGPT finishes.
128- Ask Codex to start or check the dev server before it uses the browser.140- Ask ChatGPT to start or check the development server before it opens a local
141 page.
129 142
130For repository changes, use the [review pane](https://developers.openai.com/codex/app/review) to inspect the143For repository changes, use the [review pane](https://learn.chatgpt.com/docs/code-review?surface=app) to
131changes and leave comments.144inspect the changes and leave comments.
132 145
133<section class="feature-grid">146<section class="feature-grid">
134 147
136 149
137## Developer mode150## Developer mode
138 151
139Developer mode works with Browser use in Chrome and the Codex in-app browser.152Developer mode works with Computer Use in Chrome and the built-in browser. It
140It gives Codex controlled access to the Chrome DevTools Protocol (CDP). Use it153gives ChatGPT controlled access to the Chrome DevTools Protocol (CDP). Use it to
141when you want Codex to profile JavaScript, inspect console output and network154profile JavaScript, inspect console output and network traffic, examine the DOM
142traffic, examine page state such as the DOM and applied styles, or diagnose an155and applied styles, or diagnose an issue in the live browser.
143issue directly in the live browser.
144 156
145To enable it, open [**Settings > Browser**](codex://settings/browser-use) and,157To enable it, open [**Settings > Browser**](codex://settings/browser-use) and,
146under **Developer mode**, turn on **Enable full CDP access**. If your158under **Developer mode**, turn on **Enable full CDP access**. If your
147organization has disabled this setting, you can't enable it locally. Admins can159organization has disabled this setting, you can't enable it locally. Admins can
148set `browser_use_full_cdp_access = false` under `[features]` in160set `browser_use_full_cdp_access = false` under `[features]` in
149[`requirements.toml`](https://developers.openai.com/codex/enterprise/managed-configuration#pin-feature-flags).161[`requirements.toml`](https://learn.chatgpt.com/docs/enterprise/managed-configuration#pin-feature-flags)
162to disable full CDP access and prevent users from enabling the corresponding
163setting in the ChatGPT desktop app.
150 164
151Full CDP access lets Codex inspect and control sensitive browser internals that165Full CDP access can expose sensitive browser internals. ChatGPT asks for
152may put your data at risk. Codex asks for explicit approval before it uses full166explicit approval before it uses full CDP to inspect a website. Review the
153CDP to inspect a website. Review the site, task, and requested access before you167site, task, and requested access before approving it.
154approve it.
155 168
156Use `@Browser` for the in-app browser. To use Developer mode in Chrome,169Use `@Browser` for the built-in browser. To use Developer mode in Chrome,
157[set up the Codex Chrome extension](https://developers.openai.com/codex/app/chrome-extension) and invoke170[set up the Chrome extension](https://learn.chatgpt.com/docs/chrome-extension) and invoke `@Chrome`.
158`@Chrome`.
159 171
160For example:172For example:
161 173
167</div>179</div>
168 180
169<CodexScreenshot181<CodexScreenshot
170 alt="Codex app Browser settings showing Developer mode with full CDP access enabled"182 alt="ChatGPT desktop app Browser settings showing Developer mode with full CDP access enabled"
171 lightSrc="/images/codex/app/browser-developer-mode-light.webp"183 lightSrc="/images/codex/app/browser-developer-mode-light.webp"
172 darkSrc="/images/codex/app/browser-developer-mode-dark.webp"184 darkSrc="/images/codex/app/browser-developer-mode-dark.webp"
173 maxHeight="420px"185 maxHeight="420px"