1# Codex app features1# Features
2 2
3The Codex app is a focused desktop experience for working on Codex threads in parallel,3<CodexDocsOverviewLanding
4with built-in worktree support, automations, and Git functionality.4 title="Features"
5 5 description="Explore workflows, capabilities, commands, and settings for working in ChatGPT."
6Most Codex app features are available on both macOS and Windows.6 intro="ChatGPT brings projects and long-running tasks together with web browsing, files, images, and plugins. Commands, settings, and troubleshooting references round out these workflows, from choosing the right workflow to giving each task the context and tools it needs."
7The sections below note platform-specific exceptions.7 primaryCta={{
8 8 label: "Explore projects and tasks",
9<YouTubeEmbed9 href: "/codex/projects",
10 title="Introducing the Codex app"10 }}
11 videoId="HFM3se4lNiw"11 hero={{
12 class="max-w-md"12 illustration: "features-menu",
13/>13 backgroundImage: "/images/codex/codex-wallpaper-1.webp",
14 14 alt: "Codex sidebar and Add menu for tasks, plugins, and content tools",
15 15 }}
16<section class="feature-grid">16 sections={[
17 17 {
18<div>18 title: "Workflows",
19 19 description: "Ways to organize, delegate, and review work.",
20## Multitask across projects20 pages: [
21 21 {
22Use one Codex app window to run tasks across projects. Add a project for each22 title: "Projects, chats, and tasks",
23codebase and switch between them as needed.23 description: "Keep related chats, tasks, context, and work together.",
24 24 href: "/codex/projects",
25When available in your Codex desktop app, you can ask Codex to manage threads25 icon: "folder",
26in your local projects or worktrees. For example, ask it to find a related26 },
27thread, continue an existing thread, or pin or archive a thread. To create a27 {
28separate background thread, make that request explicit: `Create a separate28 title: "Sites",
29background thread in a worktree for this project to update the tests.`29 description:
30 30 "Create, save, and publish interactive websites and apps in ChatGPT.",
31If you've used the [Codex CLI](https://developers.openai.com/codex/cli), a project is like starting a31 href: "/codex/sites",
32session in a specific directory.32 icon: "workspace",
33 33 },
34If you work in a single repository with two or more apps or packages, split34 {
35distinct projects into separate app projects so the [sandbox](https://developers.openai.com/codex/agent-approvals-security)35 title: "Visualizations",
36only includes the files for that project.36 description:
37 37 "Turn ideas and information into interactive visual explanations.",
38</div>38 href: "/codex/visualizations",
39 39 icon: "sparkles",
40<CodexScreenshot40 },
41 alt="Codex app showing multiple projects in the sidebar and threads in the main pane"41 {
42 lightSrc="/images/codex/app/multitask-light.webp"42 title: "Scheduled tasks",
43 darkSrc="/images/codex/app/multitask-dark.webp"43 description: "Schedule recurring work and review completed results.",
44 maxHeight="400px"44 href: "/codex/automations",
45/>45 icon: "calendar",
46 46 },
47</section>47 {
48 48 title: "Long-running work",
49<section class="feature-grid inverse">49 description: "Let ChatGPT continue working while you step away.",
50 50 href: "/codex/long-running-work",
51<div>51 icon: "threads",
52 52 },
53## Skills support53 {
54 54 title: "Notifications",
55The Codex app supports the same [agent skills](https://developers.openai.com/codex/skills) as the CLI and55 description:
56IDE Extension. You can also view and explore new skills that your team has56 "Choose how ChatGPT tells you when work needs attention.",
57created across your different projects by clicking Skills in the sidebar.57 href: "/codex/notifications",
58 58 icon: "chat",
59</div>59 },
60 60 {
61<CodexScreenshot61 title: "Pets",
62 alt="Skills picker showing available skills in the Codex app"62 description: "Choose an animated companion and follow task activity.",
63 lightSrc="/images/codex/app/skill-selector-light.webp"63 href: "/codex/pets",
64 darkSrc="/images/codex/app/skill-selector-dark.webp"64 icon: "customize",
65 maxHeight="400px"65 },
66/>66 ],
67 67 },
68</section>68 {
69 69 title: "Capabilities",
70<section class="feature-grid">70 description:
71 71 "Tools ChatGPT can use to understand, create, and take action.",
72<div>72 pages: [
73 73 {
74## Automations74 title: "Browser",
75 75 description:
76You can also combine skills with [automations](https://developers.openai.com/codex/app/automations) to perform routine tasks76 "Let ChatGPT browse websites and take action while you stay in control.",
77such as evaluating errors in your telemetry and submitting fixes or creating reports on recent77 href: "/codex/browser",
78codebase changes. For ongoing work that should stay in one thread, use a78 icon: "webSearch",
79[thread automation](https://developers.openai.com/codex/app/automations#thread-automations).79 },
80 80 {
81</div>81 title: "Computer use",
82 82 description:
83<CodexScreenshot83 "Let ChatGPT interact with apps through the visual interface.",
84 alt="Automation creation form with schedule and prompt fields"84 href: "/codex/computer-use",
85 lightSrc="/images/codex/app/create-automation-light.webp"85 icon: "computerUse",
86 darkSrc="/images/codex/app/create-automation-dark.webp"86 },
87 maxHeight="400px"87 {
88/>88 title: "Plugins",
89 89 description:
90</section>90 "Install reusable workflows, connected tools, and shared context.",
91 91 href: "/codex/plugins",
92<section class="feature-grid inverse">92 icon: "plugin",
93 93 },
94<div>94 {
95 95 title: "Web search",
96## Modes96 description:
97 97 "Find current information and bring sources into a task.",
98Each thread runs in a selected mode. When starting a thread, you can choose:98 href: "/codex/web-search",
99 99 icon: "webSearch",
100- **Local**: work directly in your current project directory.100 },
101- **Worktree**: isolate changes in a Git worktree. [Learn more](https://developers.openai.com/codex/app/worktrees).101 {
102- **Cloud**: run remotely in a configured cloud environment.102 title: "Image generation",
103 103 description: "Create and edit images as part of your work.",
104Both **Local** and **Worktree** threads will run on your computer.104 href: "/codex/image-generation",
105 105 icon: "customize",
106For the full glossary and concepts, explore the [concepts section](https://developers.openai.com/codex/prompting).106 },
107 107 {
108</div>108 title: "Image inputs",
109 109 description: "Use screenshots and images as context for ChatGPT.",
110<CodexScreenshot110 href: "/codex/image-inputs",
111 alt="New thread composer with Local, Worktree, and Cloud mode options"111 icon: "computerUse",
112 lightSrc="/images/codex/app/modes-light.webp"112 },
113 darkSrc="/images/codex/app/modes-dark.webp"113 {
114 maxHeight="400px"114 title: "Appshots",
115/>115 description: "Capture app state for visual inspection and debugging.",
116 116 href: "/codex/appshots",
117</section>117 icon: "workspace",
118 118 },
119<section class="feature-grid">119 {
120 120 title: "Chrome extension",
121<div>121 description: "Share browser context with ChatGPT from Chrome.",
122 122 href: "/codex/chrome-extension",
123## Built-in Git tools123 icon: "connect",
124 124 },
125The Codex app provides common Git features directly within the app.125 {
126 126 title: "Work with files",
127The diff pane shows a Git diff of your changes in your local project or worktree checkout. You127 description:
128can also add inline comments for Codex to address and stage or revert specific chunks or entire files.128 "Create, preview, and refine documents and other generated files.",
129 129 href: "/codex/artifacts-viewer",
130You can also commit, push, and create pull requests for local and worktree tasks directly from130 icon: "stack",
131within the Codex app.131 },
132 132 ],
133For more advanced Git tasks, use the [integrated terminal](#integrated-terminal).133 },
134 134 {
135</div>135 title: "Reference",
136 136 description: "Find commands and settings for the ChatGPT desktop app.",
137<CodexScreenshot137 pages: [
138 alt="Git diff and commit panel with a commit message field"138 {
139 lightSrc="/images/codex/app/git-commit-light.webp"139 title: "Commands",
140 darkSrc="/images/codex/app/git-commit-dark.webp"140 description: "Use app commands, keyboard shortcuts, and deep links.",
141 maxHeight="400px"141 href: "/codex/reference/commands",
142/>142 icon: "terminal",
143 143 },
144</section>144 {
145 145 title: "Slash commands",
146<section class="feature-grid inverse">146 description: "Use shortcuts for common interactive actions.",
147 147 href: "/codex/reference/slash-commands",
148<div>148 icon: "code",
149 149 },
150## Worktree support150 {
151 151 title: "Settings",
152When you create a new thread, choose **Local** or **Worktree**. **Local** works152 description: "Configure ChatGPT desktop app preferences.",
153directly within your project. **Worktree** creates a new [Git worktree](https://git-scm.com/docs/git-worktree) so changes stay isolated from your regular project.153 href: "/codex/reference/settings",
154 154 icon: "settings",
155Use **Worktree** when you want to try a new idea without touching your current155 },
156work, or when you want Codex to run independent tasks side by side in the same156 {
157project.157 title: "Troubleshooting",
158 158 description: "Resolve common issues in the ChatGPT desktop app.",
159Automations run in dedicated background worktrees for Git repositories, and directly in the project directory for non-version-controlled projects.159 href: "/codex/reference/troubleshooting",
160 160 icon: "tools",
161[Learn more about using worktrees in the Codex app.](https://developers.openai.com/codex/app/worktrees)161 },
162 162 ],
163</div>163 },
164 164 ]}
165<CodexScreenshot
166 alt="Worktree thread view showing branch actions and worktree details"
167 lightSrc="/images/codex/app/worktree-light.webp"
168 darkSrc="/images/codex/app/worktree-dark.webp"
169 maxHeight="400px"
170/>
171
172</section>
173
174<section class="feature-grid">
175
176<div>
177
178## Integrated terminal
179
180Each thread includes a built-in terminal scoped to the current project or
181worktree. Toggle it using the terminal icon in the top right of the app or by
182pressing <kbd>Cmd</kbd>+<kbd>J</kbd>.
183
184Use the terminal to validate changes, run scripts, and perform Git operations
185without leaving the app. Codex can also read the current terminal output, so
186it can check the status of a running development server or refer back to a
187failed build while it works with you.
188
189Common tasks include:
190
191- `git status`
192- `git pull --rebase`
193- `pnpm test` or `npm test`
194- `pnpm run lint` or similar project commands
195
196If you run a task regularly, you can define an **action** inside your [local environment](https://developers.openai.com/codex/app/local-environments) to add a shortcut button to the top of your Codex app window.
197
198Note that <kbd>Cmd</kbd>+<kbd>K</kbd> opens the command palette in the Codex
199app. It doesn't clear the terminal. To clear the terminal use <kbd>Ctrl</kbd>+<kbd>L</kbd>.
200
201</div>
202
203<CodexScreenshot
204 alt="Integrated terminal drawer open beneath a Codex thread"
205 lightSrc="/images/codex/app/integrated-terminal-light.webp"
206 darkSrc="/images/codex/app/integrated-terminal-dark.webp"
207 maxHeight="400px"
208/>
209
210</section>
211
212<section class="feature-grid inverse">
213
214<div>
215
216## Native Windows sandbox
217
218On Windows, Codex can run natively in PowerShell with a native Windows sandbox
219instead of requiring WSL or a virtual machine. This lets you stay in
220Windows-native workflows while keeping bounded permissions in place.
221
222[Learn more about Windows setup and sandboxing](https://developers.openai.com/codex/app/windows).
223
224</div>
225
226<CodexScreenshot
227 alt="Codex app Windows sandbox setup prompt above the message composer"
228 lightSrc="/images/codex/windows/windows-sandbox-setup.webp"
229 darkSrc="/images/codex/windows/windows-sandbox-setup.webp"
230 maxHeight="400px"
231/>165/>
232
233</section>
234
235<section class="feature-grid inverse">
236
237<div>
238
239## Voice dictation
240
241Use your voice to prompt Codex. Hold <kbd>Ctrl</kbd>+<kbd>M</kbd> while the composer is visible and start talking. Your voice will be transcribed. Edit the transcribed prompt or hit send to have Codex start work.
242
243</div>
244
245<CodexScreenshot
246 alt="Voice dictation indicator in the composer with a transcribed prompt"
247 lightSrc="/images/codex/app/voice-dictation-light.webp"
248 darkSrc="/images/codex/app/voice-dictation-dark.webp"
249 maxHeight="400px"
250/>
251
252</section>
253
254<section class="feature-grid">
255
256<div>
257
258## Floating pop-out window
259
260Pop out an active conversation thread into a separate window and move it to where
261you are actively working. This is ideal for front-end work, where you can keep
262the thread near your browser, editor, or design preview while iterating quickly.
263
264You can also toggle the pop-out window to stay on top when you want it to remain
265visible across your workflow.
266
267</div>
268
269<CodexScreenshot
270 alt="Pop-out window preview in light mode"
271 lightSrc="/images/codex/app/popover-light.webp"
272 darkSrc="/images/codex/app/popover-dark.webp"
273 maxHeight="400px"
274/>
275
276</section>
277
278<section class="feature-grid">
279
280<div>
281
282## In-app browser
283
284Use the [in-app browser](https://developers.openai.com/codex/app/browser) to preview, review, and comment on
285local development servers, file-backed previews, and public pages that don't
286require sign-in while you iterate on a web app.
287
288The in-app browser doesn't support authentication flows, signed-in pages, your
289regular browser profile, cookies, extensions, or existing tabs.
290
291Use browser comments to mark specific elements or areas on a page, then ask
292Codex to address that feedback.
293
294When you want Codex to operate the page directly, use
295[browser use](https://developers.openai.com/codex/app/browser#browser-use) for local development servers and
296file-backed pages. You can manage the Browser plugin, allowed websites, and
297blocked websites from settings.
298
299</div>
300
301<CodexScreenshot
302 alt="Codex app showing a browser comment on a local web app preview"
303 lightSrc="/images/codex/app/in-app-browser-light.webp"
304 darkSrc="/images/codex/app/in-app-browser-dark.webp"
305 maxHeight="400px"
306 variant="no-wallpaper"
307/>
308
309</section>
310
311<section class="feature-grid inverse">
312
313<div>
314
315## Computer use
316
317[Computer use](https://developers.openai.com/codex/app/computer-use) helps Codex operate a macOS or Windows
318app by seeing, clicking, and typing. This is useful for testing desktop apps,
319checking browser or simulator flows, working with data sources that aren't
320available as plugins, changing app settings, and reproducing GUI-only bugs.
321
322Because computer use can affect app and system state outside your project
323workspace, keep tasks narrow and review permission prompts before continuing.
324
325</div>
326
327<CodexScreenshot
328 alt="Codex app asking for permission to use Calculator with computer use"
329 lightSrc="/images/codex/app/computer-use-approval-light.webp"
330 darkSrc="/images/codex/app/computer-use-approval-dark.webp"
331 maxHeight="400px"
332 variant="no-wallpaper"
333/>
334
335</section>
336
337<section class="feature-grid">
338
339<div>
340
341<a id="richer-outputs-and-artifacts"></a>
342<a id="task-sidebar"></a>
343<a id="artifact-viewer"></a>
344
345## Work with non-code artifacts
346
347When a task produces non-code artifacts, the sidebar can preview PDF files,
348spreadsheets, documents, and presentations. Give Codex the source data, expected
349file type, structure, and review criteria you care about.
350
351For spreadsheets and presentations, describe the sheets, columns, charts, slide
352sections, and checks that matter. Ask Codex to explain where it saved the output
353and how it checked the result.
354
355Use the task sidebar to follow what Codex is doing while a thread runs. It can
356surface the agent's plan, sources, generated artifacts, and task summary so you
357can steer the work, inspect generated files, and decide what needs another pass.
358
359</div>
360
361<CodexScreenshot
362 alt="Codex app showing a generated presentation in the artifact viewer"
363 lightSrc="/images/codex/app/artifact-viewer-light.webp"
364 darkSrc="/images/codex/app/artifact-viewer-dark.webp"
365 maxHeight="420px"
366 variant="no-wallpaper"
367/>
368
369</section>
370
371
372## Sync with the IDE extension
373
374If you have the [Codex IDE Extension](https://developers.openai.com/codex/ide) installed in your editor,
375your Codex app and IDE Extension automatically sync when both are in the same
376project.
377
378When they sync, you see an **IDE context** option in the Codex app composer. With "Auto context"
379enabled, the Codex app tracks the files you're viewing, so you can reference them indirectly (for
380example, "What's this file about?"). You can also see threads running in the Codex app inside the
381IDE Extension, and vice versa.
382
383If you're unsure whether the app includes context, toggle it off and ask the
384same question again to compare results.
385
386## Thread automations
387
388Automations can also attach to a single thread. These thread automations are
389recurring wake-up calls that preserve the thread's context so Codex can check
390on long-running work, poll a source for new information, or continue a follow-up
391loop. Use them for heartbeat-style automations that should keep returning to the
392same conversation on a schedule.
393
394Use a thread automation when the next run depends on the current conversation.
395Use a standalone or project [automation](https://developers.openai.com/codex/app/automations) when you want
396Codex to start a fresh recurring task for one or more projects.
397
398## Approvals and sandboxing
399
400Your approval and sandbox settings constrain Codex actions.
401
402- Approvals determine when Codex pauses for permission before running a command.
403- The sandbox controls which directories and network access Codex can use.
404
405When you see prompts like “approve once” or “approve for this session,” you are
406granting different scopes of permission for tool execution. If you are unsure,
407approve the narrowest option and continue iterating.
408
409By default, Codex scopes work to the current project. In most cases, that's the
410right constraint.
411
412If your task requires work across more than one repository or directory, prefer
413opening separate projects or using worktrees rather than asking Codex to roam
414outside the project root.
415
416If [automatic review](https://developers.openai.com/codex/agent-approvals-security#automatic-approval-reviews)
417is available in your workspace, you can choose it from the permissions selector.
418It keeps the same sandbox boundary but routes eligible approval requests through
419the configured review policy instead of waiting for you.
420
421For a high-level overview, see [sandboxing](https://developers.openai.com/codex/concepts/sandboxing). For
422configuration details, see the
423[agent approvals & security documentation](https://developers.openai.com/codex/agent-approvals-security).
424
425## MCP support
426
427The Codex app, CLI, and IDE Extension share [Model Context Protocol (MCP)](https://developers.openai.com/codex/mcp) settings.
428If you've already configured MCP servers in one, they're automatically adopted by the others. To
429configure new servers, open the MCP section in the app's settings and either enable a recommended
430server or add a new server to your configuration.
431
432## Web search
433
434Codex ships with a first-party web search tool. For local tasks in the Codex app, Codex
435enables web search by default and serves results from a web search cache. If you configure your
436sandbox for [full access](https://developers.openai.com/codex/agent-approvals-security), web search defaults to live results. See
437[Config basics](https://developers.openai.com/codex/config-basic) to disable web search or switch to live results that fetch the
438most recent data.
439
440## Image generation
441
442Ask Codex to generate or edit images directly in a thread. This is useful for UI assets, banners, backgrounds, illustrations, sprite sheets, and placeholders you want to create alongside code. Add a reference image when you want Codex to transform or extend an existing asset.
443
444You can ask in natural language or explicitly invoke the image generation skill by including `$imagegen` in your prompt.
445
446Built-in image generation uses `gpt-image-2`, counts toward your general Codex usage limits, and uses included limits 3-5x faster on average than similar turns without image generation, depending on image quality and size. For details, see [Pricing](https://developers.openai.com/codex/pricing#image-generation-usage-limits). For prompting tips and model details, see the [image generation guide](https://developers.openai.com/api/docs/guides/image-generation).
447
448For larger batches of image generation, set `OPENAI_API_KEY` in your environment variables and ask Codex to generate images through the API so API pricing applies instead.
449
450## Image input
451
452You can drag and drop images into the prompt composer to include them as context. Hold down `Shift`
453while dropping an image to add the image to the context.
454
455You can also ask Codex to view images on your system. By giving Codex tools to take screenshots of
456the app you are working on, Codex can verify the work it's doing.
457
458<a id="projectless-threads"></a>
459
460## Chats
461
462Chats are threads you can start when the task doesn't need a specific project
463folder or Git repository. Use them for research, triage, planning,
464plugin-heavy workflows, and other conversations where Codex should use connected
465tools instead of editing a codebase.
466
467Chats use a Codex-managed `threads` directory under your Codex home as their
468working location. By default, that location is `~/.codex/threads`.
469
470## Memories
471
472[Memories](https://developers.openai.com/codex/memories), where available, let Codex carry useful context
473from past tasks into future threads. They're most useful for stable preferences,
474project conventions, recurring work patterns, and known pitfalls that would
475otherwise need to repeat.
476
477## Notifications
478
479By default, the Codex app sends notifications when a task completes or needs approval while the app
480is in the background.
481
482In the Codex app settings, you can choose to never send notifications or always send them, even
483when the app is in focus.
484
485## Keep your computer awake
486
487Since your tasks might take a while to complete, you can have the Codex app prevent your computer
488from going to sleep by enabling the "Prevent sleep while running" toggle in the app's settings.
489
490## See also
491
492- [Settings](https://developers.openai.com/codex/app/settings)
493- [Automations](https://developers.openai.com/codex/app/automations)
494- [In-app browser](https://developers.openai.com/codex/app/browser)
495- [Computer use](https://developers.openai.com/codex/app/computer-use)
496- [Review pane](https://developers.openai.com/codex/app/review)
497- [Local environments](https://developers.openai.com/codex/app/local-environments)
498- [Worktrees](https://developers.openai.com/codex/app/worktrees)