SpyBara
Go Premium

Documentation 2026-09-28 23:02 UTC to 2026-09-29 22:59 UTC

121 files changed +8,386 −1,467. View all changes and history on the product overview
2026
Wed 30 23:01 Tue 29 22:59 Sun 27 23:59 Fri 25 23:02 Thu 24 23:02 Wed 23 23:58 Tue 22 23:00 Sat 19 23:02 Fri 18 22:59 Thu 17 10:05 Wed 16 20:58 Tue 15 21:01 Mon 14 20:57 Sun 13 21:58 Fri 11 20:00 Thu 10 16:58 Wed 9 21:01 Fri 4 19:59 Thu 3 23:00 Wed 2 22:59 Tue 1 07:57

administration.md +173 −105

Details

5<CodexDocsOverviewLanding5<CodexDocsOverviewLanding

6 title="Administration"6 title="Administration"

7 description="Set access and policy boundaries for ChatGPT, Codex developer tools, APIs, plugins, and connected systems."7 description="Set access and policy boundaries for ChatGPT, Codex developer tools, APIs, plugins, and connected systems."

8 intro="Administration covers six related boundaries: ChatGPT workspace access; local runtime policy for covered capabilities in the ChatGPT desktop app, Codex CLI, and IDE extension; Codex cloud eligibility; Platform API access; plugin availability and connector permissions; and permissions in connected systems. Start with workspace identity and access, then apply the runtime and source-system controls required for each deployment."8 intro="Start with workspace identity and access. Then configure local runtime policy for supported capabilities in the ChatGPT desktop app, Codex CLI, and IDE extension; Codex cloud eligibility; Platform API access; plugins and connectors; and permissions in connected systems."

9 primaryCta={{9 primaryCta={{

10 label: "Explore authentication",10 label: "Explore authentication",

11 href: "/codex/auth?surface=app",11 href: "/codex/auth?surface=app",


19 {19 {

20 title: "Getting started",20 title: "Getting started",

21 description:21 description:

22 "Start with the rollout guide, then use the reference pages for each control boundary.",22 "Plan your rollout and explore tools for routine administration.",

23 pages: [23 pages: [

24 {24 {

25 title: "Admin rollout guide",25 title: "Admin rollout guide",


28 href: "/codex/enterprise/admin-setup",28 href: "/codex/enterprise/admin-setup",

29 icon: "users",29 icon: "users",

30 },30 },

31 {

32 title: "Admin plugin",

33 description:

34 "Use the Admin plugin for permissions, approvals, and supported administrative workflows.",

35 href: "/codex/enterprise/admin-plugin",

36 icon: "tools",

37 },

31 ],38 ],

32 },39 },

33 {40 {

34 title: "ChatGPT Work",41 title: "Feature setup",

35 description:42 description:

36 "Review the ChatGPT Work overview and administration reference.",43 "Choose a setup task, then review its access and security requirements.",

37 pages: [44 pages: [

38 {45 {

39 title: "ChatGPT Work Overview",46 title: "Configure dots permissions",

40 description:47 description:

41 "Understand hosted execution, network controls, data boundaries, and audit visibility.",48 "Manage dots access, communication, computers, and custom rules.",

42 href: "/codex/enterprise/chatgpt-work-overview",49 href: "/codex/dots/controls#for-workspace-admins",

43 icon: "shieldCheck",50 icon: "shieldCheck",

44 },51 },

45 {52 {

46 title: "ChatGPT Work cloud security",53 title: "Manage Space sharing and access",

47 description:54 description:

48 "Review hosted execution, connected accounts, access controls, retention, and audit visibility.",55 "Control Library sharing permissions and help members share pages.",

49 href: "/codex/enterprise/chatgpt-work-cloud-security",56 href: "/codex/space/collaboration#for-workspace-admins",

50 icon: "shieldCheck",57 icon: "userLock",

51 },58 },

52 {59 {

53 title: "ChatGPT Work local security",60 title: "Set up teams and Team Tasks",

54 description:61 description:

55 "Review local execution, device and browser access, managed policies, data handling, and audit limitations.",62 "Set team permissions, connect shared accounts, and create recurring tasks.",

56 href: "/codex/enterprise/chatgpt-work-local-security",63 href: "/codex/enterprise/teams#for-workspace-admins",

57 icon: "shieldCheck",64 icon: "users",

58 },65 },

59 {66 {

60 title: "ChatGPT Work admin FAQ",67 title: "Set up @ChatGPT in Slack or Teams",

61 description:68 description:

62 "Review access, data, governance, usage, and incident controls for ChatGPT Work.",69 "Review administrator responsibilities and deployment prerequisites.",

63 href: "/codex/enterprise/work-admin-faq",70 href: "/codex/enterprise/chatgpt-slack-and-teams",

64 icon: "userLock",71 icon: "chat",

65 },72 },

66 {73 {

67 title: "ChatGPT Work: usage and cost",74 title: "Set up a workspace connection",

68 description:75 description:

69 "Understand shared credits, billing impact, spending controls, and adoption planning.",76 "Prepare company-managed accounts and configure a workspace connection.",

70 href: "/codex/enterprise/chatgpt-work-usage-and-cost",77 href: "/codex/enterprise/shared-connections#set-up-a-connection",

71 icon: "dataControls",78 icon: "connect",

72 },79 },

73 ],80 {

81 title: "Local computer access for Work Cloud and dots",

82 description:

83 "Review shared policies and compatibility, then enable local computer access separately for Work and dots.",

84 href: "/codex/enterprise/cloud-local-access#how-to-set-up-local-computer-access",

85 icon: "settings",

74 },86 },

75 {87 {

76 title: "Identity and authentication",88 title: "Set up Sites and connected plugins",

77 description:89 description:

78 "Choose how people sign in and issue credentials for programmatic workflows.",90 "Enable tenant and plugin access so Sites can use visitors' connected accounts.",

91 href: "/codex/enterprise/sites#enable-plugin-use-in-sites",

92 icon: "connect",

93 },

94 ],

95 },

96 {

97 title: "Identity and access",

98 description: "Manage sign-in, provisioning, roles, and credentials.",

79 pages: [99 pages: [

80 {100 {

81 title: "Authentication overview",101 title: "Authentication overview",


85 icon: "key",105 icon: "key",

86 },106 },

87 {107 {

88 title: "Personal Access Tokens",108 title: "Groups and provisioning",

109 description:

110 "Manage manual and SCIM groups, provisioning, and rollout cohorts.",

111 href: "/codex/enterprise/groups-and-provisioning",

112 icon: "users",

113 },

114 {

115 title: "User lifecycle management",

116 description:

117 "Provision employees, update group access, and revoke departing users' credentials.",

118 href: "/codex/enterprise/user-lifecycle",

119 icon: "userLock",

120 },

121 {

122 title: "Roles and workspace permissions",

123 description:

124 "Find workspace, runtime, API, plugin, and source-system controls.",

125 href: "/codex/enterprise/roles-and-workspace-permissions",

126 icon: "userLock",

127 },

128 {

129 title: "Personal access tokens",

89 description: "Create and manage tokens for programmatic access.",130 description: "Create and manage tokens for programmatic access.",

90 href: "/codex/enterprise/access-tokens",131 href: "/codex/enterprise/access-tokens",

91 icon: "lock",132 icon: "lock",


100 ],141 ],

101 },142 },

102 {143 {

103 title: "Workspace access, policy, and models",144 title: "Deployment and configuration",

104 description:145 description:

105 "Assign ChatGPT workspace access and keep it separate from local runtime policy, Codex cloud access, and Platform API access.",146 "Deploy apps and configure updates, runtime settings, remote connections, and model access.",

106 pages: [147 pages: [

107 {148 {

108 title: "Groups and provisioning",149 title: "Windows app deployment",

109 description:150 description:

110 "Manage manual and SCIM groups, provisioning, and rollout cohorts.",151 "Choose an installation and update path for managed Windows devices.",

111 href: "/codex/enterprise/groups-and-provisioning",152 href: "/codex/enterprise/windows-deployment",

112 icon: "users",153 icon: "settings",

113 },154 },

114 {155 {

115 title: "User lifecycle management",156 title: "Manage app updates",

116 description:157 description:

117 "Provision employees, update group access, and revoke departing users' credentials.",158 "Control desktop app updates and deploy approved versions through your device management platform.",

118 href: "/codex/enterprise/user-lifecycle",159 href: "/codex/enterprise/manage-app-updates",

119 icon: "userLock",160 icon: "settings",

120 },161 },

121 {162 {

122 title: "Roles and workspace permissions",163 title: "Managed configuration",

123 description:164 description:

124 "Use the canonical map of workspace, runtime, API, plugin, and source-system controls.",165 "Review the global baseline in Agent Security, policy precedence for this feature, and supported runtime requirements.",

125 href: "/codex/enterprise/roles-and-workspace-permissions",166 href: "/codex/enterprise/managed-configuration",

126 icon: "userLock",167 icon: "dataControls",

168 },

169 {

170 title: "Remote connections",

171 description: "Start and control work on connected computers.",

172 href: "/codex/remote-connections",

173 icon: "connect",

127 },174 },

128 {175 {

129 title: "GPTs and Sharing",176 title: "Workspace model availability",

130 description:177 description:

131 "Manage GPT sharing, ownership, connected apps, and third-party actions across your workspace.",178 "Separate model access for ChatGPT, Codex in the ChatGPT desktop app, Codex CLI, the IDE extension, Codex cloud, and the Platform API.",

132 href: "/codex/enterprise/gpts-and-sharing",179 href: "/codex/enterprise/workspace-model-availability",

133 icon: "userLock",180 icon: "settings",

134 },181 },

135 {182 {

136 title: "Migrate custom GPTs to plugins",183 title: "Amazon Bedrock",

137 description:184 description:

138 "Plan your workspace transition, migrate individual GPTs or eligible batches, and test and share replacement plugins.",185 "Configure supported local clients to use models available through Bedrock.",

139 href: "/codex/migrate-custom-gpts",186 href: "/codex/amazon-bedrock",

140 icon: "tools",187 icon: "storage",

188 },

189 ],

141 },190 },

142 {191 {

143 title: "Managed configuration",192 title: "ChatGPT Work",

144 description:193 description:

145 "Distribute managed settings where supported and enforce runtime requirements for covered capabilities in the ChatGPT desktop app, Codex CLI, and IDE extension.",194 "Review the ChatGPT Work overview and administration reference.",

146 href: "/codex/enterprise/managed-configuration",195 pages: [

147 icon: "dataControls",196 {

197 title: "Overview",

198 description:

199 "Understand local and cloud execution, Local computer access with Work Cloud, network controls, and data boundaries.",

200 href: "/codex/enterprise/chatgpt-work-overview",

201 icon: "shieldCheck",

148 },202 },

149 {203 {

150 title: "Prisma AIRS",204 title: "Cloud security",

151 description:205 description:

152 "Apply workspace-wide security policies to Codex prompts.",206 "Review hosted execution, connected accounts, access controls, retention, and audit visibility.",

153 href: "/codex/enterprise/prisma-airs",207 href: "/codex/enterprise/chatgpt-work-cloud-security",

154 icon: "shieldCheck",208 icon: "shieldCheck",

155 },209 },

156 {210 {

157 title: "HIPAA configuration",211 title: "Local security",

158 description:212 description:

159 "Configure local runtime safeguards for workflows that may handle protected health information.",213 "Review local execution, device and browser access, managed policies, data handling, and audit limitations.",

160 href: "/codex/hipaa-configuration",214 href: "/codex/enterprise/chatgpt-work-local-security",

161 icon: "shieldCheck",215 icon: "shieldCheck",

162 },216 },

163 {217 {

164 title: "Workspace model availability",218 title: "Usage and cost",

165 description:219 description:

166 "Separate model access for ChatGPT, Codex in the ChatGPT desktop app, Codex CLI, the IDE extension, Codex cloud, and the Platform API.",220 "Understand shared credits, billing impact, spending controls, and adoption planning.",

167 href: "/codex/enterprise/workspace-model-availability",221 href: "/codex/enterprise/chatgpt-work-usage-and-cost",

168 icon: "settings",222 icon: "dataControls",

223 },

224 {

225 title: "Admin FAQ",

226 description:

227 "Review access, data, governance, usage, and incident controls for ChatGPT Work.",

228 href: "/codex/enterprise/work-admin-faq",

229 icon: "userLock",

169 },230 },

170 ],231 ],

171 },232 },

172 {233 {

173 title: "Plugin and connector controls",234 title: "Collaboration and sharing",

235 description: "Manage GPT sharing and ownership.",

236 pages: [

237 {

238 title: "GPTs and sharing",

239 description:

240 "Manage GPT sharing, ownership, connected apps, and third-party actions across your workspace.",

241 href: "/codex/enterprise/gpts-and-sharing",

242 icon: "userLock",

243 },

244 ],

245 },

246 {

247 title: "Plugins and connections",

174 description:248 description:

175 "Control plugin installation, bundled skills, connector-backed capabilities, and connected-service access.",249 "Control plugin installation, bundled skills, connector-backed capabilities, and connected-service access.",

176 pages: [250 pages: [


194 href: "/codex/enterprise/skills",268 href: "/codex/enterprise/skills",

195 icon: "tools",269 icon: "tools",

196 },270 },

197 ],

198 },

199 {

200 title: "Usage, governance, and compliance",

201 description:

202 "Measure adoption and route reporting or audit data to the system that owns it.",

203 pages: [

204 {271 {

205 title: "Governance",272 title: "Migrate custom GPTs to plugins",

206 description:273 description:

207 "Choose the right analytics, spend, and audit surface for each question.",274 "Plan your workspace transition, migrate individual GPTs or eligible batches, and test and share replacement plugins.",

208 href: "/codex/enterprise/governance",275 href: "/codex/migrate-custom-gpts",

209 icon: "shieldCheck",276 icon: "tools",

277 },

278 ],

210 },279 },

211 {280 {

212 title: "Admin plugin",281 title: "Usage and analytics",

213 description:282 description:

214 "Use the Admin plugin for permissions, approvals, and supported administrative workflows.",283 "Review workspace usage and adoption, and automate reporting.",

215 href: "/codex/enterprise/admin-plugin",284 pages: [

216 icon: "tools",

217 },

218 {285 {

219 title: "Workspace analytics",286 title: "Workspace analytics",

220 description:287 description:


236 href: "/codex/enterprise/analytics-api",303 href: "/codex/enterprise/analytics-api",

237 icon: "code",304 icon: "code",

238 },305 },

239 {

240 title: "Compliance API and audit events",

241 description:

242 "Export activity records for audit and investigation workflows.",

243 href: "/codex/enterprise/compliance-api",

244 icon: "userLock",

245 },

246 ],306 ],

247 },307 },

248 {308 {

249 title: "Deployment and model providers",309 title: "Security and compliance",

250 description:310 description:

251 "Deploy and update desktop apps, connect managed hosts, or configure a supported external model provider.",311 "Review workspace security policies, governance, and audit controls.",

252 pages: [312 pages: [

253 {313 {

254 title: "Manage app updates",314 title: "Governance",

255 description:315 description:

256 "Control desktop app updates and deploy approved versions through your device management platform.",316 "Choose the right analytics, spend, and audit surface for each question.",

257 href: "/codex/enterprise/manage-app-updates",317 href: "/codex/enterprise/governance",

258 icon: "settings",318 icon: "shieldCheck",

259 },319 },

260 {320 {

261 title: "Windows app deployment",321 title: "Agent security",

262 description:322 description:

263 "Choose an installation and update path for managed Windows devices.",323 "Manage the Global policy baseline and supported Local and Codex Cloud environment settings.",

264 href: "/codex/enterprise/windows-deployment",324 href: "/codex/enterprise/agent-security",

265 icon: "settings",325 icon: "dataControls",

266 },326 },

267 {327 {

268 title: "Remote connections",328 title: "Prisma AIRS",

269 description: "Start and control work on connected computers.",329 description:

270 href: "/codex/remote-connections",330 "Apply workspace-wide security policies to Codex prompts.",

271 icon: "connect",331 href: "/codex/enterprise/prisma-airs",

332 icon: "shieldCheck",

272 },333 },

273 {334 {

274 title: "Amazon Bedrock",335 title: "HIPAA configuration",

275 description:336 description:

276 "Configure supported local clients to use models available through Bedrock.",337 "Configure local runtime safeguards for workflows that may handle protected health information.",

277 href: "/codex/amazon-bedrock",338 href: "/codex/hipaa-configuration",

278 icon: "storage",339 icon: "shieldCheck",

340 },

341 {

342 title: "Compliance API and audit events",

343 description:

344 "Export activity records for audit and investigation workflows.",

345 href: "/codex/enterprise/compliance-api",

346 icon: "userLock",

279 },347 },

280 ],348 ],

281 },349 },

Details

47 47 

48## Sandbox and approvals48## Sandbox and approvals

49 49 

50Local computer access with Work Cloud has separate local and cloud execution policies:

51 

52- **Cloud execution:** Work cloud containers use existing Work Cloud policies.

53- **Local execution:** Local execution requirements govern the connected computer. MDM and legacy managed-device requirements take precedence over Agent Security, which takes precedence over the device's system requirements file.

54 

55For Work with local access and dots, supported Global policy applies to the shared cloud orchestrator when managed policy is enabled. Work cloud containers and dots cloud computers use their own execution configuration and requirements. Test local and cloud controls separately. Keep orchestrator controls, including approvals and web search, in Global. Use the dedicated Allowed approval policies and Allowed web search modes controls where available, and TOML for other supported fields. Check the [Configuration Reference](https://learn.chatgpt.com/docs/config-file/config-reference) for the field list and execution scope before applying a Codex example to Local computer access with Work Cloud.

56 

57Moving between desktop, web, and mobile does not grant access to another computer. Before enabling sync or expanding access, review the Agent Security baseline and test an allowed and a blocked action in each execution environment. See [Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration).

58 

50Codex security controls come from two layers that work together:59Codex security controls come from two layers that work together:

51 60 

52- **Sandbox mode**: What Codex can do technically (for example, where it can write and whether it can reach the network) when it executes model-generated commands.61- **Sandbox mode**: What Codex can do technically (for example, where it can write and whether it can reach the network) when it executes model-generated commands.


54 63 

55Codex uses different sandbox modes depending on where you run it:64Codex uses different sandbox modes depending on where you run it:

56 65 

57- **Codex cloud**: Runs in isolated OpenAI-managed containers, preventing access to your host system or unrelated data. Uses a two-phase runtime model: setup runs before the agent phase and can access the network to install specified dependencies, then the agent phase runs offline by default unless you enable internet access for that environment. Secrets configured for cloud environments are available only during setup and are removed before the agent phase starts.66- **[Codex Cloud (Legacy)](https://learn.chatgpt.com/docs/environments/cloud-environment)**: Runs in isolated OpenAI-managed containers, preventing access to your host system or unrelated data. Uses a two-phase runtime model: setup runs before the agent phase and can access the network to install specified dependencies, then the agent phase runs offline by default unless you enable internet access for that environment. Secrets configured for cloud environments are available only during setup and are removed before the agent phase starts.

67- **Current Codex Cloud**: See [environment variables and network secrets](https://learn.chatgpt.com/docs/environments/cloud-environments#environment-variables-and-secrets) for how credentials are handled during setup and tasks.

58- **Codex CLI / IDE extension**: OS-level mechanisms enforce sandbox policies. Defaults include no network access and write permissions limited to the active workspace. You can configure the sandbox, approval policy, and network settings based on your risk tolerance.68- **Codex CLI / IDE extension**: OS-level mechanisms enforce sandbox policies. Defaults include no network access and write permissions limited to the active workspace. You can configure the sandbox, approval policy, and network settings based on your risk tolerance.

59 69 

60In the `Auto` preset (for example, `--sandbox workspace-write --ask-for-approval on-request`), Codex can read files, make edits, and run commands in the working directory automatically.70In the `Auto` preset (for example, `--sandbox workspace-write --ask-for-approval on-request`), Codex can read files, make edits, and run commands in the working directory automatically.


88 98 

89## Network access<ElevatedRiskBadge class="ml-2"></ElevatedRiskBadge>99## Network access<ElevatedRiskBadge class="ml-2"></ElevatedRiskBadge>

90 100 

91For Codex cloud, see [agent internet access](https://learn.chatgpt.com/docs/cloud/internet-access) to enable full internet access or a domain allow list.101For current Codex Cloud network settings, see [Connect to services](https://learn.chatgpt.com/docs/environments/cloud-environments#connect-to-services). For Codex Cloud (Legacy), see [agent internet access](https://learn.chatgpt.com/docs/cloud/internet-access) to enable full internet access or a domain allow list.

92 102 

93For the ChatGPT desktop app, Codex CLI, or IDE extension, the default `workspace-write` sandbox mode keeps network access turned off unless you enable it in your configuration:103For the ChatGPT desktop app, Codex CLI, or IDE extension, the default `workspace-write` sandbox mode keeps network access turned off unless you enable it in your configuration:

94 104 


99 109 

100### Network isolation110### Network isolation

101 111 

112On supported managed Codex Cloud execution paths, Agent Security requirements constrain command networking. Codex Cloud environment internet settings apply separately. An allowed domain in Agent Security does not override a restriction in the Cloud environment's internet settings. These command-network controls do not, by themselves, disable hosted web search, apps, or MCP. ChatGPT Work Cloud has separate capability permissions and does not inherit these Agent Security requirements.

113 

114A managed command allowlist applies to commands using the managed proxy. Where policy permits full sandbox escalation and it is approved, that execution can bypass the command proxy. A narrow network grant is different from full sandbox escalation. Configure enforced approval and sandbox requirements for the intended boundary, and test both ordinary and escalated commands. See [Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration#configure-network-access-requirements).

115 

102Network access is controlled through destination rules that apply to scripts,116Network access is controlled through destination rules that apply to scripts,

103programs, and subprocesses spawned by commands. When command network access is117programs, and subprocesses spawned by commands. When command network access is

104already enabled, turn on the `network_proxy` feature to constrain that traffic118already enabled, turn on the `network_proxy` feature to constrain that traffic


248for apps, plugins, browsers, or Computer Use. See262for apps, plugins, browsers, or Computer Use. See

249[Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration).263[Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration).

250 264 

251You can also control the [web search tool](https://platform.openai.com/docs/guides/tools-web-search) without granting full network access to spawned commands. Codex defaults to using a web search cache to access results. The cache is an OpenAI-maintained index of web results, so cached mode returns pre-indexed results instead of fetching live pages. This reduces exposure to prompt injection from arbitrary live content, but you should still treat web results as untrusted. If you are using `--yolo` or another [full access sandbox setting](#common-sandbox-and-approval-combinations), web search defaults to live results. Use `--search` or set `web_search = "live"` to allow live browsing, or set it to `"disabled"` to turn the tool off:265You can also control the [web search tool](https://platform.openai.com/docs/guides/tools-web-search) without granting full network access to spawned commands. Codex defaults to using a web search cache to access results. The cache is an OpenAI-maintained index of web results, so cached mode returns pre-indexed results instead of fetching live pages. This reduces exposure to prompt injection from arbitrary live content. Treat web results as untrusted. If you are using `--yolo` or another [full access sandbox setting](#common-sandbox-and-approval-combinations), web search defaults to live results. Use `--search` or set `web_search = "live"` to allow live browsing, or set it to `"disabled"` to turn the tool off:

252 266 

253```toml267```toml

254web_search = "cached" # default268web_search = "cached" # default

Details

8 8 

9## Create a rules file9## Create a rules file

10 10 

11For Local computer access with Work Cloud, configure supported managed command rules with the `rules` TOML field in Agent Security. These rules apply to local executors; Work cloud containers use existing Work Cloud policies.

12 

13These local `.rules` instructions apply to Codex; don't assume Local computer access with Work Cloud reads local rule files. See [Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration) and the [Configuration Reference](https://learn.chatgpt.com/docs/config-file/config-reference) for managed Work requirements.

14 

111. Create a `.rules` file under a `rules/` folder next to an active config layer (for example, `~/.codex/rules/default.rules`).151. Create a `.rules` file under a `rules/` folder next to an active config layer (for example, `~/.codex/rules/default.rules`).

122. Add a rule. This example prompts before allowing `gh pr view` to run outside the sandbox.162. Add a rule. This example prompts before allowing `gh pr view` to run outside the sandbox.

13 17 


74["bash", "-lc", "git add . && rm -rf /"]78["bash", "-lc", "git add . && rm -rf /"]

75```79```

76 80 

77Because this kind of command can hide multiple actions inside one string, Codex treats `bash -lc`, `bash -c`, and their `zsh` / `sh` equivalents specially.81Because this kind of command can hide more than one action inside one string, Codex treats `bash -lc`, `bash -c`, and their `zsh` / `sh` equivalents specially.

78 82 

79### When Codex can safely split the script83### When Codex can safely split the script

80 84 


92 96 

93Codex then evaluates each command against your rules, and the most restrictive result wins.97Codex then evaluates each command against your rules, and the most restrictive result wins.

94 98 

95Even if you allow `pattern=["git", "add"]`, Codex won't auto allow `git add . && rm -rf /`, because the `rm -rf /` portion is evaluated separately and prevents the whole invocation from being auto allowed.99Even if you allow `pattern=["git", "add"]`, Codex won't automatically allow `git add . && rm -rf /` because it evaluates `rm -rf /` separately.

96 100 

97This prevents dangerous commands from being smuggled in alongside safe ones.101This prevents dangerous commands from being smuggled in alongside safe ones.

98 102 


132 136 

133## Understand the rules language137## Understand the rules language

134 138 

135The `.rules` file format uses `Starlark` (see the [language spec](https://github.com/bazelbuild/starlark/blob/master/spec.md)). Its syntax is like Python, but it's designed to be safe to run: the rules engine can run it without side effects (for example, touching the filesystem).139The `.rules` file format uses `Starlark` (see the [language specification](https://github.com/bazelbuild/starlark/blob/master/spec.md)). Its syntax is like Python, but it's designed to be safe to run: the rules engine can run it without side effects (for example, touching the filesystem).

Details

2 2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 4 

5You can increase model speed in Codex in exchange for higher usage.

6 

7## Fast mode

8 

9Fast mode speeds up supported models, including GPT-6.1 Sol, GPT-6 Astra,

10GPT-6 Sol, and GPT-6 Luna, where available. For GPT-5.6 and GPT-5.5, the

11speed increase is 1.5x.

12 

13Use `/fast` in the CLI to toggle Fast mode. Use `/statusline` to show it in the

14footer. You can also persist the default with `service_tier = "fast"` plus

15`[features].fast_mode = true` in `config.toml`. Fast mode is available in the

16ChatGPT desktop app, Codex CLI, and IDE extension when you sign in with ChatGPT.

17 

18For supported models, Fast mode uses included subscription limits at 2.5x the

19Standard rate. Purchased credits and Enterprise pay-as-you-go usage are billed

20at 2x the Standard rate. These billing multipliers don't describe speed increases.

21 

22<a id="astra-ultrafast"></a>

23 

24## Ultrafast mode

25 

26GPT-6 Astra Ultrafast generates tokens up to 8x faster than GPT-6 Astra in

27Standard mode in Codex. This comparison measures token generation speed,

28not billing rates or overall task completion time.

29 

30Ultrafast is available in Codex and ChatGPT Work on Pro $500 and eligible

31Enterprise and Edu plans. On Pro $500, Ultrafast uses your included usage first,

32then your available credits after that allowance runs out.

33 

34For GPT-6 Astra, Ultrafast uses included subscription limits at 8x the

35Standard rate. Purchased credits and Enterprise pay-as-you-go usage are billed

36at 6x the Standard rate. These billing multipliers don't describe speed increases.

37Enterprise billing remains subject to the workspace's agreement.

38 

39For Enterprise workspaces, Ultrafast is off by default. Workspace owners can

40enable access for selected users or the workspace through

41[workspace permissions](https://learn.chatgpt.com/docs/enterprise/roles-and-workspace-permissions).

42Existing [per-user spend controls](https://learn.chatgpt.com/docs/enterprise/usage-limits) apply to

43eligible Ultrafast usage.

44 

45## Availability and billing details

46 

5**ChatGPT Work and Codex share usage.** Both use the same47**ChatGPT Work and Codex share usage.** Both use the same

6 pricing, credits, and usage limits. See [Codex pricing](https://learn.chatgpt.com/docs/pricing) for48 pricing, credits, and usage limits. See [Codex pricing](https://learn.chatgpt.com/docs/pricing) for

7 details.49 details.

8 50 

9## Fast mode51### Supported models

10 52 

11GPT-5.5 retires from ChatGPT, ChatGPT Work, and Codex on all plans on53GPT-6 Astra, GPT-6 Sol, and GPT-6 Luna support Fast mode where available.

12October 14, 2026. The OpenAI API isn't affected. See54[GPT-6.1 Sol](https://learn.chatgpt.com/docs/models#gpt-61-sol) supports Standard and Fast where

13[GPT-5.5 retirement](https://learn.chatgpt.com/docs/models#gpt-55-retirement) for migration guidance.55available. Access depends on your plan, client, workspace settings, and rollout.

56See [Models](https://learn.chatgpt.com/docs/models) for model availability and

57[Pricing](https://learn.chatgpt.com/docs/pricing#token-rates) for token rates.

14 58 

15Codex offers the ability to increase the speed of the model for increased59### Ultrafast plan and workspace requirements

16credit consumption.

17 60 

18For GPT-5.6, GPT-5.5, and GPT-5.4, Fast mode increases model speed by 1.5x.61- Eligible Enterprise workspaces use credit-based or USD usage-based

19GPT-5.6 and GPT-5.5 consume credits at 2.5x the Standard rate; GPT-5.4 consumes62 agreements. Usage is billed according to the workspace's agreement.

20credits at 2x the Standard rate.63- Eligible Edu plans use credits. Legacy Enterprise plans that rely on rate

64 limits instead of usage-based billing aren't supported.

21 65 

22For GPT-6 Astra, GPT-6 Sol, and GPT-6 Luna, Fast mode consumes credits at66Other self-serve plans don't have access to Ultrafast at launch, even with

232.5x the Standard rate where available. See [Models](https://learn.chatgpt.com/docs/models) for model availability and67purchased credits.

24[Pricing](https://learn.chatgpt.com/docs/pricing#token-rates) for token rates.68 

69Ultrafast isn't available to workspaces that require inference residency

70outside the United States. A workspace's location alone doesn't determine

71eligibility.

72 

73### API billing

74 

75With an API key, Codex uses API token pricing instead, and ChatGPT credit

76multipliers don't apply.

77 

78For API availability, request configuration, and pricing, see

79[Ultrafast mode in the API](https://developers.openai.com/api/docs/guides/ultrafast-mode).

80 

81## Retirement and migration

25 82 

26Use `/fast on`, `/fast off`, or `/fast status` in the CLI to change or inspect83[GPT-5.5 retires](https://learn.chatgpt.com/docs/models#gpt-55-retirement) from ChatGPT, ChatGPT Work,

27the current setting. You can also persist the default with `service_tier =84and Codex on all plans on October 14, 2026. The OpenAI API isn't affected.

28"fast"` plus `[features].fast_mode = true` in `config.toml`. Fast mode is

29available in the ChatGPT desktop app, Codex CLI, and IDE extension when you

30sign in with ChatGPT. Fast mode is a ChatGPT credit feature. With an API key,

31Codex uses API token pricing instead, and ChatGPT credit multipliers don't

32apply. API Priority processing has its own billing rate; for GPT-5.6, it costs

332x the Standard API token rate.

34 

35<VideoPlayer

36 src="/videos/codex/fast-mode-demo.mp4"

37 class="[&_video]:mx-auto [&_video]:max-h-[400px] [&_video]:max-w-full [&_video]:w-auto"

38/>

Details

162request a specific model or reasoning effort in your prompt,162request a specific model or reasoning effort in your prompt,

163configure `[agents]` defaults in `config.toml`, or set `model` and163configure `[agents]` defaults in `config.toml`, or set `model` and

164`model_reasoning_effort` directly in the custom agent file.164`model_reasoning_effort` directly in the custom agent file.

165For example, use `gpt-6-luna` for fast scans or a higher-effort `gpt-6-sol` configuration for more demanding reasoning.165For example, use `gpt-6-luna` for fast scans or a higher-effort `gpt-6.1-sol` configuration for more demanding reasoning.

166 166 

167For most tasks in Codex, start with 167For most tasks in Codex, start with

168 `gpt-6-sol`. Use 168 `gpt-6.1-sol` when your

169 `gpt-6-luna` when you want a faster, lower-cost option for lighter subagent169 signed-in account or workspace has [access](https://learn.chatgpt.com/docs/models#gpt-6.1-sol).

170 work.170 Otherwise, choose a model available to you. Use `gpt-6-luna` when you want a

171 faster, lower-cost option for lighter subagent work.

171 172 

172### Model choice173### Model choice

173 174 

174- **`gpt-6-sol`**: Start here for demanding agents. It's strongest for ambiguous, multi-step work that needs planning, tool use, validation, and follow-through across a larger context.175- **`gpt-6.1-sol`**: Start here for demanding agents. Use it for ambiguous, multi-step work that needs planning, tool use, validation, and follow-through across a larger context.

175- **`gpt-6-luna`**: Use for fast, narrowly scoped agents handling clear, repeatable, or high-volume work.176- **`gpt-6-luna`**: Use for fast, narrowly scoped agents handling clear, repeatable, or high-volume work.

176 177 

177### Reasoning effort (`model_reasoning_effort`)178### Reasoning effort (`model_reasoning_effort`)

178 179 

179For explicit model settings, start with `medium` for GPT-6 Sol, `high` for180For GPT-6.1 Sol, use a reasoning effort supported by your client and selected

180GPT-6 Luna, or `low` for GPT-6 Astra. Adjust for the task using a level the181model. For explicit model settings, start with `high` for GPT-6 Luna or `low`

181selected model supports.182for GPT-6 Astra. Adjust for the task using a level the selected model supports.

182 183 

183- **`ultra`**: Use for the deepest reasoning when the selected model supports184- **`ultra`**: Use for the deepest reasoning when the selected model supports

184 it.185 it.

185- **`max`** and **`xhigh`**: Use for especially demanding reasoning when the186- **`max`** and **`xhigh`**: Use for especially demanding reasoning when the

186 selected model supports these levels.187 selected model supports these levels.

187- **`high`**: Use when an agent needs to trace complex logic, check assumptions, or work through edge cases (for example, reviewer or security-focused agents).188- **`high`**: Use when an agent needs to trace complex logic, check assumptions, or work through edge cases (for example, reviewer or security-focused agents).

188- **`medium`**: Balances speed and depth; the starting point for GPT-6 Sol.189- **`medium`**: Balances speed and depth.

189- **`low`**: Use when the task is straightforward and speed matters most.190- **`low`**: Use when the task is straightforward and speed matters most.

190 191 

191Higher reasoning effort increases response time and token usage, but it can improve quality for complex work. For details, see [Models](https://learn.chatgpt.com/docs/models), [Config basics](https://learn.chatgpt.com/docs/config-file/config-basic), and [Configuration Reference](https://learn.chatgpt.com/docs/config-file/config-reference).192Higher reasoning effort increases response time and token usage, but it can improve quality for complex work. For details, see [Models](https://learn.chatgpt.com/docs/models), [Config basics](https://learn.chatgpt.com/docs/config-file/config-basic), and [Configuration Reference](https://learn.chatgpt.com/docs/config-file/config-reference).


403tool surface that matches that job, and instructions that keep it from404tool surface that matches that job, and instructions that keep it from

404drifting into adjacent work.405drifting into adjacent work.

405 406 

407The examples use [GPT-6.1 Sol](https://learn.chatgpt.com/docs/models#gpt-6.1-sol) where your signed-in

408account or workspace has access. If it isn't available, choose a model you can

409use.

410 

406#### Example 1: PR review411#### Example 1: PR review

407 412 

408This pattern splits review across three focused custom agents:413This pattern splits review across three focused custom agents:


438```toml443```toml

439name = "reviewer"444name = "reviewer"

440description = "PR reviewer focused on correctness, security, and missing tests."445description = "PR reviewer focused on correctness, security, and missing tests."

441model = "gpt-6-sol"446model = "gpt-6.1-sol"

442model_reasoning_effort = "medium"447model_reasoning_effort = "medium"

443sandbox_mode = "read-only"448sandbox_mode = "read-only"

444developer_instructions = """449developer_instructions = """


502```toml508```toml

503name = "browser_debugger"509name = "browser_debugger"

504description = "UI debugger that uses browser tooling to reproduce issues and capture evidence."510description = "UI debugger that uses browser tooling to reproduce issues and capture evidence."

505model = "gpt-6-sol"511model = "gpt-6.1-sol"

506model_reasoning_effort = "medium"512model_reasoning_effort = "medium"

507sandbox_mode = "workspace-write"513sandbox_mode = "workspace-write"

508developer_instructions = """514developer_instructions = """

annotations-extensibility.md +730 −0 created

Details

1# Annotations Extensibility

2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 

5The Browser Annotation API lets your website customize what people select,

6what context accompanies their feedback, and which controls they use to preview

7changes before sending an annotation to ChatGPT.

8 

9The Browser Annotation API isn't currently available in ChatGPT Enterprise or

10 Edu workspaces.

11 

12[Browser annotations](https://learn.chatgpt.com/docs/browser?surface=app#app-comment-on-the-page) work on your site without any code changes.

13People can select part of a page, add a comment, and send it in Context to Codex or ChatGPT Work.

14 

15As a developer, you can use the Browser Annotation API to provide context or controls specific to your application. For

16example, you can attach previews for component variants in a design system preview for developers to know how to update the components on a website.

17 

18To get help understanding the Browser Annotation API or adding annotation support to your website, install the Annotations Extensibility plugin.

19 

20[Install the Annotations Extensibility plugin](https://chatgpt.com/plugins/Plugin_94f13f4285908191bb882d31b1ffc59e)

21 

22 

23 

24 

25**Try it**

26 

27See the Browser Annotation API in action on this guide.

28 

291. Open this page in ChatGPT's built-in browser.

302. Try opening the suggested prompt that will appear in this card.

313. Enter [Annotation mode](https://learn.chatgpt.com/docs/browser?surface=app#app-comment-on-the-page), then select the table below or a code sample to switch between predefined layouts and themes.

324. You can still annotate any item on the page and see default annotation behavior.

33 

34 

35 

36 [Open in ChatGPT's browser](https://chatgpt.com/codex/deeplink?url=https%3A%2F%2Flearn.chatgpt.com%2Fdocs%2Fannotations-extensibility)

37

38

39 

40 

41 

42 

43 

44 

45 

46 

47## Choose what to customize

48 

49Start with the integration that fits your website:

50 

51 

52 

53 

54| Goal | Integration |

55| ---------------------------------------------------------------- | -------------------------------------------------------------- |

56| Make a card or other group of elements selectable as one object | [Selection targets](#customize-selection-targets) |

57| Let people select a phrase or sentence | [Text selection containers](#enable-text-selection) |

58| Include additional context with a selection | [Selection metadata](#add-context-to-a-selection) |

59| Open an annotation from your own button with a suggested comment | [Annotation requests](#open-an-annotation-from-your-website) |

60| Request feedback on an exact passage from your own UI | [Text-range requests](#request-an-annotation-for-a-text-range) |

61| Show advanced controls when an annotation opens | [Editor defaults](#choose-the-editors-default-mode) |

62| Preview application properties or collect choices | [Custom controls](#add-custom-controls) |

63| Select individual objects drawn inside a canvas | [Annotation surfaces](#make-canvas-objects-selectable) |

64| Turn Annotation mode on or off from your site | [Annotation mode controls](#control-annotation-mode) |

65 

66 

67 

68 

69This guide targets the DevDay 2026 release of the ChatGPT desktop app and later.

70The JavaScript API is available through `document.oai.annotation` in the app's

71built-in browser, on secure, top-level pages such as HTTPS or localhost. When

72enabled, the browser installs it before your page's scripts run. Feature-detect

73each method to support older or unsupported browsers, then initialize your

74integration once its DOM elements exist. No readiness event or polling is needed.

75 

76API methods return synchronously, and registration handles are ready to use

77immediately. The browser can finish loading the annotation editor afterward.

78A surface's `hitTest` callback can return a promise.

79 

80## Customize selection targets

81 

82By default, Annotation mode selects elements from the page's DOM, favoring

83targets such as text, images, and controls. To make a larger object selectable,

84mark its containing region with `oai-annotation-container` and its selectable

85descendants with `oai-annotatable`.

86 

87This example makes a chart card selectable as one object:

88 

89```html

90<section oai-annotation-container>

91 <article id="chart-card" oai-annotatable="Q3 Revenue">

92 <h2>Q3 Revenue</h2>

93 <p>$120,000 this quarter</p>

94 <button type="button">More info</button>

95 </article>

96</section>

97```

98 

99Pointing anywhere within the card highlights the entire card. The optional

100`oai-annotatable` value gives the object a name shown to the user and the model.

101Choose names that distinguish nearby objects, or omit the value.

102 

103The container defines where these selection rules apply. An

104`oai-annotatable` attribute on its own doesn't change selection behavior.

105Within a container, the browser selects the nearest marked target containing

106the element under the pointer. Nested containers use the nearest container.

107Unmarked areas inside a container create a webpage annotation; areas outside

108all containers keep the default behavior.

109 

110## Enable text selection

111 

112Add `oai-annotation-container-text` to a region to let people drag to select text

113during Annotation mode. The attribute doesn't need a value:

114 

115```html

116<article oai-annotation-container-text>

117 <h2>Design guidelines</h2>

118 <p>Use consistent spacing between related components.</p>

119 <p>Leave more space between separate groups.</p>

120</article>

121```

122 

123Releasing a nonempty selection opens the text annotation editor with the

124selected range and its context. Clicking without selecting text doesn't create

125an annotation. **Escape** or a canceled gesture cancels the selection.

126 

127The nearest text or DOM selection container determines how a gesture begins.

128Text containers don't use `oai-annotatable` markers for element picking. Nest

129an `oai-annotation-container` to restore element picking, or a text container to

130restore text selection. If both attributes are on one element, text selection

131takes precedence.

132 

133Text selection follows the page's normal selection rules and can extend beyond

134the starting container. A container doesn't clip the range or enable selection

135inside an iframe. Text fields remain selectable, but ordinary page clicks and

136native actions on controls remain blocked during Annotation mode. Explicit

137`request()` calls keep their existing behavior.

138 

139Text selection containers take effect only during Annotation mode when the

140 site annotation capability and per-site setting are enabled.

141 

142## Add context to a selection

143 

144Add `oai-annotation-metadata` to a marked target to include context that may not

145be visible on the page. For example, a fictional contact row can include an

146email address for a request to draft an email:

147 

148```html

149<section oai-annotation-container>

150 <div

151 id="contact-row"

152 oai-annotatable="Alex Morgan"

153 oai-annotation-metadata='{"email":"alex@example.com"}'

154 >

155 <div>Alex Morgan</div>

156 <div>Project lead</div>

157 </div>

158</section>

159```

160 

161Selecting either line selects the entire row. The metadata appears with the

162annotation and accompanies it in the conversation. Include only context you

163intend to share with both the user and the model. Sending an email would still

164require a connected email tool.

165 

166Use a small, flat JSON object with these limits:

167 

168- Up to six properties, with string, finite number, boolean, or `null` values.

169- Keys up to 64 characters and string values up to 256 characters.

170- Up to 2,048 bytes for the serialized object.

171 

172Keys must start with an ASCII letter and contain only ASCII letters, digits,

173spaces, underscores, or hyphens. Use single spaces between words. Nested

174objects and arrays aren't supported. The browser ignores invalid metadata.

175 

176You can also provide metadata through `request()` or a surface's `hitTest`

177result.

178 

179## Open an annotation from your website

180 

181Call `document.oai.annotation.request(target, options)` directly from a user

182interaction, such as a button press. The target can be a connected HTML element

183within the visible area of the current document or a

184[DOM `Range`](#request-an-annotation-for-a-text-range). It doesn't need annotation

185attributes. Virtual object IDs aren't supported.

186 

187Site-initiated requests may require user permission; users can re-enable blocked

188annotation features under **Site tools > Annotation features**.

189 

190Add this button beside the chart card from the selection example, then run the

191script after both elements exist:

192 

193```html

194<button id="discuss-chart" type="button" hidden>Explain more</button>

195```

196 

197```javascript

198const card = document.getElementById("chart-card");

199const button = document.getElementById("discuss-chart");

200 

201button.hidden = typeof document.oai?.annotation?.request !== "function";

202 

203button.addEventListener("click", () => {

204 const annotation = document.oai?.annotation;

205 if (typeof annotation?.request !== "function") return;

206 

207 annotation.request(card, {

208 initialComment: "Explain the latest trend in this graph.",

209 });

210});

211```

212 

213Selecting **Explain more** asks the browser to open an annotation with the card

214selected and an editable comment. The person can edit, save, and send it with

215their message. Opening an annotation doesn't send a message to ChatGPT; only

216the user can submit it.

217 

218Keep the call within the active user interaction. Awaiting a network request

219first can lose that interaction.

220 

221The optional second argument supports these fields:

222 

223| Option | Behavior |

224| --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

225| `mode` | Use `"advanced"` to open advanced controls for an element, or `"default"` to use the default editor behavior. Defaults to `"default"`. Custom controls can still open with `"default"`; see [Editor defaults](#choose-the-editors-default-mode). Text ranges support only `"default"`. |

226| `enterAnnotationMode` | Set to `true` to enter Annotation mode and remain in it after canceling or sending the annotation. |

227| `metadata` | Valid, nonempty metadata replaces the target's HTML metadata for this request. This option is ignored for text ranges and when the target element is inside a shadow DOM. |

228| `initialComment` | Supplies an editable comment, up to 240 UTF-16 code units. |

229 

230`request()` returns an object with an `accepted` boolean. Check

231`result.accepted`, not the result object, to see whether the browser received

232and validated the request. It doesn't confirm that the editor opened or that

233the person saved or sent an annotation.

234 

235While the editor loads, the browser can hold one accepted request. It can

236decline another while a request is pending, an editor is open, or ChatGPT is

237controlling the browser.

238 

239### Request an annotation for a text range

240 

241Pass a DOM `Range` to request feedback on a passage without changing the browser's

242text selection. This example selects the paragraph's contents; it doesn't need

243an `oai-annotation-container-text` attribute:

244 

245```html

246<p id="draft-passage">Leave more space between separate groups.</p>

247<button id="discuss-passage" type="button" hidden>Discuss this passage</button>

248```

249 

250Run this script after both elements exist:

251 

252```javascript

253const passage = document.getElementById("draft-passage");

254const button = document.getElementById("discuss-passage");

255 

256button.hidden = typeof document.oai?.annotation?.request !== "function";

257 

258button.addEventListener("click", () => {

259 const annotation = document.oai?.annotation;

260 if (typeof annotation?.request !== "function") return;

261 

262 const range = document.createRange();

263 range.selectNodeContents(passage);

264 annotation.request(range, {

265 initialComment: "Suggest a clearer version of this guidance.",

266 });

267});

268```

269 

270The range must contain nonempty visible text in the current document, with at

271least part of the selection in the visible page area. It can contain at most

27220,000 UTF-16 code units. Collapsed ranges, whitespace-only text, hidden selected

273text, and ranges in closed shadow roots aren't supported.

274 

275Text-range requests use only the default text editor. A request with

276`mode: "advanced"` is rejected, and request metadata is ignored. Keep the target

277text available while an accepted request waits for the editor: the browser

278checks the range again before opening it. Text selection containers separately

279enable people to drag to select text during Annotation mode.

280 

281## Choose the editor's default mode

282 

283To show advanced controls immediately for annotations opened through the

284browser's selection UI, add this tag to your page's `<head>`:

285 

286```html

287<meta name="oai-annotation-editor-default-mode" content="advanced" />

288```

289 

290For annotations opened from your own UI, pass `{ mode: "advanced" }` to

291`request()`. Use `mode: "default"`, or omit it, for the default editor behavior.

292The page's meta setting doesn't override this request option. Default mode

293doesn't guarantee a comment-only editor: custom controls with proposed starting

294values, or controls that omit `currentValue`, can open the controls editor.

295 

296Manual **Adjust**, collapse, and **Option-click** controls are available only in

297Codex or on localhost. On hosted sites in ChatGPT, registered custom controls

298appear automatically without an **Adjust** or collapse button. Page-requested

299advanced mode still works there.

300 

301## Add custom controls

302 

303Use `registerControls()` to associate annotation controls with one or more DOM

304elements. Controls can preview application properties, such as a spacing token,

305or collect choices to include with a request, such as an email tone.

306 

307### Preview a shared spacing token

308 

309Both cards in this example use the same CSS property:

310 

311```html

312<style>

313 #component-preview {

314 --card-padding: 16px;

315 }

316 

317 .preview-card {

318 padding: var(--card-padding);

319 border: 1px solid #d1d5db;

320 }

321</style>

322 

323<section id="component-preview" oai-annotation-container>

324 <article class="preview-card" oai-annotatable="Profile card">

325 Profile card

326 </article>

327 <article class="preview-card" oai-annotatable="Summary card">

328 Summary card

329 </article>

330</section>

331```

332 

333Run this script after creating the preview:

334 

335```javascript

336const preview = document.getElementById("component-preview");

337const annotation = document.oai?.annotation;

338 

339function previewSpacing(event) {

340 const { callback, value } = event.detail;

341 if (callback === "setCardPadding") {

342 preview.style.setProperty("--card-padding", `${value}px`);

343 }

344}

345 

346let registration;

347if (typeof annotation?.registerControls === "function") {

348 preview.addEventListener("oaiannotationcontrolchange", previewSpacing);

349 registration = annotation.registerControls({

350 targets: preview.querySelectorAll(".preview-card"),

351 controlsHeading: "Card spacing",

352 controlsMode: "replace",

353 controls: [

354 {

355 type: "range",

356 label: "Card padding (pixels)",

357 callback: "setCardPadding",

358 reference: "--card-padding",

359 min: 8,

360 max: 32,

361 step: 4,

362 currentValue: 16,

363 },

364 ],

365 });

366}

367 

368function disposeAnnotationControls() {

369 preview.style.removeProperty("--card-padding");

370 registration?.dispose();

371 preview.removeEventListener("oaiannotationcontrolchange", previewSpacing);

372}

373```

374 

375Annotate either card and change **Card padding (pixels)** from 16 to 24. On

376hosted sites in ChatGPT, the controls appear automatically; in Codex or on

377localhost, select **Adjust** if needed. Both cards update. The annotation records the label, reference,

378and old and new values. Clearing the preview restores the original padding.

379Call `disposeAnnotationControls()` when removing the component.

380 

381### Collect a choice without a preview

382 

383Use the contact row from the metadata example to offer an email tone:

384 

385```javascript

386const contact = document.getElementById("contact-row");

387const registration = document.oai?.annotation?.registerControls?.({

388 targets: contact,

389 controlsHeading: "Email options",

390 controlsMode: "replace",

391 controls: [

392 {

393 type: "select",

394 label: "Email tone",

395 callback: "emailTone",

396 options: [

397 { label: "Professional", value: "professional" },

398 { label: "Friendly", value: "friendly" },

399 { label: "Direct", value: "direct" },

400 ],

401 defaultValue: "professional",

402 },

403 ],

404});

405```

406 

407This control doesn't need an event handler because it doesn't preview a page

408change. Omitting `currentValue` tells the browser to include the selected tone

409even if the user keeps the initial option. Call `registration?.dispose()` when

410removing the row.

411 

412For select controls, preview callbacks receive `option.value`, such as

413`"professional"`. Annotation history and ChatGPT receive the visible

414`option.label`, such as `"Professional"`, for both the previous and selected

415options. Use labels that explain each choice; internal IDs in `value` aren't

416sent as the choice's text.

417 

418### Configure controls and starting values

419 

420Use `controlsMode: "replace"` to show only your controls for the registered

421targets, or `"extend"` to show them alongside built-in controls. An optional

422`controlsHeading` names the panel. The browser trims it and accepts one to 80

423characters. Without a heading, the panel shows the element's HTML tag. The

424heading isn't included in the context sent to ChatGPT.

425 

426A registration supports up to 12 controls. Each requires a `type`, visible

427`label`, and `callback` identifier:

428 

429| Type | Value | Additional fields |

430| -------- | ------------------------------ | ------------------------------------------------- |

431| `color` | Hex color, such as `"#2563eb"` | None |

432| `range` | Number | `min`, `max`, and `step` |

433| `select` | String | `options`, an array of `{ label, value }` objects |

434| `toggle` | boolean | None |

435 

436`callback` is a string identifier, not a JavaScript function. Make it unique

437within the registration, start it with an ASCII letter, and use ASCII letters,

438digits, underscores, or hyphens. An optional `reference` identifies the property

439being changed and accompanies the label and value in the annotation.

440 

441Set `currentValue` to the property's valid ordinary value, including unsaved

442edits. Don't use preview state or unfinished input as the baseline. The browser

443uses it for before-and-after changes and resets. When application state changes, use

444`registration.update({ controls })` to refresh the controls' `currentValue`

445values. Updates affect future annotations; existing annotations retain their

446captured values.

447 

448Set `defaultValue` for a suggested starting value; it takes precedence over

449`currentValue` for the initial control

450state. If you omit both, the control starts with white for a color, the minimum

451for a range, the first option for a select, or `false` for a toggle.

452 

453Keep proposed values separate from ordinary drafts. If an update throws or a

454request fails or returns `accepted: false`, discard the attempted proposal and

455restore the prior controls and proposal state. Retain proposals when a request

456is accepted: the browser may queue it before capturing the controls.

457 

458### Validate controls and registrations

459 

460The browser validates registrations and updates against these limits:

461 

462| Field or resource | Constraint |

463| ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

464| Controls | Up to 12 per registration, with unique `callback` identifiers. Use only the fields defined for the control type. |

465| Labels and headings | Control labels, option labels, and `controlsHeading` must be nonempty after trimming and at most 80 UTF-16 code units. Control text can't contain control characters or direction-changing characters. |

466| Identifiers | `callback` is at most 80 UTF-16 code units after trimming, using the format described above. `reference` is 1–80 characters and allows ASCII letters, digits, and `_ . / : @ $ # -`, without spaces. |

467| Select options | 1–12 options with distinct `value` strings of at most 512 UTF-16 code units. Supplied `currentValue` and `defaultValue` must match an option's value. |

468| Range values | `min`, `max`, `currentValue`, and `defaultValue` must be finite numbers between −10,000 and 10,000. Require `min < max`, a `step` from 0.001 to 10,000 that is no larger than `max - min`, and starting values within the range. Starting values don't have to align with `step`. |

469| Colors and toggles | Colors must use 3, 4, 6, or 8 hexadecimal digits after `#`. Toggle values must be `true` or `false`. |

470| Targets | 1–128 target entries when registering, all elements in the current document. Updates can pass `targets: []` to detach. Each document supports up to 64 controls registrations and 1,024 registration-to-target associations. |

471| Serialized controls | The JSON payload containing `controls`, `controlsHeading`, and `controlsMode` must fit within 16,384 UTF-16 code units. Use data that can be encoded as JSON, without functions, symbols, or big integers. |

472 

473`registerControls()` and `registration.update()` can throw synchronously for

474invalid definitions, targets, or exceeded limits. An update after `dispose()`

475also throws. A rejected update preserves the previous registration, including

476its controls and targets. Handle failures at the call site, keep ordinary

477editing usable, and reuse or dispose of owned registrations to stay within the

478limits.

479 

480### Handle previews and resets

481 

482The `oaiannotationcontrolchange` event bubbles from the selected element. Its

483`detail` contains `callback`, `value`, and `action`:

484 

485| Action | Apply the supplied value to |

486| ------------------ | ------------------------------------------------------- |

487| `preview` | Show the requested change. |

488| `preview-original` | Temporarily show the original state for comparison. |

489| `reset` | Restore the original state when the preview is cleared. |

490 

491Apply the supplied value for every action, as the spacing example does. Make

492handlers reversible and safe to call repeatedly. Preview events don't request

493a permanent change; save through your application's normal save flow. Keep

494ordinary drafts, unfinished input, and previews separate so unrelated edits

495don't overwrite a preview. When someone edits the same setting, replace its

496preview and update the baseline for future annotations.

497 

498Keep the registration handle for updates and cleanup. `update()` accepts any

499combination of `targets`, `controls`, `controlsHeading`, and `controlsMode`.

500Omitted fields keep their previous values. For example, use

501`registration.update({ targets: newElement })` when replacing a component's DOM

502element. Target collections capture existing elements and don't track future

503selector matches.

504 

505Pass `targets: []` to detach the registration or `controls: []` to clear its

506controls. Call `dispose()` and remove event listeners when removing the

507integration. Cleanup must also restore ordinary rendering: `dispose()` only

508removes the controls registration and doesn't undo your preview changes. The spacing example

509removes its inline override to restore the original CSS value. Both methods

510return synchronously without a value. Updates affect

511future selections; saved annotations retain their captured controls and target.

512 

513Control events target the element captured by the annotation. Updating a

514registration's targets does not redirect existing annotations. Reset events can

515still fire on a removed element, so a listener on its former parent will not

516receive them.

517 

518## Make canvas objects selectable

519 

520An annotation surface lets your application identify individual objects drawn

521inside a canvas. Register the host element with `registerSurface()` and provide

522a `hitTest` function that returns an object with a stable `id`, or `null` for

523empty space.

524 

525The host must be a connected HTML element outside shadow DOM in a secure,

526top-level document. Surface registration isn't supported inside an iframe.

527 

528This example draws a revenue bar and makes it selectable. Put the script after

529the canvas:

530 

531```html

532<canvas id="revenue-canvas" width="480" height="240">

533 Revenue this quarter: $120,000.

534</canvas>

535```

536 

537```javascript

538const canvas = document.getElementById("revenue-canvas");

539const context = canvas.getContext("2d");

540const bar = { x: 40, y: 60, width: 320, height: 100 };

541 

542function drawRevenue(highlighted = false) {

543 context.clearRect(0, 0, canvas.width, canvas.height);

544 context.fillStyle = "#2563eb";

545 context.fillRect(bar.x, bar.y, bar.width, bar.height);

546 if (highlighted) {

547 context.strokeStyle = "#111827";

548 context.lineWidth = 3;

549 context.strokeRect(bar.x, bar.y, bar.width, bar.height);

550 }

551}

552 

553drawRevenue();

554 

555const surface = document.oai?.annotation?.registerSurface?.({

556 element: canvas,

557 hitTest({ clientX, clientY }) {

558 const bounds = canvas.getBoundingClientRect();

559 const scaleX = bounds.width / canvas.width;

560 const scaleY = bounds.height / canvas.height;

561 const rect = {

562 x: bounds.left + bar.x * scaleX,

563 y: bounds.top + bar.y * scaleY,

564 width: bar.width * scaleX,

565 height: bar.height * scaleY,

566 };

567 

568 if (

569 clientX < rect.x ||

570 clientX > rect.x + rect.width ||

571 clientY < rect.y ||

572 clientY > rect.y + rect.height

573 ) {

574 return null;

575 }

576 

577 return {

578 id: "revenue-this-quarter",

579 name: "Revenue this quarter",

580 role: "chart-bar",

581 metadata: { Metric: "Revenue", Value: 120000 },

582 rect,

583 };

584 },

585 renderSelection({ hoveredId, selectedId }) {

586 drawRevenue(

587 hoveredId === "revenue-this-quarter" ||

588 selectedId === "revenue-this-quarter"

589 );

590 },

591});

592```

593 

594Hovering over the bar in Annotation mode highlights it. Selecting it opens an

595annotation with the object's name, metadata, and a screenshot of the selection.

596 

597Keep IDs stable within a surface. The optional `name` is visible to the user;

598`role` gives a short semantic description. The optional `rect` uses CSS pixels

599relative to the visible page area, matching `clientX` and `clientY`. Convert from scene coordinates,

600including scale, pan, and zoom.

601 

602`hitTest` can return a promise and receives an `AbortSignal` as `signal` to

603cancel superseded work. The browser allows 250 milliseconds before falling

604back to DOM selection. Errors and invalid results also fall back. Return

605`null` explicitly for a successful hit test with no object.

606 

607Canceled work must still resolve or reject its promise. The browser permits

608only one `hitTest` callback in flight and holds that slot until the promise

609settles, even after cancellation or a timeout. If a worker handles picking,

610settle the pending promise when its work is aborted; dropping a canceled worker

611response can block subsequent canvas picking.

612 

613Use the optional `renderSelection` callback for application-specific feedback.

614Clear feedback when both IDs are `null`. Call `surface?.invalidate()` after

615moving objects or changing zoom, and `surface?.dispose()` when removing the

616integration. Both return synchronously without a value.

617 

618### Add controls to canvas objects

619 

620Register custom controls on the surface's DOM element. Drawn objects, called

621virtual objects in the API, use your custom controls; built-in CSS and text

622controls don't apply to them.

623 

624For multiple objects, use `renderSelection` to update the host's controls when

625`selectedId` changes, before the browser captures the annotation. Control

626events include `detail.virtualTarget: { surfaceId, targetId }`. Route each event

627using that captured identity and its `callback`, rather than the current

628selection. `targetId` matches the `id` from `hitTest`; `surfaceId` identifies the

629browser's surface registration. Ordinary DOM events omit `virtualTarget`.

630 

631Preview, comparison, and reset events retain the original object's identity

632after another object is selected. Reopening a saved annotation doesn't rerun

633hit testing to replace its captured object or metadata.

634 

635## Control Annotation mode

636 

637Use `toggle()` to request a mode change, `isActive()` to read confirmed state,

638and the document's `oaiannotationmodechange` event to keep your UI in sync.

639Feature-detect both methods for older or unsupported browsers. Add this button,

640then run the script after it exists:

641 

642```html

643<button id="toggle-annotations" type="button" hidden>

644 Enter annotation mode

645</button>

646```

647 

648```javascript

649const button = document.getElementById("toggle-annotations");

650const annotation = document.oai?.annotation;

651 

652function renderMode(active) {

653 button.textContent = active

654 ? "Exit annotation mode"

655 : "Enter annotation mode";

656}

657 

658const onModeChange = (event) => renderMode(event.detail.active);

659const onClick = () => annotation.toggle(!annotation.isActive());

660 

661if (

662 typeof annotation?.toggle === "function" &&

663 typeof annotation?.isActive === "function"

664) {

665 document.addEventListener("oaiannotationmodechange", onModeChange);

666 button.addEventListener("click", onClick);

667 renderMode(annotation.isActive());

668 button.hidden = false;

669}

670 

671function cleanupAnnotationButton() {

672 document.removeEventListener("oaiannotationmodechange", onModeChange);

673 button.removeEventListener("click", onClick);

674 button.hidden = true;

675}

676```

677 

678`toggle()` inverts the mode. Pass `true` to ensure it's on or `false` to ensure

679it's off. Repeated requests with the same boolean are idempotent. Passing

680`true` preserves an active editor or pending activation; `false` cancels

681pending activation and uses the normal exit flow.

682 

683Call `toggle()` from a live user interaction. Its synchronous `{ accepted }`

684result acknowledges the request, not a confirmed mode change. Browser

685eligibility checks can still prevent the change. Read state from `isActive()`

686and the event, as the example does.

687 

688`isActive()` needs no user gesture. The browser updates it before dispatching

689`oaiannotationmodechange`, whose `event.detail.active` is a boolean. The browser

690doesn't send an initial event or a duplicate for a forced no-op, so initialize your UI

691from the getter. If access is revoked while active, a final event reports

692`active: false` and a retained getter returns `false`.

693 

694Annotation mode captures page clicks. Hold **Space** to use page controls,

695including your exit button, or exit through the browser's annotation UI.

696Holding **Space** alone leaves `isActive()` true. The API doesn't support an

697`oai-annotation-ignore` or other attribute that lets clicks pass through.

698 

699Exiting closes the editor and preserves saved annotations without submitting

700them or moving them into the composer. Call `cleanupAnnotationButton()` when

701removing the component. The captured API reference lets cleanup remove

702listeners even if the namespace has disappeared.

703 

704## Test your integration

705 

706Open your website in the desktop app's built-in browser and test the features

707you added:

708 

7091. Enter Annotation mode and select objects and text. Check that highlights,

710 names, ranges, and metadata match the intended targets.

7112. Open an annotation from your site's button. Check the selected element or

712 text range, initial comment, and editor mode.

7133. Change a custom control, compare with the original, and clear the preview.

714 Check that your application restores the original state.

7154. For canvas content, test empty space, resizing, and scene changes. Switch

716 objects and confirm control events still update the captured target. Cancel

717 an asynchronous hit test and confirm that later picks still work.

7185. Save, reopen, and edit an annotation from the composer's attachment preview.

719 Check that it retains its controls and target, and that removing it clears

720 any preview.

7216. Send an annotation with a message. Confirm that ChatGPT receives the

722 selected content, metadata, and requested values, including visible select

723 labels and unchanged choices on controls that omit `currentValue`.

7247. Open the site in a browser without the API and verify that normal

725 interactions still work.

726 

727To expose actions ChatGPT can take on your website, add

728[Site tools (WebMCP)](https://learn.chatgpt.com/docs/webmcp). Annotations bring the person's selection

729and feedback into the conversation; site tools let the agent act on that

730context through your application's existing capabilities.

app-server.md +18 −11

Details

105 105 

106## Message schema106## Message schema

107 107 

108Requests include `method`, `params`, and `id`:108Requests include `method`, `params`, and `id`.

109 

110The examples use [GPT-6.1 Sol](https://learn.chatgpt.com/docs/models#gpt-6.1-sol), which requires access

111for the signed-in account or workspace. Use [`model/list`](#list-models-modellist)

112to select an available model if needed.

109 113 

110```json114```json

111{ "method": "thread/start", "id": 10, "params": { "model": "gpt-6-sol" } }115{ "method": "thread/start", "id": 10, "params": { "model": "gpt-6.1-sol" } }

112```116```

113 117 

118 

114Responses echo the `id` with either `result` or `error`:119Responses echo the `id` with either `result` or `error`:

115 120 

116```json121```json


144 149 

145Example (Node.js / TypeScript):150Example (Node.js / TypeScript):

146 151 

147```ts152```typescript

148 153import { spawn } from "node:child_process";

149 

150 154 

151const proc = spawn("codex", ["app-server"], {155const proc = spawn("codex", ["app-server"], {

152 stdio: ["pipe", "pipe", "inherit"],156 stdio: ["pipe", "pipe", "inherit"],


188 },187 },

189});188});

190send({ method: "initialized", params: {} });189send({ method: "initialized", params: {} });

191send({ method: "thread/start", id: 1, params: { model: "gpt-6-sol" } });190send({ method: "thread/start", id: 1, params: { model: "gpt-6.1-sol" } });

192```191```

193 192 

193 

194## Core primitives194## Core primitives

195 195 

196- **Thread**: A conversation between a user and the Codex agent. Threads contain turns.196- **Thread**: A conversation between a user and the Codex agent. Threads contain turns.


398{ "method": "model/list", "id": 6, "params": { "limit": 20, "includeHidden": false } }398{ "method": "model/list", "id": 6, "params": { "limit": 20, "includeHidden": false } }

399{ "id": 6, "result": {399{ "id": 6, "result": {

400 "data": [{400 "data": [{

401 "id": "gpt-6-sol",401 "id": "gpt-6.1-sol",

402 "model": "gpt-6-sol",402 "model": "gpt-6.1-sol",

403 "displayName": "GPT-6 Sol",403 "displayName": "GPT-6.1 Sol",

404 "hidden": false,404 "hidden": false,

405 "defaultReasoningEffort": "medium",405 "defaultReasoningEffort": "medium",

406 "supportedReasoningEfforts": [{406 "supportedReasoningEfforts": [{


493 493 

494```json494```json

495{ "method": "thread/start", "id": 10, "params": {495{ "method": "thread/start", "id": 10, "params": {

496 "model": "gpt-6-sol",496 "model": "gpt-6.1-sol",

497 "cwd": "/Users/me/project",497 "cwd": "/Users/me/project",

498 "approvalPolicy": "never",498 "approvalPolicy": "never",

499 "sandbox": "workspaceWrite",499 "sandbox": "workspaceWrite",


978 "writableRoots": ["/Users/me/project"],979 "writableRoots": ["/Users/me/project"],

979 "networkAccess": true980 "networkAccess": true

980 },981 },

981 "model": "gpt-6-sol",982 "model": "gpt-6.1-sol",

982 "effort": "medium",983 "effort": "medium",

983 "summary": "concise",984 "summary": "concise",

984 "personality": "friendly",985 "personality": "friendly",


1909 1911 

1910## Auth endpoints1912## Auth endpoints

1911 1913 

1914If you’ve built a local or open-source application using Codex app-server authentication, you can continue using it, though we recommend migrating to Sign in with ChatGPT so users have greater control over and visibility into their usage. See developer docs for Sign in with ChatGPT [here](https://developers.openai.com/siwc), and our implementation cookbook [here](https://developers.openai.com/cookbook/articles/sign-in-with-chatgpt). App-server authentication has never been permitted for commercial or hosted services. We launched Sign in with ChatGPT to support these use cases, and we’re excited to see what you build. Join our partner waitlist [here](https://openai.com/form/sign-in-with-chatgpt-interest/).

1915 

1912The JSON-RPC auth/account surface exposes request/response methods plus server-initiated notifications (no `id`). Use these to determine auth state, start or cancel logins, logout, inspect ChatGPT rate limits, and notify workspace owners about depleted credits or usage limits.1916The JSON-RPC auth/account surface exposes request/response methods plus server-initiated notifications (no `id`). Use these to determine auth state, start or cancel logins, logout, inspect ChatGPT rate limits, and notify workspace owners about depleted credits or usage limits.

1913 1917 

1914### Authentication modes1918### Authentication modes

Details

7paused, and completed tasks and recent runs in **Scheduled**. You can combine7paused, and completed tasks and recent runs in **Scheduled**. You can combine

8scheduled tasks with [skills](https://learn.chatgpt.com/docs/build-skills) for more complex work.8scheduled tasks with [skills](https://learn.chatgpt.com/docs/build-skills) for more complex work.

9 9 

10**For workspace admins:** See [Set up and manage teams and Team Tasks](https://learn.chatgpt.com/docs/enterprise/teams) for recurring or event-triggered work shared by a team, including permissions and connection setup. Team Tasks run in the cloud through the team's service account and configured app connections.

11 

10<ContentModeSwitch group="codex-surface" ids="app,web">12<ContentModeSwitch group="codex-surface" ids="app,web">

11 13 

12GPT-5.5 retires from ChatGPT, ChatGPT Work, and Codex on all plans on14GPT-5.5 retires from ChatGPT, ChatGPT Work, and Codex on all plans on


153If a scheduled task uses a retired model, update it to an available replacement.155If a scheduled task uses a retired model, update it to an available replacement.

154See [model migration guidance](https://learn.chatgpt.com/docs/models#deprecated-codex-models).156See [model migration guidance](https://learn.chatgpt.com/docs/models#deprecated-codex-models).

155 157 

156 

157 

158> Illustration: ChatGPT composer ready to create a scheduled task with 6 Sol Medium selected.

159 

160 

161 

162Scheduled tasks run unattended with your default sandbox settings. Start with the158Scheduled tasks run unattended with your default sandbox settings. Start with the

163narrowest access that lets the task succeed, and grant network or broader file159narrowest access that lets the task succeed, and grant network or broader file

164access only when required. [Understand sandboxing](https://learn.chatgpt.com/docs/sandboxing).160access only when required. [Understand sandboxing](https://learn.chatgpt.com/docs/sandboxing).


171The **Scheduled** view acts as your inbox. Scheduled task runs with findings167The **Scheduled** view acts as your inbox. Scheduled task runs with findings

172appear there, and an unread indicator shows when a run needs your attention.168appear there, and an unread indicator shows when a run needs your attention.

173 169 

174 

175 

176> Illustration: Scheduled tasks page with All, Active, and Paused filters and three scheduled tasks.

177 

178 

179 

180Standalone scheduled tasks start a new chat for each scheduled run and report170Standalone scheduled tasks start a new chat for each scheduled run and report

181results in **Scheduled**. Use them when each run should be independent or when one171results in **Scheduled**. Use them when each run should be independent or when one

182scheduled task should run across one or more projects. If you need a custom172scheduled task should run across one or more projects. If you need a custom

app/browser.md +17 −4

Details

47to work in an existing Chrome, Edge, Brave, Opera, or Vivaldi tab or use your47to work in an existing Chrome, Edge, Brave, Opera, or Vivaldi tab or use your

48regular browser profile.48regular browser profile.

49 49 

50Open the built-in browser from the toolbar, by clicking a URL, by navigating50Select **New tab**, then enter a URL to open the built-in browser. You can also

51manually, or by pressing <kbd>Cmd</kbd>+<kbd>Shift</kbd>+<kbd>B</kbd>51open a URL from the chat or press <kbd>Cmd</kbd>+<kbd>T</kbd>

52(<kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>B</kbd> on Windows).52(<kbd>Ctrl</kbd>+<kbd>T</kbd> on Windows and Linux) to open a browser tab.

53 53 

54 54 

55 55


59 59 

60 60 

61 61 

62## Arrange tabs and chat

63 

64Select **Enter full view** to expand the current tab, or **Enter split view**

65to show the chat and tab side by side. Use <kbd>Cmd</kbd>+<kbd>Shift</kbd>+<kbd>B</kbd>

66(<kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>B</kbd> on Windows and Linux) to return from

67full view to split view, or to show or hide tabs beside the chat.

68 

62## Search from the address bar69## Search from the address bar

63 70 

64Start typing in the built-in browser's address bar to find pages from its71Start typing in the built-in browser's address bar to find pages from its


131When a bug is visible only in the rendered page, use browser comments to give138When a bug is visible only in the rendered page, use browser comments to give

132ChatGPT precise feedback.139ChatGPT precise feedback.

133 140 

1341. Turn on **Annotation mode**.141 

142 

143> Illustration: ChatGPT's built-in browser toolbar with the Annotate button highlighted

144 

145 

146 

1471. Select **Annotate** in the browser toolbar to enter **Annotation mode**.

1352. Click an element, or drag to select an area.1482. Click an element, or drag to select an area.

1363. Write and save your comment.1493. Write and save your comment.

1374. Send a message in the chat asking ChatGPT to address the comments.1504. Send a message in the chat asking ChatGPT to address the comments.

app/features.md +88 −1

Details

13 hero={{13 hero={{

14 illustration: "features-menu",14 illustration: "features-menu",

15 backgroundImage: "/images/codex/codex-wallpaper-1.webp",15 backgroundImage: "/images/codex/codex-wallpaper-1.webp",

16 alt: "Codex sidebar and Add menu for chats, plugins, and content tools",16 alt: "Codex navigation and Add menu for chats, plugins, and content tools",

17 }}17 }}

18 sections={[18 sections={[

19 {19 {


121 href: "/codex/plugins",121 href: "/codex/plugins",

122 icon: "plugin",122 icon: "plugin",

123 },123 },

124 {

125 title: "Sign in with ChatGPT",

126 description:

127 "Use your ChatGPT account in other apps and choose how they use your plan.",

128 href: "/codex/sign-in-with-chatgpt",

129 icon: "connect",

130 },

124 {131 {

125 title: "Web search",132 title: "Web search",

126 description:133 description:


162 },169 },

163 ],170 ],

164 },171 },

172 {

173 title: "ChatGPT dots",

174 description: "Set up your dot and manage its ongoing work.",

175 pages: [

176 {

177 title: "Overview",

178 description: "Understand your dot and its connections.",

179 href: "/codex/dots",

180 icon: "robot",

181 },

182 {

183 title: "Getting started",

184 description: "Create your dot and give it a responsibility.",

185 href: "/codex/dots/getting-started",

186 icon: "chat",

187 },

188 {

189 title: "Messaging",

190 description: "Contact your dot in ChatGPT and connected channels.",

191 href: "/codex/dots/channels",

192 icon: "connect",

193 },

194 {

195 title: "Tasks and memory",

196 description: "Understand scheduled work, context, and research.",

197 href: "/codex/dots/tasks-and-memory",

198 icon: "calendar",

199 },

200 {

201 title: "Computers and apps",

202 description: "Connect tools and inspect computer work.",

203 href: "/codex/dots/computers-and-apps",

204 icon: "computerUse",

205 },

206 {

207 title: "Controls",

208 description: "Review activity, manage rules, and stop work.",

209 href: "/codex/dots/controls",

210 icon: "settings",

211 },

212 ],

213 },

214 {

215 title: "ChatGPT Space",

216 description:

217 "Develop shared work in Pages with ChatGPT and collaborators.",

218 pages: [

219 {

220 title: "Space overview",

221 description:

222 "Find files and Pages, and develop your work with ChatGPT.",

223 href: "/codex/space",

224 icon: "workspace",

225 },

226 {

227 title: "Getting started",

228 description: "Draft your first Page.",

229 href: "/codex/space/getting-started",

230 icon: "folder",

231 },

232 {

233 title: "Pages",

234 description: "Write, organize, and revise your work.",

235 href: "/codex/space/pages",

236 icon: "stack",

237 },

238 {

239 title: "Work with the agent",

240 description: "Give ChatGPT context, boundaries, and a clear task.",

241 href: "/codex/space/agents",

242 icon: "chat",

243 },

244 {

245 title: "Collaboration",

246 description: "Choose who can view, comment on, or edit your work.",

247 href: "/codex/space/collaboration",

248 icon: "connect",

249 },

250 ],

251 },

165 {252 {

166 title: "Reference",253 title: "Reference",

167 description: "Find commands and settings for the ChatGPT desktop app.",254 description: "Find commands and settings for the ChatGPT desktop app.",

app/review.md +207 −26

Details

2 2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 4 

5Use ChatGPT or Codex to inspect code changes before you commit or push them.5Use ChatGPT or Codex to understand code changes, investigate potential issues,

6and prepare review feedback.

6 7 

7## Start a review8<ContentModeSwitch group="codex-surface" ids="app,web">

9 

10## Pull request reviews

11 

12The Code Review plugin shows a pull request's description, changed files,

13comments, and checks. Use it to investigate potential issues before approving.

14 

15GitHub code review is generally available. GitLab merge request support in

16Code Review is in preview. To trigger cloud reviews from GitLab with

17`@codex review` or automatic merge request reviews, see

18[Review GitLab merge requests with Codex](https://learn.chatgpt.com/docs/third-party/gitlab).

19 

20For repository-triggered reviews, see the [GitHub integration

21guide](https://learn.chatgpt.com/docs/third-party/github) and [Codex Cloud (Legacy) environment

22setup](https://learn.chatgpt.com/docs/environments/cloud-environment).

23 

24</ContentModeSwitch>

25 

26<ContentModeSwitch group="codex-surface" id="app">

27 

28The desktop app includes Code Review. You can pin it to the app

29sidebar from your installed plugins.

30 

31</ContentModeSwitch>

32 

33<ContentModeSwitch group="codex-surface" ids="app,web">

34 

35### View a pull request

36 

371. Open **Code Review** from the sidebar.

382. Connect your source account when prompted. Use an account with access to the

39 repository you want to review.

403. Select a pull request from the sidebar, or enter its link in the search field.

414. Read **Summary** for the description, activity, comments, and checks. Open

42 **Changes** to inspect changed files and comments alongside the diff.

43 

44</ContentModeSwitch>

45 

46<ContentModeSwitch group="codex-surface" id="app">

47 

48### Find reviews that need attention

49 

50Use your personal inbox to find GitHub pull requests across repositories.

51Choose **Assigned to me** for reviews requested from you, **Assigned to my

52team** for team requests, or **Authored by me** to return to your own changes.

53Check the review status, then open the pull request to inspect feedback and checks.

54 

55To return to a review later, select the pin in its toolbar. The pull request

56appears under **Pinned** in the sidebar.

57 

58### Inspect changed files and related pull requests

59 

60In **Changes**, select **Mark as viewed** on a file after reviewing it. Select the

61control again to clear the marker. Viewed markers apply to the displayed

62revision.

63 

64For changes split across dependent pull requests, use **Stack** in **Summary**

65to open a related pull request and inspect its diff, comments, and checks.

66This section appears when Code Review finds a stack of open pull requests.

67 

68</ContentModeSwitch>

69 

70<ContentModeSwitch group="codex-surface" ids="app,web">

71 

72### Read an automatic cloud review

73 

74With the ChatGPT Codex connector, required repository permissions, and automatic

75reviews enabled, Codex can review a GitHub pull request before you open it.

76Comments appear on GitHub and in Code Review.

77 

78Cloud review doesn't require you to create or manage a cloud environment.

79For connection requirements, repository settings, and reviews triggered with

80`@codex review`, see [Use Codex in GitHub](https://learn.chatgpt.com/docs/third-party/github).

81 

82Check the review findings against the diff. Automatic cloud reviews are

83separate from reviews you start in the pull request's chat.

84 

85### Ask questions about the change

86 

87In the pull request's chat, describe the expected behavior and ask Codex to

88explain or investigate the change.

89 

90</ContentModeSwitch>

91 

92<ContentModeSwitch group="codex-surface" id="app">

93 

94Select **Review with Codex** to start a review in a new chat. If you're viewing

95the pull request beside an existing chat, use that chat to ask about the change.

96 

97</ContentModeSwitch>

98 

99<ContentModeSwitch group="codex-surface" ids="app,web">

100 

101Use installed skills and connected sources to give Codex your team's review

102guidelines or design documents. Ask it to summarize the change and explain

103the risks, then verify the context and code it references.

104 

105For example, a pull request adds **Open** and **Closed** filters to an issue

106board. You expect **All** to remain the default and an empty state when no

107issues match:

108 

109```text

110Walk me through this pull request. Focus on the default filter and what

111happens when there are no matching issues. All should remain the default.

112```

113 

114Ask for evidence:

115 

116```text

117Show me the code path and tests for the no-matches case. Explain what is

118covered and what still needs verification.

119```

120 

121Check the referenced diff and tests against the expected behavior.

122 

123</ContentModeSwitch>

124 

125<ContentModeSwitch group="codex-surface" id="app">

126 

127Select a finding to inspect its explanation and relevant lines in **Changes**.

128Check it against the latest diff, expected behavior, and tests before deciding

129it needs a fix. Use the review chat to stop a running review.

130 

131### Customize your review

132 

133Select the **Review instructions** gear next to **Review with Codex**. You can

134also edit these instructions in **Settings** > **Code Review**.

135 

136Give Codex criteria and a reporting format that apply across your reviews,

137for example:

138 

139```text

140Start with a short summary. Prioritize behavior changes, data loss, and

141missing edge-case tests. For each finding, explain the triggering input,

142expected behavior, and actual behavior. Use our team's concise review style.

143```

144 

145These instructions apply to reviews you start with **Review with Codex** across

146repositories. Changes made during a running review apply to your next review.

147Use the pull request chat for questions specific to one change.

148 

149Optionally, select **Comic book**, **Visualization**, or **PDF** to add a suggested

150instruction for explaining the change in that format. Edit the text as needed,

151then select **Save** or **Run review**.

152 

153</ContentModeSwitch>

154 

155<ContentModeSwitch group="codex-surface" ids="app,web">

156 

157### Share feedback and follow up

158 

159Reviewing a pull request in chat doesn't post comments, approve it, or merge it.

160You choose which findings to share.

161 

162Once you've verified a concern, ask Codex to help prepare a review comment:

163 

164```text

165Using the team review guidelines we discussed, draft a comment describing

166the no-matches behavior we verified, what should happen instead, and the test

167that would cover it. Keep the comment as a draft.

168```

169 

170Check the draft's file and line references before posting. Keep drafts in chat

171until you're ready: posting in **Summary** or **Changes** sends the comment to

172the source provider immediately, without waiting for **Submit review**.

173 

174Use **Submit review** to choose **Comment**, **Approve**, or **Request changes**

175and send your review to the source provider. Check the selected decision and

176review comment before submitting.

177 

178If you're the author, return to your pull request and ask Codex to address

179specific feedback. Inspect the resulting changes and run the relevant tests.

180Before approving or merging, check the latest revision, checks, and

181outstanding feedback.

182 

183Editing pull request descriptions with attached images isn't supported in

184Code Review. Open the pull request in GitHub to edit those descriptions.

185 

186</ContentModeSwitch>

187 

188<ContentModeSwitch group="codex-surface" id="app">

189 

190### Continue in a chat

191 

192When **Summary** shows **Threads**, select a linked chat to return to that

193conversation. These are your chats associated with the pull request.

194 

195In Codex, select **Fix** in **Checks** on an open pull request to attach failing

196checks to the chat. This prepares a message without sending it. Review or add

197your prompt, then send it to ask Codex to investigate. Inspect the resulting

198changes and rerun the relevant tests before pushing a fix.

199 

200Available diagnostics depend on the check provider. For third-party CI,

201Codex can use the status and output reported to GitHub.

202 

203</ContentModeSwitch>

204 

205<a id="start-a-review"></a>

206 

207## Review local changes

208 

209Codex's built-in `/review` command reviews changes in your Git checkout, while

210the Code Review plugin works with pull requests.

211Choose your client for the steps that apply.

8 212 

9<ContentModeSwitch group="codex-surface" id="web">213<ContentModeSwitch group="codex-surface" id="web">

10 214 


172- Clicking a file name typically opens that file in your chosen editor. You376- Clicking a file name typically opens that file in your chosen editor. You

173 can choose the default editor in [developer settings](https://learn.chatgpt.com/docs/developer-settings?surface=app#app-project-and-terminal-behavior).377 can choose the default editor in [developer settings](https://learn.chatgpt.com/docs/developer-settings?surface=app#app-project-and-terminal-behavior).

174- Clicking the file name background expands or collapses the diff.378- Clicking the file name background expands or collapses the diff.

175- Clicking a single line while holding <kbd>Cmd</kbd> pressed opens the line in your chosen editor.379- Clicking a single line while holding <kbd>Command</kbd> pressed opens the line in your chosen editor.

176- If you're happy with a change, you can [stage it or revert changes](#staging-and-reverting-files) you don't want.380- If you're happy with a change, you can [stage it or revert changes](#staging-and-reverting-files) you don't want.

177 381 

178## Inline comments for feedback382## Inline comments for feedback


195follow-up message that makes your intent explicit, for example, “Address the399follow-up message that makes your intent explicit, for example, “Address the

196inline comments and keep the scope minimal.”400inline comments and keep the scope minimal.”

197 401 

198## Pull request reviews

199 

200When Codex has GitHub access for your repository and the current project is on

201the pull request branch, the ChatGPT desktop app can help you work through pull

202request feedback without leaving the app. The sidebar shows pull request

203context and feedback from reviewers, and the review pane shows comments

204alongside the diff so you can ask Codex to address issues in the same chat.

205 

206Install the GitHub CLI (`gh`) and authenticate it with `gh auth login` so Codex

207can load pull request context, review comments, and changed files. If `gh` is

208missing or unauthenticated, pull request details may not appear in the sidebar

209or review pane.

210 

211Use this flow when you want to keep the full fix loop in one place:

212 

2131. Open the review pane on the pull request branch.

2142. Review the pull request context, comments, and changed files.

2153. Ask Codex to fix the specific comments you want handled.

2164. Inspect the resulting diff in the review pane.

2175. Stage, commit, and push the changes to the pull request branch when you're ready.

218 

219For GitHub-triggered reviews, see [Use Codex in GitHub](https://learn.chatgpt.com/docs/third-party/github).

220 

221## Staging and reverting files402## Staging and reverting files

222 403 

223The review pane includes Git actions so you can shape the diff before you404The review pane includes Git actions so you can shape the diff before you

Details

20 20 

21### Remove a project from the sidebar21### Remove a project from the sidebar

22 22 

23To remove a project from the sidebar, hover over the name of your project, click23To remove a project from the sidebar, hover over the name of your project, select

24the three dots and choose "Remove." To restore it, re-add the24the three dots, and choose **Remove**. To restore it, re-add the

25project using the **Add new project** button next to **Chats** or using25project using the **Add new project** button next to **Chats** or using

26 26 

27<kbd>Cmd</kbd>+<kbd>O</kbd>.27<kbd>Cmd</kbd>+<kbd>O</kbd>.


34Archived chats can be found in [Settings](codex://settings). When you unarchive34Archived chats can be found in [Settings](codex://settings). When you unarchive

35a chat, it reappears in its original sidebar location.35a chat, it reappears in its original sidebar location.

36 36 

37### A Work conversation does not appear on another device

38 

39- Confirm that you are signed in with ChatGPT to the same account and workspace on each device.

40- Ask your workspace owner to check that Work Cloud and **Allow local computer access** are enabled. If `enforce_residency` is enabled in any cloud policy, **Allow local computer access** is disabled for both Work and dots. This safeguard does not configure workspace residency or, by itself, disable Work Cloud or dots.

41- Check when the task was created. Sync applies to new tasks created after it is enabled. Existing tasks, including tasks in projects, are not migrated and keep their original local-only or cloud-without-local-files behavior.

42 

43For enterprises, the in-app Local/Cloud toggle and its default remain unchanged at launch. A particular toggle or default mode does not by itself confirm whether a conversation can sync. Keep Codex history separate when looking for a Work conversation. See [Local computer access for Work Cloud and dots](https://learn.chatgpt.com/docs/enterprise/cloud-local-access) for setup and the [Work admin FAQ](https://learn.chatgpt.com/docs/enterprise/work-admin-faq) for common questions.

44 

45### A synced task cannot use the computer's files or tools

46 

47Keep the computer online and connected. If it's unavailable when a new turn starts, an eligible synced task can continue in a cloud container without access to the computer's files or tools. A running turn doesn't automatically move from the computer to the cloud.

48 

49<a id="a-turn-stopped-after-local-computer-access-was-turned-off"></a>

50 

51### A turn stopped after Local computer access with Work Cloud was turned off

52 

53Turning off Local computer access with Work Cloud interrupts running turns. If you still have Work access, send a new message to start another turn. In an existing cloud conversation, that turn automatically uses Work Cloud without access to local files.

54 

55### Automated policy updates are missing

56 

57Use the policy API to manage Global settings. To manage Local or Codex Cloud settings, use the Agent Security UI. Existing Global API workflows remain available after migration. Test your scripts and Terraform integrations, and confirm that policy assignments and ordering are unchanged.

58 

37<a id="only-some-threads-appear-in-the-sidebar"></a>59<a id="only-some-threads-appear-in-the-sidebar"></a>

38<a id="only-some-tasks-appear-in-the-sidebar"></a>60<a id="only-some-tasks-appear-in-the-sidebar"></a>

39 61 


51project, you might have to run setup scripts on your worktree using a73project, you might have to run setup scripts on your worktree using a

52[local environment](https://learn.chatgpt.com/docs/environments/local-environment) or copy ignored setup files74[local environment](https://learn.chatgpt.com/docs/environments/local-environment) or copy ignored setup files

53with [`.worktreeinclude`](https://learn.chatgpt.com/docs/environments/git-worktrees#copy-ignored-local-files-into-managed-worktrees).75with [`.worktreeinclude`](https://learn.chatgpt.com/docs/environments/git-worktrees#copy-ignored-local-files-into-managed-worktrees).

54Alternatively, you can check out the changes in your regular local project. See76You can also check out the changes in your regular local project. See

55the [worktrees documentation](https://learn.chatgpt.com/docs/environments/git-worktrees) to learn more.77the [worktrees documentation](https://learn.chatgpt.com/docs/environments/git-worktrees) to learn more.

56 78 

57### App doesn't pick up a teammate's shared local environment79### App doesn't pick up a teammate's shared local environment


1392. Reopen it with <kbd>Ctrl</kbd>+<kbd>`</kbd>.1612. Reopen it with <kbd>Ctrl</kbd>+<kbd>`</kbd>.

1403. Re-run a basic command like `pwd` or `git status`.1623. Re-run a basic command like `pwd` or `git status`.

141 163 

142If commands behave differently than expected, validate the current directory and164If commands behave differently than expected, check the current directory and

143branch in the terminal first.165branch in the terminal first.

144 166 

145If it continues to be stuck, wait until your active chats are complete and restart the app.167If it continues to be stuck, wait until your active chats are complete and restart the app.


147**Fonts aren't rendering correctly**169**Fonts aren't rendering correctly**

148 170 

149Codex uses the same font for the review pane, integrated terminal and any other code displayed inside the app. You can configure the font inside the [Settings](codex://settings) pane as **Code font**.171Codex uses the same font for the review pane, integrated terminal and any other code displayed inside the app. You can configure the font inside the [Settings](codex://settings) pane as **Code font**.

172 

173## An environment allows network access but the action is blocked

174 

175Check policy priority before comparing individual settings. A higher-priority policy wins over a lower-priority policy, even if the lower-priority policy is more specific. Within one policy, OS-specific environment overrides take priority over all-OS environment overrides, followed by Global.

176 

177Some network requirements have field-specific merge rules and runtime limits. Managed HTTP/SOCKS listener ports and non-loopback proxy listeners are unsupported by the cloud runtime; socket-rule support depends on the execution path. Local-execution merge behavior is separate.

178 

179Compare the effective policies and test the intended allowed and blocked actions. See [Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration) for the detailed cases. Do not broaden the global baseline to work around a failed test.

auth.md +8 −0

Details

35 35 

36### Sign in with ChatGPT36### Sign in with ChatGPT

37 37 

38To use Local computer access with Work Cloud across desktop, mobile, and web:

39 

401. Sign in with ChatGPT to an eligible workspace.

41 

421. Ask a workspace owner to enable Work Cloud, then turn on **Allow local computer access** under Work Cloud. **Use Codex locally on the ChatGPT desktop app** is not a prerequisite.

43 

44API keys and Codex access tokens do not enable Local computer access with Work Cloud. See [Roles and workspace permissions](https://learn.chatgpt.com/docs/enterprise/roles-and-workspace-permissions) and the [Work admin FAQ](https://learn.chatgpt.com/docs/enterprise/work-admin-faq) for prerequisites, or [Local computer access for Work Cloud and dots](https://learn.chatgpt.com/docs/enterprise/cloud-local-access) for setup.

45 

38When you sign in with ChatGPT from the ChatGPT desktop app, Codex CLI, or IDE extension, the sign-in flow opens a browser window. After you sign in, the browser returns your credentials to Codex.46When you sign in with ChatGPT from the ChatGPT desktop app, Codex CLI, or IDE extension, the sign-in flow opens a browser window. After you sign in, the browser returns your credentials to Codex.

39 47 

40</ContentModeSwitch>48</ContentModeSwitch>

automations.md +2 −12

Details

7paused, and completed tasks and recent runs in **Scheduled**. You can combine7paused, and completed tasks and recent runs in **Scheduled**. You can combine

8scheduled tasks with [skills](https://learn.chatgpt.com/docs/build-skills) for more complex work.8scheduled tasks with [skills](https://learn.chatgpt.com/docs/build-skills) for more complex work.

9 9 

10**For workspace admins:** See [Set up and manage teams and Team Tasks](https://learn.chatgpt.com/docs/enterprise/teams) for recurring or event-triggered work shared by a team, including permissions and connection setup. Team Tasks run in the cloud through the team's service account and configured app connections.

11 

10<ContentModeSwitch group="codex-surface" ids="app,web">12<ContentModeSwitch group="codex-surface" ids="app,web">

11 13 

12GPT-5.5 retires from ChatGPT, ChatGPT Work, and Codex on all plans on14GPT-5.5 retires from ChatGPT, ChatGPT Work, and Codex on all plans on


153If a scheduled task uses a retired model, update it to an available replacement.155If a scheduled task uses a retired model, update it to an available replacement.

154See [model migration guidance](https://learn.chatgpt.com/docs/models#deprecated-codex-models).156See [model migration guidance](https://learn.chatgpt.com/docs/models#deprecated-codex-models).

155 157 

156 

157 

158> Illustration: ChatGPT composer ready to create a scheduled task with 6 Sol Medium selected.

159 

160 

161 

162Scheduled tasks run unattended with your default sandbox settings. Start with the158Scheduled tasks run unattended with your default sandbox settings. Start with the

163narrowest access that lets the task succeed, and grant network or broader file159narrowest access that lets the task succeed, and grant network or broader file

164access only when required. [Understand sandboxing](https://learn.chatgpt.com/docs/sandboxing).160access only when required. [Understand sandboxing](https://learn.chatgpt.com/docs/sandboxing).


171The **Scheduled** view acts as your inbox. Scheduled task runs with findings167The **Scheduled** view acts as your inbox. Scheduled task runs with findings

172appear there, and an unread indicator shows when a run needs your attention.168appear there, and an unread indicator shows when a run needs your attention.

173 169 

174 

175 

176> Illustration: Scheduled tasks page with All, Active, and Paused filters and three scheduled tasks.

177 

178 

179 

180Standalone scheduled tasks start a new chat for each scheduled run and report170Standalone scheduled tasks start a new chat for each scheduled run and report

181results in **Scheduled**. Use them when each run should be independent or when one171results in **Scheduled**. Use them when each run should be independent or when one

182scheduled task should run across one or more projects. If you need a custom172scheduled task should run across one or more projects. If you need a custom

browser.md +17 −4

Details

47to work in an existing Chrome, Edge, Brave, Opera, or Vivaldi tab or use your47to work in an existing Chrome, Edge, Brave, Opera, or Vivaldi tab or use your

48regular browser profile.48regular browser profile.

49 49 

50Open the built-in browser from the toolbar, by clicking a URL, by navigating50Select **New tab**, then enter a URL to open the built-in browser. You can also

51manually, or by pressing <kbd>Cmd</kbd>+<kbd>Shift</kbd>+<kbd>B</kbd>51open a URL from the chat or press <kbd>Cmd</kbd>+<kbd>T</kbd>

52(<kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>B</kbd> on Windows).52(<kbd>Ctrl</kbd>+<kbd>T</kbd> on Windows and Linux) to open a browser tab.

53 53 

54 54 

55 55


59 59 

60 60 

61 61 

62## Arrange tabs and chat

63 

64Select **Enter full view** to expand the current tab, or **Enter split view**

65to show the chat and tab side by side. Use <kbd>Cmd</kbd>+<kbd>Shift</kbd>+<kbd>B</kbd>

66(<kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>B</kbd> on Windows and Linux) to return from

67full view to split view, or to show or hide tabs beside the chat.

68 

62## Search from the address bar69## Search from the address bar

63 70 

64Start typing in the built-in browser's address bar to find pages from its71Start typing in the built-in browser's address bar to find pages from its


131When a bug is visible only in the rendered page, use browser comments to give138When a bug is visible only in the rendered page, use browser comments to give

132ChatGPT precise feedback.139ChatGPT precise feedback.

133 140 

1341. Turn on **Annotation mode**.141 

142 

143> Illustration: ChatGPT's built-in browser toolbar with the Annotate button highlighted

144 

145 

146 

1471. Select **Annotate** in the browser toolbar to enter **Annotation mode**.

1352. Click an element, or drag to select an area.1482. Click an element, or drag to select an area.

1363. Write and save your comment.1493. Write and save your comment.

1374. Send a message in the chat asking ChatGPT to address the comments.1504. Send a message in the chat asking ChatGPT to address the comments.

Details

87- **Purpose:** Name the recurring task and when you’ll use the plugin.87- **Purpose:** Name the recurring task and when you’ll use the plugin.

88- **Inputs:** Describe the information you’ll provide and how it should use each attached file.88- **Inputs:** Describe the information you’ll provide and how it should use each attached file.

89- **Output:** Say who the result is for, and specify its format, length, and tone. Include an example if you have one.89- **Output:** Say who the result is for, and specify its format, length, and tone. Include an example if you have one.

90- **Rules:** Explain any required steps, what needs your review, and how to handle missing information—for example, ask a question or mark a field “not specified.”90- **Rules:** Explain required steps, what needs your review, and how to handle missing information. For example, ask a question or mark a field “not specified.”

91 91 

92Ask for instructions you can reuse with new inputs. Keep the details of an individual task, such as a particular document, labeled as an example for testing.92Ask for instructions you can reuse with new inputs. Keep the details of an individual task, such as a particular document, labeled as an example for testing.

93 93 


226 226 

227## Continue with the builder documentation227## Continue with the builder documentation

228 228 

229For custom integrations or development with plugin files, see [Package your plugin](https://developers.openai.com/plugins/build/plugins). The [developer documentation](https://developers.openai.com/plugins/) covers building skills and MCP servers, testing, and public submission.229For custom integrations or development with plugin files, see [Package your plugin](https://developers.openai.com/plugins/build/plugins). The [developer documentation](https://developers.openai.com/plugins/) covers building skills and MCP servers, [extensions](https://developers.openai.com/plugins/build/extensions), testing, and public submission.

230 230 

231For workspace distribution through GitHub, see [Plugin management](https://learn.chatgpt.com/docs/enterprise/plugin-management).231For workspace distribution through GitHub, see [Plugin management](https://learn.chatgpt.com/docs/enterprise/plugin-management).

cloud.md +36 −40

Details

1# Codex cloud1# Codex Cloud

2 2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 4 

5## Run coding tasks in parallel cloud environments5## Run coding tasks in the cloud

6 6 

7Run tasks in isolated cloud environments, work in parallel, and start work from the web, GitHub, GitLab, Linear, or Slack.7Give Codex coding tasks to work through in the cloud, from investigating bugs to building features. Review changes and continue from the web, mobile, or desktop app.

8 8 

9> Illustration: Codex cloud chat composer and chat list with interactive archiving9> Illustration: A published cloud environment beside a new task composer with the same environment selected

10 10 

11### Start here11### Start here

12 12 

13- [Open Codex cloud](https://chatgpt.com/codex)13- [Get started](#getting-started)

14- [Set up Codex cloud](#getting-started)

15 14 

16### Why use Codex cloud15### Why use Codex Cloud

17 16 

18- **Run work in parallel:** Give longer tasks dedicated environments and let them continue while you work on something else.17- **Start with your project:** Choose repositories. Codex inspects the project, works through setup, and asks you for missing details or access.

19- **Reproduce the environment:** Configure the dependencies, tools, variables, and setup steps each repository needs.18- **Keep work moving:** Start tasks from a published environment. Each task has its own workspace and can keep working while your computer is asleep.

20- **Review before you merge:** Inspect the summary and diff, request a follow-up, or open a pull request when the result is ready.19- **Review the work:** Inspect changed files and check results, request follow-up changes, and commit or open a pull request when you're ready.

21 20 

22## Getting started21## Getting started

23 22 

24**Set up Codex cloud.**23**Get started with Codex Cloud.**

25 24 

26Connect GitHub or GitLab, create an environment, and start your first cloud chat.25Create a cloud environment with the repositories, tools, and access your project needs, or select an existing one. Then start a task.

27 26 

28### 1. Open Codex and sign in27### 1. Open ChatGPT

29 28 

30Go to [Codex](https://chatgpt.com/codex) and sign in with your ChatGPT account.29Open ChatGPT on the web or in the [desktop app](https://learn.chatgpt.com/docs/app), then sign in with your ChatGPT account.

31 30 

32### 2. Connect GitHub or GitLab31### 2. Create or select an environment

33 32 

34Connect GitHub or GitLab (Beta) when prompted. For GitHub, choose the repositories Codex can access; for GitLab, select a project when you create the environment. For GitLab setup, webhook permissions, and merge request reviews, see [Use Codex with GitLab (Beta)](https://learn.chatgpt.com/docs/third-party/gitlab).33In a new task, choose Work in > Cloud and open Select environment. If this is your first time, select [Create environment](https://learn.chatgpt.com/docs/environments/cloud-environments#create-and-publish-an-environment) and continue below. If an environment is already available, select it and begin working.

35 34 

36### 3. Create an environment35### 3. Let Codex prepare your project

37 36 

38Open [environment settings](https://chatgpt.com/codex/settings/environments) and create an environment for the repository you selected. Configure any dependencies, tools, environment variables, or secrets the task needs.37Choose your GitHub repositories and select Get started. Connect GitHub if prompted. Codex inspects your repositories, installs dependencies and tools, and tests the workflow. Provide any missing access or information when asked.

39 38 

40For configuration details, see [Cloud environments](https://learn.chatgpt.com/docs/environments/cloud-environment).39### 4. Review and publish

41 40 

42### 4. Start your first task41For a new environment, review the setup and test results, save changes, and select Publish. Wait for Environment published.

43 42 

44Return to [Codex](https://chatgpt.com/codex), choose your environment, and describe the result you want. You can watch the task logs or let the task run in the background.43### 5. Start a task

45 44 

46### 5. Review the result45After publishing a new environment, select Start a new task. If you selected an existing environment, you can start right away. Describe your task and send it. Review the changes and test results, request follow-ups, and commit or open a pull request when ready.

47 

48Review the summary and diff. Ask Codex to make follow-up changes, or open a pull request when the work is ready.

49 46 

50### Next steps47### Next steps

51 48 

52- [Customize the cloud environment](https://learn.chatgpt.com/docs/environments/cloud-environment)49- [Configure cloud environments](https://learn.chatgpt.com/docs/environments/cloud-environments)

53- [Configure agent internet access](https://learn.chatgpt.com/docs/cloud/internet-access)50- [Configure internet access](https://learn.chatgpt.com/docs/environments/cloud-environments#connect-to-services)

54- [Use Codex with GitHub](https://learn.chatgpt.com/docs/third-party/github)51- [Set up environment variables and network secrets](https://learn.chatgpt.com/docs/environments/cloud-environments#configure-environment-variables-and-network-secrets)

55- [Use Codex with GitLab (Beta)](https://learn.chatgpt.com/docs/third-party/gitlab)52- [Understand saved state](https://learn.chatgpt.com/docs/environments/cloud-environments#reuse-and-update-saved-state)

56- [Use Codex in Linear](https://learn.chatgpt.com/docs/third-party/linear)53- [Use ChatGPT in Slack](https://learn.chatgpt.com/docs/third-party/slack)

57- [Use Codex in Slack](https://learn.chatgpt.com/docs/third-party/slack)

58 54 

59## See what Codex cloud can do55## See what Codex Cloud can do

60 56 

61Give each task the environment it needs, then review the result on your schedule.57Run coding tasks with your project tools and service access, then review the results.

62 58 

63- [Delegate several tasks](https://learn.chatgpt.com/docs/environments/cloud-environment): Start work in parallel and return as each task reaches a reviewable result.59- [Prepare your development workflow](https://learn.chatgpt.com/docs/environments/cloud-environments#create-and-publish-an-environment): Let Codex inspect your repositories and prepare their dependencies and tools. Review the checks before publishing.

64- [Build a reproducible environment](https://learn.chatgpt.com/docs/environments/cloud-environment): Configure the dependencies, tools, variables, and setup steps a repository needs.60- [Reuse your project setup](https://learn.chatgpt.com/docs/environments/cloud-environments#reuse-and-update-saved-state): Reuse your repositories, dependencies, and tools across tasks. Each task has its own workspace. Update the setup as your project changes.

65- [Delegate from your integrations](https://learn.chatgpt.com/docs/developers): Start work in Codex cloud from GitHub pull requests, GitLab merge requests and issues, Linear issues, or Slack channels and threads.61- [Connect your tools and services](https://learn.chatgpt.com/docs/environments/cloud-environments#connect-to-services): Give Codex access to the package registries, APIs, and private services your project needs. Configure network access and supply credentials in the environment settings.

66 62 

67## Use Codex cloud when…63## Use Codex Cloud when…

68 64 

69- [Work needs to run in the background](https://learn.chatgpt.com/docs/environments/cloud-environment): Delegate a longer task and return when it is ready.65- [Work should run remotely](https://learn.chatgpt.com/docs/environments/cloud-environments): Give Codex a cloud environment with the repositories and tools it needs.

70- [You want to compare several attempts](https://learn.chatgpt.com/docs/environments/cloud-environment): Run tasks in parallel without tying up your local machine.66- [Several tasks need the same setup](https://learn.chatgpt.com/docs/environments/cloud-environments): Start tasks from a published environment while keeping each task's working state separate.

71- [Work starts in GitHub, GitLab, Linear, or Slack](https://learn.chatgpt.com/docs/developers): Use integrations to hand off work without leaving the pull request, merge request, issue, channel, or thread.67- [Your workflow needs service credentials](https://learn.chatgpt.com/docs/environments/cloud-environments#connect-to-services): Use network secrets for allowed HTTPS services and limit the environment's network destinations.

72- [You are away from your development machine](https://learn.chatgpt.com/docs/environments/cloud-environment): Start and review work from the web or Codex CLI.68- [Start cloud work from the CLI](https://learn.chatgpt.com/docs/developer-commands?surface=cli#cli-codex-cloud): Start a task from your terminal, or list recent cloud chats and check their status.

Details

1# Cloud environments1# Codex Cloud (Legacy)

2 2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 4 

5**Codex Cloud (Legacy)** continues to support environments for Code Review and

6 the Linear and GitHub integrations.

7 

8For the current experience on desktop and web, see the [Cloud environments

9guide](https://learn.chatgpt.com/docs/environments/cloud-environments).

10 

5Use environments to control what Codex installs and runs during cloud chats. For example, you can add dependencies, install tools like linters and formatters, and set environment variables.11Use environments to control what Codex installs and runs during cloud chats. For example, you can add dependencies, install tools like linters and formatters, and set environment variables.

6 12 

7Configure environments in [Codex settings](https://chatgpt.com/codex/settings/environments).13Configure environments in [Codex settings](https://chatgpt.com/codex/settings/environments).


10 16 

11## How Codex cloud chats run17## How Codex cloud chats run

12 18 

13Here's what happens when you submit a prompt:19When you submit a task:

14 20 

151. Codex creates a container and checks out your repo at the selected branch or commit SHA.211. Codex creates a container and checks out your repo at the selected branch or commit SHA.

162. Codex runs your setup script, plus an optional maintenance script when a cached container is resumed.222. Codex runs your setup script, plus an optional maintenance script when a cached container is resumed.


85Internet access is available during the setup script phase to install dependencies. During the agent phase, internet access is off by default, but you can configure limited or unrestricted access. See [agent internet access](https://learn.chatgpt.com/docs/cloud/internet-access).91Internet access is available during the setup script phase to install dependencies. During the agent phase, internet access is off by default, but you can configure limited or unrestricted access. See [agent internet access](https://learn.chatgpt.com/docs/cloud/internet-access).

86 92 

87Environments run behind an HTTP/HTTPS network proxy for security and abuse prevention purposes. All outbound internet traffic passes through this proxy.93Environments run behind an HTTP/HTTPS network proxy for security and abuse prevention purposes. All outbound internet traffic passes through this proxy.

94 

95## Agent Security command-network requirements

96 

97On supported managed Codex Cloud execution paths, Agent Security requirements constrain command networking. Codex Cloud environment internet settings apply separately. An allowed domain in Agent Security does not override a restriction in the Cloud environment's internet settings. These command-network controls do not, by themselves, disable hosted web search, apps, or MCP. ChatGPT Work Cloud has separate capability permissions and does not inherit these Agent Security requirements.

98 

99A managed command allowlist applies to commands using the managed proxy. Where policy permits full sandbox escalation and it is approved, that execution can bypass the command proxy. A narrow network grant is different from full sandbox escalation. Configure enforced approval and sandbox requirements for the intended boundary, and test both ordinary and escalated commands. See [Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration#configure-network-access-requirements) for inheritance and proxy limits.

Details

1# Agent internet access1# Codex Cloud (Legacy): internet access

2 2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 4 

5These settings apply to [Codex Cloud

6 (Legacy)](https://learn.chatgpt.com/docs/environments/cloud-environment). For the current Codex Cloud

7 experience, see [Connect to

8 services](https://learn.chatgpt.com/docs/environments/cloud-environments#connect-to-services).

9 

5By default, Codex blocks internet access during the agent phase. Setup scripts still run with internet access so you can install dependencies. You can enable agent internet access per environment when you need it.10By default, Codex blocks internet access during the agent phase. Setup scripts still run with internet access so you can install dependencies. You can enable agent internet access per environment when you need it.

6 11 

7## Risks of agent internet access12## Risks of agent internet access


147visualstudio.com152visualstudio.com

148yarnpkg.com153yarnpkg.com

149```154```

155 

156## Agent Security command-network requirements

157 

158On supported managed Codex Cloud execution paths, Agent Security requirements constrain command networking. Codex Cloud environment internet settings apply separately. An allowed domain in Agent Security does not override a restriction in the Cloud environment's internet settings. These command-network controls do not, by themselves, disable hosted web search, apps, or MCP. ChatGPT Work Cloud has separate capability permissions and does not inherit these Agent Security requirements.

159 

160A managed command allowlist applies to commands using the managed proxy. Where policy permits full sandbox escalation and it is approved, that execution can bypass the command proxy. A narrow network grant is different from full sandbox escalation. Configure enforced approval and sandbox requirements for the intended boundary, and test both ordinary and escalated commands. See [Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration#configure-network-access-requirements) for inheritance and proxy limits.

code-review.md +207 −26

Details

2 2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 4 

5Use ChatGPT or Codex to inspect code changes before you commit or push them.5Use ChatGPT or Codex to understand code changes, investigate potential issues,

6and prepare review feedback.

6 7 

7## Start a review8<ContentModeSwitch group="codex-surface" ids="app,web">

9 

10## Pull request reviews

11 

12The Code Review plugin shows a pull request's description, changed files,

13comments, and checks. Use it to investigate potential issues before approving.

14 

15GitHub code review is generally available. GitLab merge request support in

16Code Review is in preview. To trigger cloud reviews from GitLab with

17`@codex review` or automatic merge request reviews, see

18[Review GitLab merge requests with Codex](https://learn.chatgpt.com/docs/third-party/gitlab).

19 

20For repository-triggered reviews, see the [GitHub integration

21guide](https://learn.chatgpt.com/docs/third-party/github) and [Codex Cloud (Legacy) environment

22setup](https://learn.chatgpt.com/docs/environments/cloud-environment).

23 

24</ContentModeSwitch>

25 

26<ContentModeSwitch group="codex-surface" id="app">

27 

28The desktop app includes Code Review. You can pin it to the app

29sidebar from your installed plugins.

30 

31</ContentModeSwitch>

32 

33<ContentModeSwitch group="codex-surface" ids="app,web">

34 

35### View a pull request

36 

371. Open **Code Review** from the sidebar.

382. Connect your source account when prompted. Use an account with access to the

39 repository you want to review.

403. Select a pull request from the sidebar, or enter its link in the search field.

414. Read **Summary** for the description, activity, comments, and checks. Open

42 **Changes** to inspect changed files and comments alongside the diff.

43 

44</ContentModeSwitch>

45 

46<ContentModeSwitch group="codex-surface" id="app">

47 

48### Find reviews that need attention

49 

50Use your personal inbox to find GitHub pull requests across repositories.

51Choose **Assigned to me** for reviews requested from you, **Assigned to my

52team** for team requests, or **Authored by me** to return to your own changes.

53Check the review status, then open the pull request to inspect feedback and checks.

54 

55To return to a review later, select the pin in its toolbar. The pull request

56appears under **Pinned** in the sidebar.

57 

58### Inspect changed files and related pull requests

59 

60In **Changes**, select **Mark as viewed** on a file after reviewing it. Select the

61control again to clear the marker. Viewed markers apply to the displayed

62revision.

63 

64For changes split across dependent pull requests, use **Stack** in **Summary**

65to open a related pull request and inspect its diff, comments, and checks.

66This section appears when Code Review finds a stack of open pull requests.

67 

68</ContentModeSwitch>

69 

70<ContentModeSwitch group="codex-surface" ids="app,web">

71 

72### Read an automatic cloud review

73 

74With the ChatGPT Codex connector, required repository permissions, and automatic

75reviews enabled, Codex can review a GitHub pull request before you open it.

76Comments appear on GitHub and in Code Review.

77 

78Cloud review doesn't require you to create or manage a cloud environment.

79For connection requirements, repository settings, and reviews triggered with

80`@codex review`, see [Use Codex in GitHub](https://learn.chatgpt.com/docs/third-party/github).

81 

82Check the review findings against the diff. Automatic cloud reviews are

83separate from reviews you start in the pull request's chat.

84 

85### Ask questions about the change

86 

87In the pull request's chat, describe the expected behavior and ask Codex to

88explain or investigate the change.

89 

90</ContentModeSwitch>

91 

92<ContentModeSwitch group="codex-surface" id="app">

93 

94Select **Review with Codex** to start a review in a new chat. If you're viewing

95the pull request beside an existing chat, use that chat to ask about the change.

96 

97</ContentModeSwitch>

98 

99<ContentModeSwitch group="codex-surface" ids="app,web">

100 

101Use installed skills and connected sources to give Codex your team's review

102guidelines or design documents. Ask it to summarize the change and explain

103the risks, then verify the context and code it references.

104 

105For example, a pull request adds **Open** and **Closed** filters to an issue

106board. You expect **All** to remain the default and an empty state when no

107issues match:

108 

109```text

110Walk me through this pull request. Focus on the default filter and what

111happens when there are no matching issues. All should remain the default.

112```

113 

114Ask for evidence:

115 

116```text

117Show me the code path and tests for the no-matches case. Explain what is

118covered and what still needs verification.

119```

120 

121Check the referenced diff and tests against the expected behavior.

122 

123</ContentModeSwitch>

124 

125<ContentModeSwitch group="codex-surface" id="app">

126 

127Select a finding to inspect its explanation and relevant lines in **Changes**.

128Check it against the latest diff, expected behavior, and tests before deciding

129it needs a fix. Use the review chat to stop a running review.

130 

131### Customize your review

132 

133Select the **Review instructions** gear next to **Review with Codex**. You can

134also edit these instructions in **Settings** > **Code Review**.

135 

136Give Codex criteria and a reporting format that apply across your reviews,

137for example:

138 

139```text

140Start with a short summary. Prioritize behavior changes, data loss, and

141missing edge-case tests. For each finding, explain the triggering input,

142expected behavior, and actual behavior. Use our team's concise review style.

143```

144 

145These instructions apply to reviews you start with **Review with Codex** across

146repositories. Changes made during a running review apply to your next review.

147Use the pull request chat for questions specific to one change.

148 

149Optionally, select **Comic book**, **Visualization**, or **PDF** to add a suggested

150instruction for explaining the change in that format. Edit the text as needed,

151then select **Save** or **Run review**.

152 

153</ContentModeSwitch>

154 

155<ContentModeSwitch group="codex-surface" ids="app,web">

156 

157### Share feedback and follow up

158 

159Reviewing a pull request in chat doesn't post comments, approve it, or merge it.

160You choose which findings to share.

161 

162Once you've verified a concern, ask Codex to help prepare a review comment:

163 

164```text

165Using the team review guidelines we discussed, draft a comment describing

166the no-matches behavior we verified, what should happen instead, and the test

167that would cover it. Keep the comment as a draft.

168```

169 

170Check the draft's file and line references before posting. Keep drafts in chat

171until you're ready: posting in **Summary** or **Changes** sends the comment to

172the source provider immediately, without waiting for **Submit review**.

173 

174Use **Submit review** to choose **Comment**, **Approve**, or **Request changes**

175and send your review to the source provider. Check the selected decision and

176review comment before submitting.

177 

178If you're the author, return to your pull request and ask Codex to address

179specific feedback. Inspect the resulting changes and run the relevant tests.

180Before approving or merging, check the latest revision, checks, and

181outstanding feedback.

182 

183Editing pull request descriptions with attached images isn't supported in

184Code Review. Open the pull request in GitHub to edit those descriptions.

185 

186</ContentModeSwitch>

187 

188<ContentModeSwitch group="codex-surface" id="app">

189 

190### Continue in a chat

191 

192When **Summary** shows **Threads**, select a linked chat to return to that

193conversation. These are your chats associated with the pull request.

194 

195In Codex, select **Fix** in **Checks** on an open pull request to attach failing

196checks to the chat. This prepares a message without sending it. Review or add

197your prompt, then send it to ask Codex to investigate. Inspect the resulting

198changes and rerun the relevant tests before pushing a fix.

199 

200Available diagnostics depend on the check provider. For third-party CI,

201Codex can use the status and output reported to GitHub.

202 

203</ContentModeSwitch>

204 

205<a id="start-a-review"></a>

206 

207## Review local changes

208 

209Codex's built-in `/review` command reviews changes in your Git checkout, while

210the Code Review plugin works with pull requests.

211Choose your client for the steps that apply.

8 212 

9<ContentModeSwitch group="codex-surface" id="web">213<ContentModeSwitch group="codex-surface" id="web">

10 214 


172- Clicking a file name typically opens that file in your chosen editor. You376- Clicking a file name typically opens that file in your chosen editor. You

173 can choose the default editor in [developer settings](https://learn.chatgpt.com/docs/developer-settings?surface=app#app-project-and-terminal-behavior).377 can choose the default editor in [developer settings](https://learn.chatgpt.com/docs/developer-settings?surface=app#app-project-and-terminal-behavior).

174- Clicking the file name background expands or collapses the diff.378- Clicking the file name background expands or collapses the diff.

175- Clicking a single line while holding <kbd>Cmd</kbd> pressed opens the line in your chosen editor.379- Clicking a single line while holding <kbd>Command</kbd> pressed opens the line in your chosen editor.

176- If you're happy with a change, you can [stage it or revert changes](#staging-and-reverting-files) you don't want.380- If you're happy with a change, you can [stage it or revert changes](#staging-and-reverting-files) you don't want.

177 381 

178## Inline comments for feedback382## Inline comments for feedback


195follow-up message that makes your intent explicit, for example, “Address the399follow-up message that makes your intent explicit, for example, “Address the

196inline comments and keep the scope minimal.”400inline comments and keep the scope minimal.”

197 401 

198## Pull request reviews

199 

200When Codex has GitHub access for your repository and the current project is on

201the pull request branch, the ChatGPT desktop app can help you work through pull

202request feedback without leaving the app. The sidebar shows pull request

203context and feedback from reviewers, and the review pane shows comments

204alongside the diff so you can ask Codex to address issues in the same chat.

205 

206Install the GitHub CLI (`gh`) and authenticate it with `gh auth login` so Codex

207can load pull request context, review comments, and changed files. If `gh` is

208missing or unauthenticated, pull request details may not appear in the sidebar

209or review pane.

210 

211Use this flow when you want to keep the full fix loop in one place:

212 

2131. Open the review pane on the pull request branch.

2142. Review the pull request context, comments, and changed files.

2153. Ask Codex to fix the specific comments you want handled.

2164. Inspect the resulting diff in the review pane.

2175. Stage, commit, and push the changes to the pull request branch when you're ready.

218 

219For GitHub-triggered reviews, see [Use Codex in GitHub](https://learn.chatgpt.com/docs/third-party/github).

220 

221## Staging and reverting files402## Staging and reverting files

222 403 

223The review pane includes Git actions so you can shape the diff before you404The review pane includes Git actions so you can shape the diff before you

codex-sdk.md +5 −9

Details

88 88 

89### Usage89### Usage

90 90 

91Start Codex, create a thread, and run a prompt:91Start Codex, create a thread, and run a prompt. The examples use GPT-6.1 Sol,

92which must be available to your signed-in account. Otherwise, omit `model` to

93use your configured default. See [GPT-6.1 Sol availability by plan](https://learn.chatgpt.com/docs/models#gpt-6.1-sol).

92 94 

93```python95```python

94from openai_codex import Codex, Sandbox96from openai_codex import Codex, Sandbox

95 

96with Codex() as codex:97with Codex() as codex:

97 thread = codex.thread_start(98 thread = codex.thread_start(

98 model="gpt-6-sol",99 model="gpt-6.1-sol",

99 sandbox=Sandbox.workspace_write,100 sandbox=Sandbox.workspace_write,

100 )101 )

101 result = thread.run("Make a plan to diagnose and fix the CI failures")102 result = thread.run("Make a plan to diagnose and fix the CI failures")


106 108 

107```python109```python

108import asyncio110import asyncio

109 

110from openai_codex import AsyncCodex111from openai_codex import AsyncCodex

111 

112 

113async def main() -> None:112async def main() -> None:

114 async with AsyncCodex() as codex:113 async with AsyncCodex() as codex:

115 thread = await codex.thread_start(model="gpt-6-sol")114 thread = await codex.thread_start(model="gpt-6.1-sol")

116 result = await thread.run("Implement the plan")115 result = await thread.run("Implement the plan")

117 print(result.final_response)116 print(result.final_response)

118 

119 

120asyncio.run(main())117asyncio.run(main())

121```118```

122 119 

Details

127 127 

128</ContentModeSwitch>128</ContentModeSwitch>

129 129 

130<ContentModeSwitch group="codex-surface" ids="app,web">

131 

132<a id="synced-chatgpt-work"></a>

133 

134#### Local computer access with Work Cloud

135 

136For tasks using Local computer access with Work Cloud, OpenAI's cloud coordinates the conversation. Sandbox restrictions depend on where each step runs:

137 

138- **Cloud execution:** Work cloud containers use existing Work Cloud policies. Desktop browser site rules do not automatically apply to cloud browsers.

139- **Local execution:** Supported local execution requirements govern steps on a connected computer.

140 

141For Work with local access and dots, supported Global policy applies to the shared cloud orchestrator when managed policy is enabled. Work cloud containers and dots cloud computers use their own execution configuration and requirements. Test local and cloud execution separately to confirm which controls apply in each environment. A policy for one environment doesn't grant access to another.

142 

143Within a policy, the order from highest to lowest is OS-specific environment override → all-OS environment override → Global. A higher-priority policy wins even when a lower-priority policy is more specific. For local execution, MDM and legacy managed-device requirements take precedence over Agent Security, which takes precedence over the device's system requirements file.

144 

145Review [Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration) for field-specific merge rules and runtime limits, and check the effective file and network restrictions in [Work local security](https://learn.chatgpt.com/docs/enterprise/chatgpt-work-local-security) and [Work cloud security](https://learn.chatgpt.com/docs/enterprise/chatgpt-work-cloud-security).

146 

147</ContentModeSwitch>

148 

130## How permissions work149## How permissions work

131 150 

132<ContentModeSwitch group="codex-surface" ids="app,cli,ide">151<ContentModeSwitch group="codex-surface" ids="app,cli,ide">

Details

162request a specific model or reasoning effort in your prompt,162request a specific model or reasoning effort in your prompt,

163configure `[agents]` defaults in `config.toml`, or set `model` and163configure `[agents]` defaults in `config.toml`, or set `model` and

164`model_reasoning_effort` directly in the custom agent file.164`model_reasoning_effort` directly in the custom agent file.

165For example, use `gpt-6-luna` for fast scans or a higher-effort `gpt-6-sol` configuration for more demanding reasoning.165For example, use `gpt-6-luna` for fast scans or a higher-effort `gpt-6.1-sol` configuration for more demanding reasoning.

166 166 

167For most tasks in Codex, start with 167For most tasks in Codex, start with

168 `gpt-6-sol`. Use 168 `gpt-6.1-sol` when your

169 `gpt-6-luna` when you want a faster, lower-cost option for lighter subagent169 signed-in account or workspace has [access](https://learn.chatgpt.com/docs/models#gpt-6.1-sol).

170 work.170 Otherwise, choose a model available to you. Use `gpt-6-luna` when you want a

171 faster, lower-cost option for lighter subagent work.

171 172 

172### Model choice173### Model choice

173 174 

174- **`gpt-6-sol`**: Start here for demanding agents. It's strongest for ambiguous, multi-step work that needs planning, tool use, validation, and follow-through across a larger context.175- **`gpt-6.1-sol`**: Start here for demanding agents. Use it for ambiguous, multi-step work that needs planning, tool use, validation, and follow-through across a larger context.

175- **`gpt-6-luna`**: Use for fast, narrowly scoped agents handling clear, repeatable, or high-volume work.176- **`gpt-6-luna`**: Use for fast, narrowly scoped agents handling clear, repeatable, or high-volume work.

176 177 

177### Reasoning effort (`model_reasoning_effort`)178### Reasoning effort (`model_reasoning_effort`)

178 179 

179For explicit model settings, start with `medium` for GPT-6 Sol, `high` for180For GPT-6.1 Sol, use a reasoning effort supported by your client and selected

180GPT-6 Luna, or `low` for GPT-6 Astra. Adjust for the task using a level the181model. For explicit model settings, start with `high` for GPT-6 Luna or `low`

181selected model supports.182for GPT-6 Astra. Adjust for the task using a level the selected model supports.

182 183 

183- **`ultra`**: Use for the deepest reasoning when the selected model supports184- **`ultra`**: Use for the deepest reasoning when the selected model supports

184 it.185 it.

185- **`max`** and **`xhigh`**: Use for especially demanding reasoning when the186- **`max`** and **`xhigh`**: Use for especially demanding reasoning when the

186 selected model supports these levels.187 selected model supports these levels.

187- **`high`**: Use when an agent needs to trace complex logic, check assumptions, or work through edge cases (for example, reviewer or security-focused agents).188- **`high`**: Use when an agent needs to trace complex logic, check assumptions, or work through edge cases (for example, reviewer or security-focused agents).

188- **`medium`**: Balances speed and depth; the starting point for GPT-6 Sol.189- **`medium`**: Balances speed and depth.

189- **`low`**: Use when the task is straightforward and speed matters most.190- **`low`**: Use when the task is straightforward and speed matters most.

190 191 

191Higher reasoning effort increases response time and token usage, but it can improve quality for complex work. For details, see [Models](https://learn.chatgpt.com/docs/models), [Config basics](https://learn.chatgpt.com/docs/config-file/config-basic), and [Configuration Reference](https://learn.chatgpt.com/docs/config-file/config-reference).192Higher reasoning effort increases response time and token usage, but it can improve quality for complex work. For details, see [Models](https://learn.chatgpt.com/docs/models), [Config basics](https://learn.chatgpt.com/docs/config-file/config-basic), and [Configuration Reference](https://learn.chatgpt.com/docs/config-file/config-reference).


403tool surface that matches that job, and instructions that keep it from404tool surface that matches that job, and instructions that keep it from

404drifting into adjacent work.405drifting into adjacent work.

405 406 

407The examples use [GPT-6.1 Sol](https://learn.chatgpt.com/docs/models#gpt-6.1-sol) where your signed-in

408account or workspace has access. If it isn't available, choose a model you can

409use.

410 

406#### Example 1: PR review411#### Example 1: PR review

407 412 

408This pattern splits review across three focused custom agents:413This pattern splits review across three focused custom agents:


438```toml443```toml

439name = "reviewer"444name = "reviewer"

440description = "PR reviewer focused on correctness, security, and missing tests."445description = "PR reviewer focused on correctness, security, and missing tests."

441model = "gpt-6-sol"446model = "gpt-6.1-sol"

442model_reasoning_effort = "medium"447model_reasoning_effort = "medium"

443sandbox_mode = "read-only"448sandbox_mode = "read-only"

444developer_instructions = """449developer_instructions = """


502```toml508```toml

503name = "browser_debugger"509name = "browser_debugger"

504description = "UI debugger that uses browser tooling to reproduce issues and capture evidence."510description = "UI debugger that uses browser tooling to reproduce issues and capture evidence."

505model = "gpt-6-sol"511model = "gpt-6.1-sol"

506model_reasoning_effort = "medium"512model_reasoning_effort = "medium"

507sandbox_mode = "workspace-write"513sandbox_mode = "workspace-write"

508developer_instructions = """514developer_instructions = """

config-advanced.md +28 −11

Details

6 6 

7For background on project guidance, reusable capabilities, custom slash commands, subagent workflows, and integrations, see [Customization](https://learn.chatgpt.com/docs/customization/overview). For configuration keys, see [Configuration Reference](https://learn.chatgpt.com/docs/config-file/config-reference).7For background on project guidance, reusable capabilities, custom slash commands, subagent workflows, and integrations, see [Customization](https://learn.chatgpt.com/docs/customization/overview). For configuration keys, see [Configuration Reference](https://learn.chatgpt.com/docs/config-file/config-reference).

8 8 

9<a id="applying-these-examples-to-synced-work"></a>

10 

11## Applying these examples to Local computer access with Work Cloud

12 

13These examples describe Codex configuration. Check the [Configuration Reference](https://learn.chatgpt.com/docs/config-file/config-reference) before adapting them for Local computer access with Work Cloud.

14 

15- **Policy scope:** For Work with local access and dots, supported Global policy governs the shared cloud orchestrator when managed policy is enabled; applicable local execution requirements govern the connected computer. Work cloud containers retain existing Work Cloud policies.

16- **Local execution:** MDM and legacy managed-device requirements rank above Agent Security. The device's system requirements file ranks below Agent Security.

17- **Enterprise hooks:** Where enabled for your workspace, this feature supports admin-defined MCP hooks that run on the cloud coordinator (orchestrator) for supported lifecycle and tool events. Command hooks and hooks from local configuration or plugins are not supported with cloud orchestration, even when tools execute locally.

18- **Auditing:** Before relying on these hooks, test the callback connection, confirm the events it receives, and check how failures affect the task. MCP hooks do not provide a complete Compliance API audit trail.

19- **Other settings:** Custom model providers and host-local paths do not carry over to this feature through managed configuration. Review network restrictions and field-specific merge rules in [Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration).

20 

21See [Hooks](https://learn.chatgpt.com/docs/hooks) for support scope and setup guidance.

22 

9## Profiles23## Profiles

10 24 

11Profiles let you save named configuration layers and switch between them from25Profiles let you save named configuration layers and switch between them from


16Create a separate TOML file for each profile. Use top-level config keys in the30Create a separate TOML file for each profile. Use top-level config keys in the

17profile file; don't nest them under `[profiles.profile-name]`.31profile file; don't nest them under `[profiles.profile-name]`.

18 32 

33The example uses [GPT-6.1 Sol](https://learn.chatgpt.com/docs/models#gpt-6.1-sol), which requires access

34for your signed-in account or workspace. If it isn't available, choose a model

35you can use.

36 

19```toml37```toml

20# ~/.codex/deep-review.config.toml38# ~/.codex/deep-review.config.toml

21model = "gpt-6-sol"39model = "gpt-6.1-sol"

22model_reasoning_effort = "medium"40model_reasoning_effort = "medium"

23approval_policy = "on-request"41approval_policy = "on-request"

24model_catalog_json = "/Users/me/.codex/model-catalogs/deep-review.json"42model_catalog_json = "/Users/me/.codex/model-catalogs/deep-review.json"


43 62 

44## One-off overrides from the CLI63## One-off overrides from the CLI

45 64 

46In addition to editing `~/.codex/config.toml`, you can override configuration for a single run from the CLI:65You can edit `~/.codex/config.toml` or override configuration for a single run from the CLI:

47 66 

48- Prefer dedicated flags when they exist (for example, `--model`).67- Prefer dedicated flags when they exist (for example, `--model`).

49- Use `-c` / `--config` when you need to override an arbitrary key.68- Use `-c` / `--config` when you need to override an arbitrary key.

50 69 

51Examples:70The model overrides below also require [GPT-6.1 Sol access](https://learn.chatgpt.com/docs/models#gpt-6.1-sol).

71If you don't have access, substitute a model available to you:

52 72 

53```shell73```bash

54# Dedicated flag74# Dedicated flag

55codex --model gpt-6-sol75codex --model gpt-6.1-sol

56 

57# Generic key/value override (value is TOML, not JSON)76# Generic key/value override (value is TOML, not JSON)

58codex --config model='"gpt-6-sol"'77codex --config model='"gpt-6.1-sol"'

59codex --config sandbox_workspace_write.network_access=true78codex --config sandbox_workspace_write.network_access=true

60codex --config 'shell_environment_policy.include_only=["PATH","HOME"]'79codex --config 'shell_environment_policy.include_only=["PATH","HOME"]'

61```80```


161 181 

162A model provider defines how Codex connects to a model (base URL, wire API, authentication, and optional HTTP headers). Custom providers can't reuse the reserved built-in provider IDs: `openai`, `ollama`, and `lmstudio`.182A model provider defines how Codex connects to a model (base URL, wire API, authentication, and optional HTTP headers). Custom providers can't reuse the reserved built-in provider IDs: `openai`, `ollama`, and `lmstudio`.

163 183 

164Define additional providers and point `model_provider` at them:184Define more providers and point `model_provider` at them:

165 185 

166```toml186```toml

167model = "gpt-6-sol"187model = "gpt-6.1-sol"

168model_provider = "proxy"188model_provider = "proxy"

169 

170[model_providers.proxy]189[model_providers.proxy]

171name = "OpenAI using LLM proxy"190name = "OpenAI using LLM proxy"

172base_url = "http://proxy.example.com"191base_url = "http://proxy.example.com"


301 319 

302Pick approval strictness (affects when Codex pauses) and sandbox level (affects file/network access).320Pick approval strictness (affects when Codex pauses) and sandbox level (affects file/network access).

303 321 

304For operational details to keep in mind while editing `config.toml`, see [Common sandbox and approval combinations](https://learn.chatgpt.com/docs/agent-approvals-security#common-sandbox-and-approval-combinations), [Protected paths in writable roots](https://learn.chatgpt.com/docs/agent-approvals-security#protected-paths-in-writable-roots), and [Network access](https://learn.chatgpt.com/docs/agent-approvals-security#network-access).322For guidance on editing `config.toml`, see [Common sandbox and approval combinations](https://learn.chatgpt.com/docs/agent-approvals-security#common-sandbox-and-approval-combinations), [Protected paths in writable roots](https://learn.chatgpt.com/docs/agent-approvals-security#protected-paths-in-writable-roots), and [Network access](https://learn.chatgpt.com/docs/agent-approvals-security#network-access).

305 323 

306Codex and ChatGPT Work no longer support `approval_policy = "untrusted"`. See324Codex and ChatGPT Work no longer support `approval_policy = "untrusted"`. See

307[Migrate from the retired `untrusted` approval policy](https://learn.chatgpt.com/docs/agent-approvals-security#migrate-from-the-retired-untrusted-approval-policy)325[Migrate from the retired `untrusted` approval policy](https://learn.chatgpt.com/docs/agent-approvals-security#migrate-from-the-retired-untrusted-approval-policy)

config-basic.md +11 −2

Details

18 18 

19## Configuration precedence19## Configuration precedence

20 20 

21Requirements constrain behavior; configuration values provide defaults. Local computer access with Work Cloud follows these requirements:

22 

23- **Across policies:** A higher-priority policy wins over a lower-priority policy, even when the lower-priority policy is more specific.

24- **Within one policy:** OS-specific environment overrides take priority over all-OS environment overrides, followed by Global.

25- **For local execution:** MDM and legacy managed-device requirements rank above Agent Security. The device's system requirements file ranks below Agent Security.

26- **For Work Cloud:** Work cloud containers retain existing Work Cloud policies. For Work with local access and dots, supported Global policy governs the shared cloud orchestrator when managed policy is enabled; applicable local execution requirements govern the connected computer.

27 

28Some requirements have field-specific merge rules. See [Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration) for policy scope and runtime limits, and the [Configuration Reference](https://learn.chatgpt.com/docs/config-file/config-reference) for Work compatibility.

29 

21Codex resolves values in this order (highest precedence first):30Codex resolves values in this order (highest precedence first):

22 31 

231. CLI flags and `--config` overrides321. CLI flags and `--config` overrides


53Choose the model Codex uses by default in the CLI and IDE.62Choose the model Codex uses by default in the CLI and IDE.

54 63 

55```toml64```toml

56model = "gpt-6-sol"65model = "gpt-6.1-sol"

57```66```

58 67 

59 68 


96 105 

97#### Web search mode106#### Web search mode

98 107 

99Codex enables web search by default for local chats and serves results from a web search cache. The cache is an OpenAI-maintained index of web results, so cached mode returns pre-indexed results instead of fetching live pages. This reduces exposure to prompt injection from arbitrary live content, but you should still treat web results as untrusted. If you are using `--yolo` or another [full access sandbox setting](https://learn.chatgpt.com/docs/agent-approvals-security#common-sandbox-and-approval-combinations), web search defaults to live results. Choose a mode with `web_search`:108Codex enables web search by default for local chats and serves results from a web search cache. The cache is an OpenAI-maintained index of web results, so cached mode returns pre-indexed results instead of fetching live pages. This reduces exposure to prompt injection from arbitrary live content. Treat web results as untrusted. If you are using `--yolo` or another [full access sandbox setting](https://learn.chatgpt.com/docs/agent-approvals-security#common-sandbox-and-approval-combinations), web search defaults to live results. Choose a mode with `web_search`:

100 109 

101- `"cached"` (default) serves results from the web search cache.110- `"cached"` (default) serves results from the web search cache.

102- `"indexed"` permits external web access only when the search index gates the request.111- `"indexed"` permits external web access only when the search index gates the request.

Details

6 6 

7For background on project guidance, reusable capabilities, custom slash commands, subagent workflows, and integrations, see [Customization](https://learn.chatgpt.com/docs/customization/overview). For configuration keys, see [Configuration Reference](https://learn.chatgpt.com/docs/config-file/config-reference).7For background on project guidance, reusable capabilities, custom slash commands, subagent workflows, and integrations, see [Customization](https://learn.chatgpt.com/docs/customization/overview). For configuration keys, see [Configuration Reference](https://learn.chatgpt.com/docs/config-file/config-reference).

8 8 

9<a id="applying-these-examples-to-synced-work"></a>

10 

11## Applying these examples to Local computer access with Work Cloud

12 

13These examples describe Codex configuration. Check the [Configuration Reference](https://learn.chatgpt.com/docs/config-file/config-reference) before adapting them for Local computer access with Work Cloud.

14 

15- **Policy scope:** For Work with local access and dots, supported Global policy governs the shared cloud orchestrator when managed policy is enabled; applicable local execution requirements govern the connected computer. Work cloud containers retain existing Work Cloud policies.

16- **Local execution:** MDM and legacy managed-device requirements rank above Agent Security. The device's system requirements file ranks below Agent Security.

17- **Enterprise hooks:** Where enabled for your workspace, this feature supports admin-defined MCP hooks that run on the cloud coordinator (orchestrator) for supported lifecycle and tool events. Command hooks and hooks from local configuration or plugins are not supported with cloud orchestration, even when tools execute locally.

18- **Auditing:** Before relying on these hooks, test the callback connection, confirm the events it receives, and check how failures affect the task. MCP hooks do not provide a complete Compliance API audit trail.

19- **Other settings:** Custom model providers and host-local paths do not carry over to this feature through managed configuration. Review network restrictions and field-specific merge rules in [Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration).

20 

21See [Hooks](https://learn.chatgpt.com/docs/hooks) for support scope and setup guidance.

22 

9## Profiles23## Profiles

10 24 

11Profiles let you save named configuration layers and switch between them from25Profiles let you save named configuration layers and switch between them from


16Create a separate TOML file for each profile. Use top-level config keys in the30Create a separate TOML file for each profile. Use top-level config keys in the

17profile file; don't nest them under `[profiles.profile-name]`.31profile file; don't nest them under `[profiles.profile-name]`.

18 32 

33The example uses [GPT-6.1 Sol](https://learn.chatgpt.com/docs/models#gpt-6.1-sol), which requires access

34for your signed-in account or workspace. If it isn't available, choose a model

35you can use.

36 

19```toml37```toml

20# ~/.codex/deep-review.config.toml38# ~/.codex/deep-review.config.toml

21model = "gpt-6-sol"39model = "gpt-6.1-sol"

22model_reasoning_effort = "medium"40model_reasoning_effort = "medium"

23approval_policy = "on-request"41approval_policy = "on-request"

24model_catalog_json = "/Users/me/.codex/model-catalogs/deep-review.json"42model_catalog_json = "/Users/me/.codex/model-catalogs/deep-review.json"


43 62 

44## One-off overrides from the CLI63## One-off overrides from the CLI

45 64 

46In addition to editing `~/.codex/config.toml`, you can override configuration for a single run from the CLI:65You can edit `~/.codex/config.toml` or override configuration for a single run from the CLI:

47 66 

48- Prefer dedicated flags when they exist (for example, `--model`).67- Prefer dedicated flags when they exist (for example, `--model`).

49- Use `-c` / `--config` when you need to override an arbitrary key.68- Use `-c` / `--config` when you need to override an arbitrary key.

50 69 

51Examples:70The model overrides below also require [GPT-6.1 Sol access](https://learn.chatgpt.com/docs/models#gpt-6.1-sol).

71If you don't have access, substitute a model available to you:

52 72 

53```shell73```bash

54# Dedicated flag74# Dedicated flag

55codex --model gpt-6-sol75codex --model gpt-6.1-sol

56 

57# Generic key/value override (value is TOML, not JSON)76# Generic key/value override (value is TOML, not JSON)

58codex --config model='"gpt-6-sol"'77codex --config model='"gpt-6.1-sol"'

59codex --config sandbox_workspace_write.network_access=true78codex --config sandbox_workspace_write.network_access=true

60codex --config 'shell_environment_policy.include_only=["PATH","HOME"]'79codex --config 'shell_environment_policy.include_only=["PATH","HOME"]'

61```80```


161 181 

162A model provider defines how Codex connects to a model (base URL, wire API, authentication, and optional HTTP headers). Custom providers can't reuse the reserved built-in provider IDs: `openai`, `ollama`, and `lmstudio`.182A model provider defines how Codex connects to a model (base URL, wire API, authentication, and optional HTTP headers). Custom providers can't reuse the reserved built-in provider IDs: `openai`, `ollama`, and `lmstudio`.

163 183 

164Define additional providers and point `model_provider` at them:184Define more providers and point `model_provider` at them:

165 185 

166```toml186```toml

167model = "gpt-6-sol"187model = "gpt-6.1-sol"

168model_provider = "proxy"188model_provider = "proxy"

169 

170[model_providers.proxy]189[model_providers.proxy]

171name = "OpenAI using LLM proxy"190name = "OpenAI using LLM proxy"

172base_url = "http://proxy.example.com"191base_url = "http://proxy.example.com"


301 319 

302Pick approval strictness (affects when Codex pauses) and sandbox level (affects file/network access).320Pick approval strictness (affects when Codex pauses) and sandbox level (affects file/network access).

303 321 

304For operational details to keep in mind while editing `config.toml`, see [Common sandbox and approval combinations](https://learn.chatgpt.com/docs/agent-approvals-security#common-sandbox-and-approval-combinations), [Protected paths in writable roots](https://learn.chatgpt.com/docs/agent-approvals-security#protected-paths-in-writable-roots), and [Network access](https://learn.chatgpt.com/docs/agent-approvals-security#network-access).322For guidance on editing `config.toml`, see [Common sandbox and approval combinations](https://learn.chatgpt.com/docs/agent-approvals-security#common-sandbox-and-approval-combinations), [Protected paths in writable roots](https://learn.chatgpt.com/docs/agent-approvals-security#protected-paths-in-writable-roots), and [Network access](https://learn.chatgpt.com/docs/agent-approvals-security#network-access).

305 323 

306Codex and ChatGPT Work no longer support `approval_policy = "untrusted"`. See324Codex and ChatGPT Work no longer support `approval_policy = "untrusted"`. See

307[Migrate from the retired `untrusted` approval policy](https://learn.chatgpt.com/docs/agent-approvals-security#migrate-from-the-retired-untrusted-approval-policy)325[Migrate from the retired `untrusted` approval policy](https://learn.chatgpt.com/docs/agent-approvals-security#migrate-from-the-retired-untrusted-approval-policy)

Details

18 18 

19## Configuration precedence19## Configuration precedence

20 20 

21Requirements constrain behavior; configuration values provide defaults. Local computer access with Work Cloud follows these requirements:

22 

23- **Across policies:** A higher-priority policy wins over a lower-priority policy, even when the lower-priority policy is more specific.

24- **Within one policy:** OS-specific environment overrides take priority over all-OS environment overrides, followed by Global.

25- **For local execution:** MDM and legacy managed-device requirements rank above Agent Security. The device's system requirements file ranks below Agent Security.

26- **For Work Cloud:** Work cloud containers retain existing Work Cloud policies. For Work with local access and dots, supported Global policy governs the shared cloud orchestrator when managed policy is enabled; applicable local execution requirements govern the connected computer.

27 

28Some requirements have field-specific merge rules. See [Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration) for policy scope and runtime limits, and the [Configuration Reference](https://learn.chatgpt.com/docs/config-file/config-reference) for Work compatibility.

29 

21Codex resolves values in this order (highest precedence first):30Codex resolves values in this order (highest precedence first):

22 31 

231. CLI flags and `--config` overrides321. CLI flags and `--config` overrides


53Choose the model Codex uses by default in the CLI and IDE.62Choose the model Codex uses by default in the CLI and IDE.

54 63 

55```toml64```toml

56model = "gpt-6-sol"65model = "gpt-6.1-sol"

57```66```

58 67 

59 68 


96 105 

97#### Web search mode106#### Web search mode

98 107 

99Codex enables web search by default for local chats and serves results from a web search cache. The cache is an OpenAI-maintained index of web results, so cached mode returns pre-indexed results instead of fetching live pages. This reduces exposure to prompt injection from arbitrary live content, but you should still treat web results as untrusted. If you are using `--yolo` or another [full access sandbox setting](https://learn.chatgpt.com/docs/agent-approvals-security#common-sandbox-and-approval-combinations), web search defaults to live results. Choose a mode with `web_search`:108Codex enables web search by default for local chats and serves results from a web search cache. The cache is an OpenAI-maintained index of web results, so cached mode returns pre-indexed results instead of fetching live pages. This reduces exposure to prompt injection from arbitrary live content. Treat web results as untrusted. If you are using `--yolo` or another [full access sandbox setting](https://learn.chatgpt.com/docs/agent-approvals-security#common-sandbox-and-approval-combinations), web search defaults to live results. Choose a mode with `web_search`:

100 109 

101- `"cached"` (default) serves results from the web search cache.110- `"cached"` (default) serves results from the web search cache.

102- `"indexed"` permits external web access only when the search index gates the request.111- `"indexed"` permits external web access only when the search index gates the request.

Details

4 4 

5Use this page as a searchable reference for Codex configuration files. For conceptual guidance and examples, start with [Config basics](https://learn.chatgpt.com/docs/config-file/config-basic) and [Advanced Config](https://learn.chatgpt.com/docs/config-file/config-advanced).5Use this page as a searchable reference for Codex configuration files. For conceptual guidance and examples, start with [Config basics](https://learn.chatgpt.com/docs/config-file/config-basic) and [Advanced Config](https://learn.chatgpt.com/docs/config-file/config-advanced).

6 6 

7<a id="settings-for-synced-chatgpt-work"></a>

8 

9## Settings for Local computer access with Work Cloud

10 

11With Local computer access with Work Cloud enabled, OpenAI's cloud coordinates the task while supported tools run in the cloud or on a connected computer. Requirements set limits; configuration values provide defaults.

12 

13Use the policy API to manage Global settings. To manage Local or Codex Cloud settings, use the Agent Security UI. Existing Global API workflows remain available after migration. Test your scripts and Terraform integrations, and confirm that policy assignments and ordering are unchanged. Support for a `requirements.toml` field does not by itself establish API compatibility.

14 

15| Setting or setting family | Scope in Local computer access with Work Cloud | Guidance |

16| ------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

17| Approval policies and review requirements | Global orchestrator policy when managed policy is enabled | Keep approval and review controls in Global. Environment overrides cannot change orchestrator controls. Local execution and cloud-container execution have separate policy scopes. |

18| Managed apps, MCP servers, plugins, marketplaces, and command rules | Global policy | Keep these controls global. Do not treat the field's presence in a schema as proof that the field can be edited per environment. |

19| File, sandbox, and portable network requirements | Local execution | For local execution, MDM and legacy managed-device requirements rank above Agent Security. The device's system requirements file ranks below Agent Security. The new enterprise `requirements.toml` configuration does not apply to Work cloud containers, which retain existing Work Cloud policies. |

20| Platform-specific executor controls | Computer running the step | Support depends on the executor and platform. |

21| Managed hooks | Where enabled, admin-defined MCP hooks that run on the cloud coordinator (orchestrator) for supported lifecycle and tool events. | Before relying on these hooks, test the callback connection, confirm the events it receives, and check how failures affect the task. MCP hooks do not provide a complete Compliance API audit trail. Command, local-config, and plugin hooks are unsupported with cloud orchestration, even when tools execute locally. Existing supported hooks still apply to local-only Work and Codex threads where orchestration and execution are both local. |

22| Proxy listener addresses, ports, and process settings | Not portable environment policy | Managed HTTP/SOCKS listener ports and non-loopback proxy listeners are unsupported by the cloud runtime; socket-rule support depends on the execution path. Custom proxy configuration is separate from supported destination restrictions. |

23| App-only settings and ordinary local defaults | Not necessarily consumed by cloud coordination | App-enforced controls can remain effective even when Local computer access with Work Cloud does not consume them. Cloud delivery and cloud-browser behavior need separate validation. |

24 

25<a id="agent-security-requirements-used-by-work-cloud"></a>

26 

27<a id="agent-security-requirements-for-synced-work"></a>

28 

29### Agent Security requirements for Local computer access with Work Cloud

30 

31For Work with local access and dots, supported Global policy applies to the shared cloud orchestrator when managed policy is enabled. Local execution requirements govern the connected computer. Work cloud containers and dots cloud computers use their own execution configuration and requirements. Test local and cloud controls separately.

32 

33#### Exposed in the Agent Security UI

34 

35- Allowed approval policies

36- Allowed web search modes

37 

38#### Configured through TOML

39 

40- `allowed_approvals_reviewers`

41- `auto_review`

42- `guardian_policy_config`

43- `apps`

44- `mcp_servers`

45- `plugins`

46- `rules`

47 

48These orchestrator requirements stay in Global. They do not configure shared cloud capability permissions or make local execution settings portable to Work cloud containers or dots cloud computers.

49 

50<a id="work-sync-compatibility-limits"></a>

51 

52<a id="local-computer-access-compatibility-limits"></a>

53 

54### Local computer access with Work Cloud compatibility limits

55 

56Support depends on the field, how the policy is delivered, and where the task runs. Check the member's effective policy before enabling sync. Some controls need to be tested in your deployment, as noted in the table.

57 

58Within a policy, the order from highest to lowest is OS-specific environment override → all-OS environment override → Global. A higher-priority policy wins even when a lower-priority policy is more specific.

59 

60For local execution, MDM and legacy managed-device requirements take precedence over Agent Security, which takes precedence over the device's system requirements file. Some requirements, including network requirements, have field-specific merge rules and runtime limits. See [Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration) for examples.

61 

62| **Setting or family** | **Local computer access with Work Cloud compatibility** | **Admin guidance** |

63| -------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

64| `sqlite_home`, `log_dir`, `model_catalog_json` | Not supported as managed cloud overrides. | Local paths cannot move cloud storage or logs. A local model catalog does not carry over. |

65| `model_provider`, `model_providers` | Not supported in managed Local computer access with Work Cloud requirements or configuration. | Custom inference gateways and provider connections do not carry over through these fields. This is separate from model selection. |

66| `enforce_residency` | Blocks Local computer access with Work Cloud when enabled in any cloud policy. | If `enforce_residency` is enabled in any cloud policy, **Allow local computer access** is disabled for both Work and dots. This safeguard does not configure workspace residency or, by itself, disable Work Cloud or dots. |

67| `application.network.enabled` and `application.network.domains` | Not supported by Local computer access with Work Cloud. | Do not use these application-destination restrictions as Local computer access with Work Cloud command-networking controls. |

68| `allow_browser_and_computer_use`, `in_app_browser`, `additional_developer_instructions` | Cloud policy delivery needs validation. Local computer access with Work Cloud rejects these managed requirement keys. | Browser restrictions have app-side checks. That does not prove cloud delivery or cloud-browser enforcement. `additional_developer_instructions` requires orchestrator support. |

69| `experimental_network` and `permissions.<profile>.network` | Partial. Supported destination and executor restrictions differ from custom proxy configuration. | Managed HTTP/SOCKS listener ports and non-loopback proxy listeners are unsupported by the cloud runtime; socket-rule support depends on the execution path. Local-execution merge behavior is separate. Command-network restrictions do not disable hosted search, MCP, or app tools. |

70| features / `feature_requirements`, models, `computer_use` | Partial. | Retired switches such as `tool_search` = false, `tool_search_always_defer_mcp_tools` = false, `js_repl` = true, and `remote_control` = true are rejected. Some computer-use settings still need end-to-end validation. |

71| `browser_use`, `allow_appshots`, feedback, `allow_remote_control`, marketplace source restrictions | The app or app-server enforces these controls on some policy delivery paths. | App controls can still apply when Local computer access with Work Cloud ignores a field. Desktop browser site rules do not apply to Work cloud containers. Validate the actual surface and policy delivery path. |

72 

73The configuration schema includes keys that may not work with Local computer access with Work Cloud or support environment overrides. See [Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration) for the global baseline and precedence.

74 

7## `config.toml`75## `config.toml`

8 76 

9User-level configuration lives in `~/.codex/config.toml`. You can also add project-scoped overrides in `.codex/config.toml` files. Codex loads project-scoped config files only when you trust the project.77User-level configuration lives in `~/.codex/config.toml`. You can also add project-scoped overrides in `.codex/config.toml` files. Codex loads project-scoped config files only when you trust the project.


27[Migrate from the retired `untrusted` approval policy](https://learn.chatgpt.com/docs/agent-approvals-security#migrate-from-the-retired-untrusted-approval-policy)95[Migrate from the retired `untrusted` approval policy](https://learn.chatgpt.com/docs/agent-approvals-security#migrate-from-the-retired-untrusted-approval-policy)

28for examples and approval tradeoffs.96for examples and approval tradeoffs.

29 97 

98Set `model` to one available to your signed-in account or workspace. See

99[GPT-6.1 Sol availability](https://learn.chatgpt.com/docs/models#gpt-6.1-sol) before using the example value.

100 

30<ConfigTable101<ConfigTable

31 options={[102 options={[

32 {103 {

33 key: "model",104 key: "model",

34 type: "string",105 type: "string",

35 description: "Model to use (e.g., `gpt-6-sol`).",106 description: "Model to use (e.g., `gpt-6.1-sol`).",

36 },107 },

37 {108 {

38 key: "review_model",109 key: "review_model",


444 key: "features.context_management.experimental_mode",515 key: "features.context_management.experimental_mode",

445 type: "boolean",516 type: "boolean",

446 description:517 description:

447 "Enable experimental context management (off by default). Rather than repeatedly compressing context into a single summary, it uses notes and searchable history to preserve accumulated details. Requires ChatGPT sign-in on Plus, Pro, or Pro Lite.",518 "Experimental context-management setting. The feature is not currently available.",

448 },519 },

449 {520 {

450 key: "features.rollout_budget.enabled",521 key: "features.rollout_budget.enabled",


845 key: "features.network_proxy.domains",916 key: "features.network_proxy.domains",

846 type: "map<string, allow | deny>",917 type: "map<string, allow | deny>",

847 description:918 description:

848 "Domain policy for sandboxed networking. Unset by default, which means no external destinations are allowed until you add `allow` rules. Supports exact hosts, `*.example.com` for subdomains only, `**.example.com` for apex plus subdomains, and global `*` allow rules; prefer scoped rules because `*` broadly opens public outbound access. Add `deny` rules for blocked destinations; `deny` wins on conflicts.",919 "Domain policy for sandboxed networking. Unset by default, which means no external destinations are allowed until you add `allow` rules. Supports exact hosts, `*.example.com` for subdomains only, `**.example.com` for apex plus subdomains, and global `*` allow rules. Prefer scoped rules because `*` broadly opens public outbound access. Add `deny` rules for blocked destinations; `deny` wins on conflicts.",

849 },920 },

850 {921 {

851 key: "features.network_proxy.unix_sockets",922 key: "features.network_proxy.unix_sockets",


2413 key: "experimental_network",2484 key: "experimental_network",

2414 type: "table",2485 type: "table",

2415 description:2486 description:

2416 "Administrator-managed network requirements for sandboxed local commands, enforced from `requirements.toml`. When enabled, these requirements can start the command network proxy without `features.network_proxy`. Browser tools separately check managed network denies and exclusive allowlists. These requirements do not route browser traffic through the proxy or control web search, apps, MCP servers, native-app traffic, or Codex cloud networking.",2487 "Administrator-managed network requirements for sandboxed local commands, enforced from `requirements.toml`. When enabled, these requirements can start the command network proxy without `features.network_proxy`. Browser tools separately check managed network denies and exclusive allowlists. These requirements do not route browser traffic through the proxy or control web search, apps, MCP servers, native-app traffic, or other capability-specific traffic. On supported managed Codex Cloud paths, these requirements constrain command networking alongside separate Cloud environment internet settings. Approved full sandbox escalation can bypass the command proxy where policy permits it. Work Cloud does not inherit these requirements.",

2417 },2488 },

2418 {2489 {

2419 key: "experimental_network.enabled",2490 key: "experimental_network.enabled",


2455 key: "experimental_network.domains",2526 key: "experimental_network.domains",

2456 type: "map<string, allow | deny>",2527 type: "map<string, allow | deny>",

2457 description:2528 description:

2458 "Map-shaped administrator domain policy for sandboxed networking. Supports exact hosts, `*.example.com` for subdomains only, `**.example.com` for apex plus subdomains, and global `*` allow rules; prefer scoped rules because `*` broadly opens public outbound access. `deny` wins on conflicts. Do not combine this with `experimental_network.allowed_domains` or `experimental_network.denied_domains`.",2529 "Map-shaped administrator domain policy for sandboxed networking. Supports exact hosts, `*.example.com` for subdomains only, `**.example.com` for apex plus subdomains, and global `*` allow rules. Prefer scoped rules because `*` broadly opens public outbound access. Environment rules can replace the same Global domain key within a policy. Higher-priority values replace the same key, while other inherited keys remain. After composition, a different matching `deny`, including an inherited wildcard, still blocks a request. Empty environment maps do not clear Global rules. Verify executor support. Do not combine this with `experimental_network.allowed_domains` or `experimental_network.denied_domains`.",

2459 },2530 },

2460 {2531 {

2461 key: "experimental_network.domains.<pattern>",2532 key: "experimental_network.domains.<pattern>",


2479 key: "experimental_network.managed_allowed_domains_only",2550 key: "experimental_network.managed_allowed_domains_only",

2480 type: "boolean",2551 type: "boolean",

2481 description:2552 description:

2482 "When `true`, only administrator-managed allow rules remain effective while sandboxed networking requirements are active; user allowlist additions are ignored. Without managed allow rules, user-added domain allow rules do not remain effective.",2553 "When networking requirements are enabled and this is true, ordinary user configuration and per-domain approvals cannot expand the managed proxy allowlist. With no effective configured or inherited Allow entries, ordinary managed commands have no allowed destinations. A deny-only policy does not allow the rest of the internet. This does not cover every tool or approved full sandbox escalation.",

2483 },2554 },

2484 {2555 {

2485 key: "experimental_network.unix_sockets",2556 key: "experimental_network.unix_sockets",


2497 key: "experimental_network.allow_local_binding",2568 key: "experimental_network.allow_local_binding",

2498 type: "boolean",2569 type: "boolean",

2499 description:2570 description:

2500 "Permit broader local/private-network access for sandboxed networking. Exact local IP literal or `localhost` allow rules can still permit specific local targets when this stays `false`.",2571 "Permit broader local/private-network access for sandboxed networking. On the supported Codex Cloud proxy path, an explicit false can prevent upstream-proxy access even if a domain is allowed. It defaults to true only if no applicable requirement, selected network profile, or proxy feature setting provides a value. Inherited false remains explicit. A supported higher-priority Cloud override can change it without broadening Global for Local or adding domain Allow entries. Verify executor support. Do not apply this Cloud default to Local.",

2501 },2572 },

2502 {2573 {

2503 key: "hooks",2574 key: "hooks",

Details

2 2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 4 

5This sample describes Codex configuration. For Local computer access with Work Cloud, use the [Configuration Reference](https://learn.chatgpt.com/docs/config-file/config-reference) to check which settings apply.

6 

7For Work with local access and dots, supported Global policy governs the shared cloud orchestrator when managed policy is enabled; applicable local execution requirements govern the connected computer. Work cloud containers use existing Work Cloud policies. For local execution, MDM and legacy managed-device requirements take precedence over Agent Security, which takes precedence over the device's system requirements file. See [Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration) for policy order, field-specific merge rules, and network limits.

8 

9Where enabled for your workspace, Local computer access with Work Cloud supports admin-defined MCP hooks that run on the cloud coordinator (orchestrator) for supported lifecycle and tool events. Command hooks and hooks from local configuration or plugins are not supported with cloud orchestration, even when tools execute locally. Before relying on these hooks, test the callback connection, confirm the events it receives, and check how failures affect the task. MCP hooks do not provide a complete Compliance API audit trail. See [Hooks](https://learn.chatgpt.com/docs/hooks) for supported events and setup. The Codex examples below remain unchanged.

10 

5Use this example configuration as a starting point. It includes most keys Codex reads from `config.toml`, along with default behaviors, recommended values where helpful, and short notes.11Use this example configuration as a starting point. It includes most keys Codex reads from `config.toml`, along with default behaviors, recommended values where helpful, and short notes.

6 12 

7For explanations and guidance, see:13For explanations and guidance, see:


14 20 

15Use the snippet below as a reference. Copy only the keys and sections you need into `~/.codex/config.toml` (or into a project-scoped `.codex/config.toml`), then adjust values for your setup.21Use the snippet below as a reference. Copy only the keys and sections you need into `~/.codex/config.toml` (or into a project-scoped `.codex/config.toml`), then adjust values for your setup.

16 22 

23The sample selects [GPT-6.1 Sol](https://learn.chatgpt.com/docs/models#gpt-6.1-sol), which requires

24access for your signed-in account or workspace. If it isn't available, replace

25it with a model you can use.

26 

17```toml27```toml

18# Codex example configuration (config.toml)28# Codex example configuration (config.toml)

19#29#


31 41 

32################################################################################42################################################################################

33 43 

34# Primary model used by Codex. Recommended example for most users: "gpt-6-sol".44# Primary model used by Codex. Example when available: "gpt-6.1-sol".

35 45 

36model = "gpt-6-sol"46model = "gpt-6.1-sol"

37 47 

38# Communication style for supported models. Allowed values: none | friendly | pragmatic48# Communication style for supported models. Allowed values: none | friendly | pragmatic

39 49 


41 51 

42# Optional model override for /review. Default: unset (uses current session model).52# Optional model override for /review. Default: unset (uses current session model).

43 53 

44# review_model = "gpt-6-sol"54# review_model = "gpt-6.1-sol"

45 55 

46# Provider id selected from [model_providers]. Default: "openai".56# Provider id selected from [model_providers]. Default: "openai".

47 57 


359 369 

360# Default model for spawned agents. An explicit spawn model takes precedence.370# Default model for spawned agents. An explicit spawn model takes precedence.

361 371 

362# default_subagent_model = "gpt-6-sol"372# default_subagent_model = "gpt-6.1-sol"

363 373 

364# Default reasoning effort for spawned agents. An explicit spawn effort takes precedence.374# Default reasoning effort for spawned agents. An explicit spawn effort takes precedence.

365 375 


671 681 

672# [tui.model_availability_nux]682# [tui.model_availability_nux]

673 683 

674# "gpt-6-sol" = 1684# "gpt-6.1-sol" = 1

675 685 

676# Enable or disable analytics for this machine. When unset, Codex uses its default behavior.686# Enable or disable analytics for this machine. When unset, Codex uses its default behavior.

677 687 


697 707 

698# "hide_gpt-5.1-codex-max_migration_prompt" = true708# "hide_gpt-5.1-codex-max_migration_prompt" = true

699 709 

700# model_migrations = { "gpt-5.4" = "gpt-6-sol" }710# model_migrations = { "gpt-5.4" = "gpt-6.1-sol" }

701 711 

702################################################################################712################################################################################

703 713 


1079 1089 

1080# For example, a CI profile could live at $CODEX_HOME/ci.config.toml:1090# For example, a CI profile could live at $CODEX_HOME/ci.config.toml:

1081 1091 

1082# model = "gpt-6-sol"1092# model = "gpt-6.1-sol"

1083 1093 

1084# approval_policy = "on-request"1094# approval_policy = "on-request"

1085 1095 

Details

4 4 

5Use this page as a searchable reference for Codex configuration files. For conceptual guidance and examples, start with [Config basics](https://learn.chatgpt.com/docs/config-file/config-basic) and [Advanced Config](https://learn.chatgpt.com/docs/config-file/config-advanced).5Use this page as a searchable reference for Codex configuration files. For conceptual guidance and examples, start with [Config basics](https://learn.chatgpt.com/docs/config-file/config-basic) and [Advanced Config](https://learn.chatgpt.com/docs/config-file/config-advanced).

6 6 

7<a id="settings-for-synced-chatgpt-work"></a>

8 

9## Settings for Local computer access with Work Cloud

10 

11With Local computer access with Work Cloud enabled, OpenAI's cloud coordinates the task while supported tools run in the cloud or on a connected computer. Requirements set limits; configuration values provide defaults.

12 

13Use the policy API to manage Global settings. To manage Local or Codex Cloud settings, use the Agent Security UI. Existing Global API workflows remain available after migration. Test your scripts and Terraform integrations, and confirm that policy assignments and ordering are unchanged. Support for a `requirements.toml` field does not by itself establish API compatibility.

14 

15| Setting or setting family | Scope in Local computer access with Work Cloud | Guidance |

16| ------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

17| Approval policies and review requirements | Global orchestrator policy when managed policy is enabled | Keep approval and review controls in Global. Environment overrides cannot change orchestrator controls. Local execution and cloud-container execution have separate policy scopes. |

18| Managed apps, MCP servers, plugins, marketplaces, and command rules | Global policy | Keep these controls global. Do not treat the field's presence in a schema as proof that the field can be edited per environment. |

19| File, sandbox, and portable network requirements | Local execution | For local execution, MDM and legacy managed-device requirements rank above Agent Security. The device's system requirements file ranks below Agent Security. The new enterprise `requirements.toml` configuration does not apply to Work cloud containers, which retain existing Work Cloud policies. |

20| Platform-specific executor controls | Computer running the step | Support depends on the executor and platform. |

21| Managed hooks | Where enabled, admin-defined MCP hooks that run on the cloud coordinator (orchestrator) for supported lifecycle and tool events. | Before relying on these hooks, test the callback connection, confirm the events it receives, and check how failures affect the task. MCP hooks do not provide a complete Compliance API audit trail. Command, local-config, and plugin hooks are unsupported with cloud orchestration, even when tools execute locally. Existing supported hooks still apply to local-only Work and Codex threads where orchestration and execution are both local. |

22| Proxy listener addresses, ports, and process settings | Not portable environment policy | Managed HTTP/SOCKS listener ports and non-loopback proxy listeners are unsupported by the cloud runtime; socket-rule support depends on the execution path. Custom proxy configuration is separate from supported destination restrictions. |

23| App-only settings and ordinary local defaults | Not necessarily consumed by cloud coordination | App-enforced controls can remain effective even when Local computer access with Work Cloud does not consume them. Cloud delivery and cloud-browser behavior need separate validation. |

24 

25<a id="agent-security-requirements-used-by-work-cloud"></a>

26 

27<a id="agent-security-requirements-for-synced-work"></a>

28 

29### Agent Security requirements for Local computer access with Work Cloud

30 

31For Work with local access and dots, supported Global policy applies to the shared cloud orchestrator when managed policy is enabled. Local execution requirements govern the connected computer. Work cloud containers and dots cloud computers use their own execution configuration and requirements. Test local and cloud controls separately.

32 

33#### Exposed in the Agent Security UI

34 

35- Allowed approval policies

36- Allowed web search modes

37 

38#### Configured through TOML

39 

40- `allowed_approvals_reviewers`

41- `auto_review`

42- `guardian_policy_config`

43- `apps`

44- `mcp_servers`

45- `plugins`

46- `rules`

47 

48These orchestrator requirements stay in Global. They do not configure shared cloud capability permissions or make local execution settings portable to Work cloud containers or dots cloud computers.

49 

50<a id="work-sync-compatibility-limits"></a>

51 

52<a id="local-computer-access-compatibility-limits"></a>

53 

54### Local computer access with Work Cloud compatibility limits

55 

56Support depends on the field, how the policy is delivered, and where the task runs. Check the member's effective policy before enabling sync. Some controls need to be tested in your deployment, as noted in the table.

57 

58Within a policy, the order from highest to lowest is OS-specific environment override → all-OS environment override → Global. A higher-priority policy wins even when a lower-priority policy is more specific.

59 

60For local execution, MDM and legacy managed-device requirements take precedence over Agent Security, which takes precedence over the device's system requirements file. Some requirements, including network requirements, have field-specific merge rules and runtime limits. See [Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration) for examples.

61 

62| **Setting or family** | **Local computer access with Work Cloud compatibility** | **Admin guidance** |

63| -------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

64| `sqlite_home`, `log_dir`, `model_catalog_json` | Not supported as managed cloud overrides. | Local paths cannot move cloud storage or logs. A local model catalog does not carry over. |

65| `model_provider`, `model_providers` | Not supported in managed Local computer access with Work Cloud requirements or configuration. | Custom inference gateways and provider connections do not carry over through these fields. This is separate from model selection. |

66| `enforce_residency` | Blocks Local computer access with Work Cloud when enabled in any cloud policy. | If `enforce_residency` is enabled in any cloud policy, **Allow local computer access** is disabled for both Work and dots. This safeguard does not configure workspace residency or, by itself, disable Work Cloud or dots. |

67| `application.network.enabled` and `application.network.domains` | Not supported by Local computer access with Work Cloud. | Do not use these application-destination restrictions as Local computer access with Work Cloud command-networking controls. |

68| `allow_browser_and_computer_use`, `in_app_browser`, `additional_developer_instructions` | Cloud policy delivery needs validation. Local computer access with Work Cloud rejects these managed requirement keys. | Browser restrictions have app-side checks. That does not prove cloud delivery or cloud-browser enforcement. `additional_developer_instructions` requires orchestrator support. |

69| `experimental_network` and `permissions.<profile>.network` | Partial. Supported destination and executor restrictions differ from custom proxy configuration. | Managed HTTP/SOCKS listener ports and non-loopback proxy listeners are unsupported by the cloud runtime; socket-rule support depends on the execution path. Local-execution merge behavior is separate. Command-network restrictions do not disable hosted search, MCP, or app tools. |

70| features / `feature_requirements`, models, `computer_use` | Partial. | Retired switches such as `tool_search` = false, `tool_search_always_defer_mcp_tools` = false, `js_repl` = true, and `remote_control` = true are rejected. Some computer-use settings still need end-to-end validation. |

71| `browser_use`, `allow_appshots`, feedback, `allow_remote_control`, marketplace source restrictions | The app or app-server enforces these controls on some policy delivery paths. | App controls can still apply when Local computer access with Work Cloud ignores a field. Desktop browser site rules do not apply to Work cloud containers. Validate the actual surface and policy delivery path. |

72 

73The configuration schema includes keys that may not work with Local computer access with Work Cloud or support environment overrides. See [Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration) for the global baseline and precedence.

74 

7## `config.toml`75## `config.toml`

8 76 

9User-level configuration lives in `~/.codex/config.toml`. You can also add project-scoped overrides in `.codex/config.toml` files. Codex loads project-scoped config files only when you trust the project.77User-level configuration lives in `~/.codex/config.toml`. You can also add project-scoped overrides in `.codex/config.toml` files. Codex loads project-scoped config files only when you trust the project.


27[Migrate from the retired `untrusted` approval policy](https://learn.chatgpt.com/docs/agent-approvals-security#migrate-from-the-retired-untrusted-approval-policy)95[Migrate from the retired `untrusted` approval policy](https://learn.chatgpt.com/docs/agent-approvals-security#migrate-from-the-retired-untrusted-approval-policy)

28for examples and approval tradeoffs.96for examples and approval tradeoffs.

29 97 

98Set `model` to one available to your signed-in account or workspace. See

99[GPT-6.1 Sol availability](https://learn.chatgpt.com/docs/models#gpt-6.1-sol) before using the example value.

100 

30<ConfigTable101<ConfigTable

31 options={[102 options={[

32 {103 {

33 key: "model",104 key: "model",

34 type: "string",105 type: "string",

35 description: "Model to use (e.g., `gpt-6-sol`).",106 description: "Model to use (e.g., `gpt-6.1-sol`).",

36 },107 },

37 {108 {

38 key: "review_model",109 key: "review_model",


444 key: "features.context_management.experimental_mode",515 key: "features.context_management.experimental_mode",

445 type: "boolean",516 type: "boolean",

446 description:517 description:

447 "Enable experimental context management (off by default). Rather than repeatedly compressing context into a single summary, it uses notes and searchable history to preserve accumulated details. Requires ChatGPT sign-in on Plus, Pro, or Pro Lite.",518 "Experimental context-management setting. The feature is not currently available.",

448 },519 },

449 {520 {

450 key: "features.rollout_budget.enabled",521 key: "features.rollout_budget.enabled",


845 key: "features.network_proxy.domains",916 key: "features.network_proxy.domains",

846 type: "map<string, allow | deny>",917 type: "map<string, allow | deny>",

847 description:918 description:

848 "Domain policy for sandboxed networking. Unset by default, which means no external destinations are allowed until you add `allow` rules. Supports exact hosts, `*.example.com` for subdomains only, `**.example.com` for apex plus subdomains, and global `*` allow rules; prefer scoped rules because `*` broadly opens public outbound access. Add `deny` rules for blocked destinations; `deny` wins on conflicts.",919 "Domain policy for sandboxed networking. Unset by default, which means no external destinations are allowed until you add `allow` rules. Supports exact hosts, `*.example.com` for subdomains only, `**.example.com` for apex plus subdomains, and global `*` allow rules. Prefer scoped rules because `*` broadly opens public outbound access. Add `deny` rules for blocked destinations; `deny` wins on conflicts.",

849 },920 },

850 {921 {

851 key: "features.network_proxy.unix_sockets",922 key: "features.network_proxy.unix_sockets",


2413 key: "experimental_network",2484 key: "experimental_network",

2414 type: "table",2485 type: "table",

2415 description:2486 description:

2416 "Administrator-managed network requirements for sandboxed local commands, enforced from `requirements.toml`. When enabled, these requirements can start the command network proxy without `features.network_proxy`. Browser tools separately check managed network denies and exclusive allowlists. These requirements do not route browser traffic through the proxy or control web search, apps, MCP servers, native-app traffic, or Codex cloud networking.",2487 "Administrator-managed network requirements for sandboxed local commands, enforced from `requirements.toml`. When enabled, these requirements can start the command network proxy without `features.network_proxy`. Browser tools separately check managed network denies and exclusive allowlists. These requirements do not route browser traffic through the proxy or control web search, apps, MCP servers, native-app traffic, or other capability-specific traffic. On supported managed Codex Cloud paths, these requirements constrain command networking alongside separate Cloud environment internet settings. Approved full sandbox escalation can bypass the command proxy where policy permits it. Work Cloud does not inherit these requirements.",

2417 },2488 },

2418 {2489 {

2419 key: "experimental_network.enabled",2490 key: "experimental_network.enabled",


2455 key: "experimental_network.domains",2526 key: "experimental_network.domains",

2456 type: "map<string, allow | deny>",2527 type: "map<string, allow | deny>",

2457 description:2528 description:

2458 "Map-shaped administrator domain policy for sandboxed networking. Supports exact hosts, `*.example.com` for subdomains only, `**.example.com` for apex plus subdomains, and global `*` allow rules; prefer scoped rules because `*` broadly opens public outbound access. `deny` wins on conflicts. Do not combine this with `experimental_network.allowed_domains` or `experimental_network.denied_domains`.",2529 "Map-shaped administrator domain policy for sandboxed networking. Supports exact hosts, `*.example.com` for subdomains only, `**.example.com` for apex plus subdomains, and global `*` allow rules. Prefer scoped rules because `*` broadly opens public outbound access. Environment rules can replace the same Global domain key within a policy. Higher-priority values replace the same key, while other inherited keys remain. After composition, a different matching `deny`, including an inherited wildcard, still blocks a request. Empty environment maps do not clear Global rules. Verify executor support. Do not combine this with `experimental_network.allowed_domains` or `experimental_network.denied_domains`.",

2459 },2530 },

2460 {2531 {

2461 key: "experimental_network.domains.<pattern>",2532 key: "experimental_network.domains.<pattern>",


2479 key: "experimental_network.managed_allowed_domains_only",2550 key: "experimental_network.managed_allowed_domains_only",

2480 type: "boolean",2551 type: "boolean",

2481 description:2552 description:

2482 "When `true`, only administrator-managed allow rules remain effective while sandboxed networking requirements are active; user allowlist additions are ignored. Without managed allow rules, user-added domain allow rules do not remain effective.",2553 "When networking requirements are enabled and this is true, ordinary user configuration and per-domain approvals cannot expand the managed proxy allowlist. With no effective configured or inherited Allow entries, ordinary managed commands have no allowed destinations. A deny-only policy does not allow the rest of the internet. This does not cover every tool or approved full sandbox escalation.",

2483 },2554 },

2484 {2555 {

2485 key: "experimental_network.unix_sockets",2556 key: "experimental_network.unix_sockets",


2497 key: "experimental_network.allow_local_binding",2568 key: "experimental_network.allow_local_binding",

2498 type: "boolean",2569 type: "boolean",

2499 description:2570 description:

2500 "Permit broader local/private-network access for sandboxed networking. Exact local IP literal or `localhost` allow rules can still permit specific local targets when this stays `false`.",2571 "Permit broader local/private-network access for sandboxed networking. On the supported Codex Cloud proxy path, an explicit false can prevent upstream-proxy access even if a domain is allowed. It defaults to true only if no applicable requirement, selected network profile, or proxy feature setting provides a value. Inherited false remains explicit. A supported higher-priority Cloud override can change it without broadening Global for Local or adding domain Allow entries. Verify executor support. Do not apply this Cloud default to Local.",

2501 },2572 },

2502 {2573 {

2503 key: "hooks",2574 key: "hooks",

config-sample.md +17 −7

Details

2 2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 4 

5This sample describes Codex configuration. For Local computer access with Work Cloud, use the [Configuration Reference](https://learn.chatgpt.com/docs/config-file/config-reference) to check which settings apply.

6 

7For Work with local access and dots, supported Global policy governs the shared cloud orchestrator when managed policy is enabled; applicable local execution requirements govern the connected computer. Work cloud containers use existing Work Cloud policies. For local execution, MDM and legacy managed-device requirements take precedence over Agent Security, which takes precedence over the device's system requirements file. See [Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration) for policy order, field-specific merge rules, and network limits.

8 

9Where enabled for your workspace, Local computer access with Work Cloud supports admin-defined MCP hooks that run on the cloud coordinator (orchestrator) for supported lifecycle and tool events. Command hooks and hooks from local configuration or plugins are not supported with cloud orchestration, even when tools execute locally. Before relying on these hooks, test the callback connection, confirm the events it receives, and check how failures affect the task. MCP hooks do not provide a complete Compliance API audit trail. See [Hooks](https://learn.chatgpt.com/docs/hooks) for supported events and setup. The Codex examples below remain unchanged.

10 

5Use this example configuration as a starting point. It includes most keys Codex reads from `config.toml`, along with default behaviors, recommended values where helpful, and short notes.11Use this example configuration as a starting point. It includes most keys Codex reads from `config.toml`, along with default behaviors, recommended values where helpful, and short notes.

6 12 

7For explanations and guidance, see:13For explanations and guidance, see:


14 20 

15Use the snippet below as a reference. Copy only the keys and sections you need into `~/.codex/config.toml` (or into a project-scoped `.codex/config.toml`), then adjust values for your setup.21Use the snippet below as a reference. Copy only the keys and sections you need into `~/.codex/config.toml` (or into a project-scoped `.codex/config.toml`), then adjust values for your setup.

16 22 

23The sample selects [GPT-6.1 Sol](https://learn.chatgpt.com/docs/models#gpt-6.1-sol), which requires

24access for your signed-in account or workspace. If it isn't available, replace

25it with a model you can use.

26 

17```toml27```toml

18# Codex example configuration (config.toml)28# Codex example configuration (config.toml)

19#29#


31 41 

32################################################################################42################################################################################

33 43 

34# Primary model used by Codex. Recommended example for most users: "gpt-6-sol".44# Primary model used by Codex. Example when available: "gpt-6.1-sol".

35 45 

36model = "gpt-6-sol"46model = "gpt-6.1-sol"

37 47 

38# Communication style for supported models. Allowed values: none | friendly | pragmatic48# Communication style for supported models. Allowed values: none | friendly | pragmatic

39 49 


41 51 

42# Optional model override for /review. Default: unset (uses current session model).52# Optional model override for /review. Default: unset (uses current session model).

43 53 

44# review_model = "gpt-6-sol"54# review_model = "gpt-6.1-sol"

45 55 

46# Provider id selected from [model_providers]. Default: "openai".56# Provider id selected from [model_providers]. Default: "openai".

47 57 


359 369 

360# Default model for spawned agents. An explicit spawn model takes precedence.370# Default model for spawned agents. An explicit spawn model takes precedence.

361 371 

362# default_subagent_model = "gpt-6-sol"372# default_subagent_model = "gpt-6.1-sol"

363 373 

364# Default reasoning effort for spawned agents. An explicit spawn effort takes precedence.374# Default reasoning effort for spawned agents. An explicit spawn effort takes precedence.

365 375 


671 681 

672# [tui.model_availability_nux]682# [tui.model_availability_nux]

673 683 

674# "gpt-6-sol" = 1684# "gpt-6.1-sol" = 1

675 685 

676# Enable or disable analytics for this machine. When unset, Codex uses its default behavior.686# Enable or disable analytics for this machine. When unset, Codex uses its default behavior.

677 687 


697 707 

698# "hide_gpt-5.1-codex-max_migration_prompt" = true708# "hide_gpt-5.1-codex-max_migration_prompt" = true

699 709 

700# model_migrations = { "gpt-5.4" = "gpt-6-sol" }710# model_migrations = { "gpt-5.4" = "gpt-6.1-sol" }

701 711 

702################################################################################712################################################################################

703 713 


1079 1089 

1080# For example, a CI profile could live at $CODEX_HOME/ci.config.toml:1090# For example, a CI profile could live at $CODEX_HOME/ci.config.toml:

1081 1091 

1082# model = "gpt-6-sol"1092# model = "gpt-6.1-sol"

1083 1093 

1084# approval_policy = "on-request"1094# approval_policy = "on-request"

1085 1095 

developers.md +22 −7

Details

64 href: "/codex/webmcp",64 href: "/codex/webmcp",

65 icon: "tools",65 icon: "tools",

66 },66 },

67 {

68 title: "Annotations Extensibility",

69 description:

70 "Customize website selection, context, and controls for browser annotations.",

71 href: "/codex/annotations-extensibility",

72 icon: "chat",

73 },

67 {74 {

68 title: "Hooks",75 title: "Hooks",

69 description: "Run custom commands when Codex emits lifecycle events.",76 description: "Run custom commands when Codex emits lifecycle events.",


89 href: "/codex/environments/local-environment",96 href: "/codex/environments/local-environment",

90 icon: "terminal",97 icon: "terminal",

91 },98 },

92 {

93 title: "Cloud environment",

94 description: "Delegate work to a configured cloud environment.",

95 href: "/codex/environments/cloud-environment",

96 icon: "storage",

97 },

98 {99 {

99 title: "Git worktrees",100 title: "Git worktrees",

100 description: "Isolate parallel changes in separate working trees.",101 description: "Isolate parallel changes in separate working trees.",


103 },104 },

104 ],105 ],

105 },106 },

107 {

108 title: "Codex Cloud",

109 description:

110 "Run coding tasks in the cloud with your project tools and service access.",

111 pages: [

112 {

113 title: "Cloud environments",

114 description:

115 "Create, configure, and share reusable setups for cloud tasks.",

116 href: "/codex/environments/cloud-environments",

117 icon: "storage",

118 },

119 ],

120 },

106 {121 {

107 title: "Build with Codex",122 title: "Build with Codex",

108 description: "Add Codex to products, systems, and automated workflows.",123 description: "Add Codex to products, systems, and automated workflows.",


154 {169 {

155 title: "Slack",170 title: "Slack",

156 description:171 description:

157 "Start Codex chats from external discussions and return results.",172 "Start requests with ChatGPT in Slack and delegate repository work to Codex Cloud.",

158 href: "/codex/third-party/slack",173 href: "/codex/third-party/slack",

159 icon: "chat",174 icon: "chat",

160 },175 },

dots.md +258 −0 created

Details

1# Meet dots

2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 

5<OFeatureCanvas>

6 

7<a id="introducing-o"></a>

8<a id="what-is-o"></a>

9 

10Your dot is an always-on agent that keeps work moving across your tools and projects. You can keep talking to it while it works, and it reaches out with results or decisions that need you.

11 

12Powered by GPT-6 Astra, your dot lives in the cloud and has its own computer and browser. You can reach it and it can keep working even when your computer is off. It can research, analyze data, prepare documents, and build software, using relevant context from past conversations and your preferences.

13 

14<a id="access-to-dots"></a>

15 

16**Dots are rolling out gradually to eligible accounts.** See [availability and access](#access) for plan, region, and workspace requirements.

17 

18<a id="meet-your-o"></a>

19 

20## Make it your own

21 

22Create your dot in the ChatGPT desktop app or a desktop browser. Setup offers app connections and, in the desktop app, access to your computer. Your dot introduces itself and uses the context available to it to suggest ways it can help. You can start talking to it while it gets to know your work.

23 

24Give your dot a name and choose its shape, color, eyes, glasses, and accessories. You can change these anytime.

25 

26Your dot starts with a handle such as @yourname-dot. Naming it updates the handle, for example, @tibo-alfred for a dot named Alfred.

27 

28<a id="make-it-yours"></a>

29 

30<a id="stay-connected"></a>

31 

32<a id="your-dot-wherever-you-are"></a>

33 

34## Message or call your dot

35 

36Continue talking to your dot in ChatGPT on desktop or in the mobile app when the supporting update is available. Create your dot on desktop first; mobile web is not supported.

37 

38 

39 

40> Illustration: An illustrative ChatGPT conversation starts on desktop and continues with the same dot in the mobile app: a venue comparison gains a budget constraint. Mobile use requires the supporting app update.

41 

42 

43 

44You can message your dot or call it to discuss work, change priorities, or make a decision. In ChatGPT, select the phone button in your dot’s conversation to start a call. You can also type messages while you’re talking. Work you’ve assigned can continue after the call ends.

45 

46You reach the same dot in ChatGPT, Slack, Teams, or a call. Changing where you talk to it doesn’t start a new dot or reset its memory. Messages stay in their respective channels, while your dot can use relevant context across them. Before sharing information from a private conversation with other people, your dot checks that you’ve allowed it.

47 

48Tell your dot where to send different kinds of updates. For example, ask it to keep routine progress in ChatGPT and bring decisions to you in Slack. Explain which changes need your attention, such as a deadline at risk.

49 

50<a id="choose-where-o-can-reach-you"></a>

51<a id="where-to-use-o"></a>

52 

53Open your dot's profile and select **Add** to connect an available contact method. See [Message your dot](https://learn.chatgpt.com/docs/dots/channels) for channel details.

54 

55In Slack, you can DM your dot or mention it in a channel you’ve added it to. By default, it responds to you; you can instruct it to engage with others. Existing permissions and safeguards still apply to what it shares and does. Tell it which channels and events to watch for. Adding it to a channel alone doesn’t start monitoring. You can also message your dot in Microsoft Teams. See [Slack and Teams](https://learn.chatgpt.com/docs/dots/channels#slack-and-teams).

56 

57<a id="how-o-works"></a>

58<a id="how-your-dot-works"></a>

59 

60## How dots work

61 

62Your dot works between conversations. It tracks progress, works out what needs to happen next, and follows through as things change. Once you’ve asked it to handle something, you can return with new information or priorities without restarting the work. Your dot brings back results and turns to you for decisions that need your judgment.

63 

64 

65 

66> Illustration: A dot explains how it follows up between conversations and asks for decisions.

67 

68 

69 

70Your dot can decide when to pause and wake up to continue work; you don’t need a fixed schedule for every follow-up. It can use background agents to work on several things in parallel while you keep talking to it. It also researches connected information to suggest useful next steps.

71 

72For example, if your dot is helping organize an offsite, it can update the headcount as people confirm and ask before sending a request for revised pricing.

73 

74<a id="context-that-carries-forward"></a>

75 

76### Memory and context

77 

78Your dot draws on the conversation, relevant ChatGPT memory, and its own saved notes about your preferences, decisions, and ongoing work. These notes carry forward across conversations and contact methods, so it can build on what you’ve discussed as your work changes.

79 

80It can also research connected information and keep private notes to identify useful next steps. That research is read-only; follow-up actions require the applicable permissions. See [Tasks and memory](https://learn.chatgpt.com/docs/dots/tasks-and-memory).

81 

82<a id="where-the-work-happens"></a>

83 

84### Its computer and yours

85 

86Your dot has its own computer and browser in the cloud for research, files, and running software. Cloud work can continue while your devices are off. When you need to inspect the browser or do a step yourself, open its computer and select **Take over**. Select **Return control** when you’re ready for your dot to continue. See [computers and apps](https://learn.chatgpt.com/docs/dots/computers-and-apps) for connection details.

87 

88<DotProductPreview

89 client:visible

90 variant="computer"

91 copy={{

92 label:

93 "Example of a dot's cloud browser displaying the California DMV vehicle registration renewal page, with the Take over control.",

94 title: "{name}'s computer",

95 domain:

96 "dmv.ca.gov/portal/vehicle-registration/vehicle-registration-renewal/",

97 websiteUrl:

98 "https://www.dmv.ca.gov/portal/vehicle-registration/vehicle-registration-renewal/",

99 websiteImageSrc: "/images/codex/dots/california-dmv-registration.jpg",

100 websiteImageAlt:

101 "California DMV website showing Vehicle Registration Online Renewal and the Before You Begin checklist.",

102 status: "{name} has control",

103 actions: ["Take over"],

104 }}

105/>

106 

107Connect your computer once through your dot’s profile to make its local files, code, and apps available for your dot’s work. You can connect only one personal computer at a time. The connection stays in place between tasks. Your computer must be online with the ChatGPT app open for your dot to use it. This permission is separate from connecting your computer to Codex or enabling Work Sync.

108 

109Your dot can use supported [plugins](https://learn.chatgpt.com/docs/plugins) installed and enabled for your account, with their connected accounts and existing permissions. For example, use Gmail to find relevant email, Google Drive to work with documents, and GitHub to investigate code and prepare changes. Each plugin must be connected and permitted to perform the actions you request. Local skills require a connected computer. Connecting a messaging channel doesn’t automatically grant access to your apps or computer.

110 

111<a id="connections"></a>

112 

113Each connection serves a different purpose:

114 

115| Connection | What it enables |

116| ----------------------- | ---------------------------------------------------------------------- |

117| Messaging channel | Talk to your dot and receive updates there. |

118| Connected app or plugin | Use that service's information and tools within its permissions. |

119| Local computer | Work with that computer's files, apps, and tasks while it's available. |

120 

121Connecting a messaging channel doesn't also connect your inbox, other apps,

122or local computer. Your dot's cloud computer is separate from your devices

123and their signed-in browser sessions.

124 

125### Signing in to websites

126 

127Your dot uses the same private browser sign-in flow as ChatGPT Work. When a website needs a login, it can send you a sign-in request. Open the request to enter your credentials and any requested verification in a private form. Your credentials go to the browser outside the conversation. You can also select **Take over to sign in** to complete the steps on the website yourself, then select **Done** when you’ve finished.

128 

129<DotWebsiteSignIn

130 copy={{

131 label:

132 "Two illustrative views of website sign-in: Alfred requests access to a saved venue proposal, then a private sign-in form offers optional saving and browser takeover.",

133 requestStep: "1. Open the sign-in request",

134 formStep: "2. Sign in privately",

135 name: "Alfred",

136 request:

137 "Sign in to your venue account so I can review the saved proposal.",

138 domain: "venues.example.com",

139 title: "Sign in to venues.example.com",

140 description: "Enter your login details to continue.",

141 help: "Learn more",

142 fields: [{ label: "Email address" }, { label: "Password", password: true }],

143 saveLabel: "Save to Passwords",

144 takeoverLabel: "Take over to sign in",

145 skipLabel: "Not now",

146 submitLabel: "Sign in",

147 }}

148/>

149 

150The cloud browser has its own sessions, separate from the browser on your computer. Once you sign in, your dot can use that session for later work until you sign out or the website requires another login. When available, **Save to Passwords** lets you optionally save the login. Using a saved login for a new sign-in requires your confirmation. See [website sign-in](https://learn.chatgpt.com/docs/dots/computers-and-apps#sign-in-to-a-website).

151 

152Some websites block cloud browsers or require extra verification. You can ask your dot to try a connected computer instead. This may create a separate task on that computer; it doesn’t transfer the cloud browser’s session.

153 

154### Tasks and conversations

155 

156Your dot can use background agents, start new cloud threads, and create Work or Codex tasks on a connected computer. It can also continue existing local Codex tasks. For cloud coding work that needs your repository and setup, it can use a Codex cloud environment you’ve created.

157 

158Cloud threads appear as separate conversations in the desktop, web, and mobile apps, where you can review results and give further instructions. Local Codex tasks appear on the connected computer. You can keep talking to your dot while these tasks run.

159 

160In the desktop app, open your dot’s profile and select **Activity**, then open a task to inspect its progress, results, or requests for input. Your dot can check results and send follow-up instructions to tasks it created. See [Tasks and memory](https://learn.chatgpt.com/docs/dots/tasks-and-memory#assigned-work) for where tasks run and how to continue them.

161 

162Connecting your computer lets your dot work with its tasks and files. It doesn't give your dot access to every conversation in every app.

163 

164### Permissions and approvals

165 

166Built-in safeguards, your existing ChatGPT app permissions, and automatic approval checks apply from the start. Before an action affects your accounts or shares information, review determines whether your dot can proceed, needs your approval, or must hand a step over to you.

167 

168You can add instructions for how you want your dot to work, such as asking it to show you drafts before sending them. Custom rules are optional controls for more specific ongoing boundaries. Neither instructions nor custom rules override built-in safety requirements. See [Control your dot](https://learn.chatgpt.com/docs/dots/controls).

169 

170<a id="what-o-can-do"></a>

171<a id="things-to-try-with-o"></a>

172<a id="try-more-with-o"></a>

173<a id="what-could-you-do-with-yours"></a>

174 

175## Work with your dot

176 

177Start with work you regularly need to check or update. Describe the responsibility and share the source material it needs, then review its work and explain what needs to change.

178 

179<a id="work-with-o"></a>

180<a id="start-working-together"></a>

181<a id="give-o-your-first-task"></a>

182<a id="an-event-youre-organizing"></a>

183<a id="a-project-youre-working-on"></a>

184 

185### Give it a responsibility

186 

187For an offsite, share the plan and venue emails, then ask your dot to identify upcoming decisions and deadlines.

188 

189 

190 

191**An offsite to organize:**

192 

193```text

194Help me keep our offsite on track. Read the plan and venue emails I shared, and make a list of decisions, deadlines, and things we're waiting on. Focus on anything that affects the budget or needs an answer this week. Draft suggested replies for my review, but don't send them.

195```

196 

197Review the first result and correct any missing details before expanding the responsibility.

198 

199<a id="keep-working-together"></a>

200<a id="things-you-want-to-follow-through-on"></a>

201 

202### Choose when and where to hear from it

203 

204Tell your dot what to keep current and which changes deserve your attention. It can decide when to follow up. If you want an update at a specific time, include a time zone and a duration or end date, and ask it to confirm the schedule.

205 

206 

207 

208**A scheduled check-in:**

209 

210```text

211Check the connected planning channel each weekday at 9 AM Central for the next four weeks. Update our offsite list when something changes. Message me in ChatGPT if a deadline is at risk or you need a decision from me. Keep routine updates in the checklist. Confirm the schedule.

212```

213 

214### Review and redirect

215 

216When priorities change, tell your dot what to change in the work already underway.

217 

218Ask your dot what it's working on and what needs your input. In the desktop app, open its profile and use **Activity** to review delegated tasks. Ask it to list recurring work and confirm what's scheduled.

219 

220Use **Pause** to stop your dot’s current main task. Stop delegated tasks in **Activity** and cancel recurring tasks in **Scheduled** separately. Ending a voice call doesn’t necessarily stop assigned work. See [Stop work](https://learn.chatgpt.com/docs/dots/controls#stop-work).

221 

222Review important results and their sources. Your dot can make mistakes, and stopping a task doesn't undo actions it has already completed.

223 

224### Ways to work with your dot

225 

226Give your dot access to the relevant sources and tell it what to keep track of. For example:

227 

228- **Keep a sales proposal current.** Share the proposal and customer requirements. As the requested seat count or terms change, have your dot update the figures, track outstanding security and technical reviews, and bring you the next decisions.

229- **Prepare content from each interview.** Share the interview material and photos. Ask your dot to draft a caption, show notes, and clip ideas for review. You can refine the title or tone from your phone before publishing.

230- **Keep launch materials aligned with the product.** Connect the launch channel and share the brief, deck, and approved visuals. Have your dot flag product changes that affect the campaign and prepare revised copy, slides, and speaker notes for your review.

231- **Update a study as results arrive.** Share the study and new measurements. Have your dot update the comparison chart, explain where repeat results differ from the first batch, and draft a findings summary and proposed next tests for review.

232- **Follow up on software feedback.** Connect the feedback source and code project. Ask your dot to investigate reported problems, such as a missing item in a sidebar, and prepare a fix for code review before merging.

233 

234## Access

235 

236**For workspace admins:** See [Set up dots for work](https://learn.chatgpt.com/docs/enterprise/o-admin-guide) for workspace setup, permissions, and security and governance guidance.

237 

238Dots are rolling out gradually. You may not see dots immediately, even if your plan is eligible.

239 

240- **Pro 100, Pro 200, and Pro 500:** For users over 18 outside the European Economic Area, United Kingdom, and Switzerland.

241- **Business Premium:** Rolling out worldwide.

242- **Enterprise:** Rolling out worldwide. Dots are off by default and must be enabled by a workspace administrator.

243 

244Conversations with your dot don’t count toward your ChatGPT usage limits. Tasks your dot starts or manages in Work or Codex count toward those products’ usage limits as usual. Your plan includes an allowance for deeper work, with extended limits for the first month after launch.

245 

246Create your dot in the desktop app or in ChatGPT on a desktop browser. After setup, use the same dot in the mobile app when the supporting update is available. Mobile web is not supported.

247 

248## Reference

249 

250| Guide | Covers |

251| ---------------------------------------------------- | ---------------------------------------------------------------- |

252| [Getting started](https://learn.chatgpt.com/docs/dots/getting-started) | Setup, your first conversation, and assigning work. |

253| [Messaging](https://learn.chatgpt.com/docs/dots/channels) | ChatGPT, calls, Slack, and Teams. |

254| [Tasks and memory](https://learn.chatgpt.com/docs/dots/tasks-and-memory) | Assigned work, recurring tasks, context, and proactive research. |

255| [Computers and apps](https://learn.chatgpt.com/docs/dots/computers-and-apps) | Cloud work, local access, plugins, and website sign-in. |

256| [Controls](https://learn.chatgpt.com/docs/dots/controls) | Review activity, manage permissions, and stop work. |

257 

258</OFeatureCanvas>

dots/channels.md +29 −0 created

Details

1# Message your dot

2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 

5You reach the same dot through each connected contact method. Changing channels doesn’t reset its memory. Slack and Teams conversations show the messages exchanged there; they don’t mirror every message from other channels. Your dot can use relevant context across those conversations. Before sharing information from a private conversation with other people, it checks that you’ve allowed it. See [Context and memory](https://learn.chatgpt.com/docs/dots/tasks-and-memory#context-and-memory).

6 

7Open your dot's profile and select **Add** to see and connect the contact methods available to you. Connect apps and your computer separately to make them available for your dot’s work.

8 

9## ChatGPT and voice

10 

11Message or call your dot in ChatGPT on desktop web or in the desktop app. Create your dot there first, then use it in the mobile app when the supporting update is available. Mobile web is not supported.

12 

13To call your dot, open its conversation and select the phone button. In the desktop app, you can also select **Call** in its profile. Talk through a request, clarify a decision, or ask for a progress update. You can type messages while you’re talking, and your dot can also message you with progress or a question. Ending a call ends the voice conversation; work you've assigned can continue. Calls initiated by your dot are planned for after launch.

14 

15<a id="slack"></a>

16 

17## Slack and Teams

18 

19You can message your dot in Slack and Microsoft Teams. Connect the contact method in your dot’s profile. In Slack, you can send a direct message or add your dot to a channel and mention it in a thread.

20 

21By default, your dot responds to you in Slack. You can instruct it to engage with others. Existing permissions and safeguards still apply to what it shares and does. Your dot can message you privately to ask what you're comfortable sharing before it replies in a channel.

22 

23Tell your dot where you want different updates. For example, keep routine progress in ChatGPT and ask it to bring decisions to you in Slack.

24 

25For monitoring, specify which channels to check, what to watch for, and when to notify you. Ask your dot to confirm the recurring task. Adding it to a channel doesn't establish a monitoring schedule.

26 

27## Texting

28 

29Texting is coming soon.

dots/computers-and-apps.md +105 −0 created

Details

1# Connect computers and apps to your dot

2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 

5Your dot lives in the cloud and has its own computer and browser. It stays

6available when your computer is off. Connecting your own computer and apps

7gives it access to more of your work. These connections are separate from

8the [channels you use to message your dot](https://learn.chatgpt.com/docs/dots/channels). You can send

9a request from your phone while your dot works in the cloud or coordinates

10work on a connected computer.

11 

12## Use the cloud computer

13 

14Open your dot's profile and look under **Computers** to inspect its cloud

15computer. You can also select **Open computer** when your dot offers a browser

16handoff.

17 

18Opening the computer doesn't give you control. Select **Take over** to use its

19mouse and keyboard, then **Return control** when your dot can continue.

20 

21Use the cloud computer for research, documents, data analysis, or software

22work. Cloud work can continue while your devices are off, and the computer can

23keep its state between periods of use. It has its own files, software, and

24browser sessions. Signing in to a website on your computer doesn't sign your

25dot in to that website.

26 

27## Cloud threads

28 

29Your dot can start separate threads for cloud work. These appear in your desktop, web, and mobile apps, where you can review results and give further instructions while your dot continues coordinating. For coding work, it can use a Codex cloud environment you’ve set up with the repository and configuration it needs.

30 

31Your dot can work on several things in parallel, and you can keep talking to it while those threads run. See [Tasks and memory](https://learn.chatgpt.com/docs/dots/tasks-and-memory#assigned-work).

32 

33## Sign in to a website

34 

35Your dot uses the same private sign-in flow as ChatGPT Work. When a website

36needs a login, your dot can send a request with a private form. Enter your

37credentials there and complete any verification the website requires, such as

38a verification code. The form sends this information to the remote browser

39outside your conversation.

40 

41You can also choose to sign in on the website instead. This opens your dot's

42browser in takeover mode so you can complete the steps yourself. Return control

43when you're ready for your dot to continue.

44 

45### Staying signed in

46 

47A website session can remain available for later work until you sign out or

48the website expires it. Your dot's cloud browser has its own sessions; it doesn't

49inherit logins from your personal browser. Some websites block cloud browsers

50or require further verification.

51 

52### Saving and reusing a login

53 

54When offered, **Save to Passwords** lets you save a login for future

55sign-ins. Saving is optional. If a matching saved login is available for a new

56sign-in request, you can confirm that you want to use it or enter another account.

57 

58A saved login and an active website session are different. Your dot can continue

59using a valid session without signing in again. Reusing a saved login to sign in

60requires your confirmation.

61 

62## Connect your computer

63 

64Connect your computer once to make its local files, code, and apps available

65for your dot’s work:

66 

671. Open your dot's profile in the ChatGPT app on that computer.

682. Under **Computers**, find **Your computer** and select **Allow access**.

693. Review the confirmation and select **Allow access** to connect it.

70 

71You can connect only one personal computer at a time. Your dot’s cloud computer stays connected. Access to your computer applies

72wherever you message the same dot, including from your phone.

73 

74Your dot can create local Work or Codex tasks and continue existing local Codex

75tasks. A task can be managed

76in the cloud while using files and tools on your connected computer. Open the

77task to inspect where the work is happening or give instructions directly. See

78[Tasks and memory](https://learn.chatgpt.com/docs/dots/tasks-and-memory#assigned-work) for task types

79and connection requirements.

80 

81If a website blocks the cloud browser, ask your dot to try your connected

82computer. This may create a separate local task. It doesn't transfer the cloud

83browser's session or guarantee that a particular local browser is supported.

84 

85The connection persists between tasks. Keep your computer online and the

86ChatGPT app open while your dot uses it.

87An **Offline** status means the computer is unavailable; it doesn't revoke

88the connection. Select **Revoke access** to remove access. Your dot's

89local-computer permission is separate from connecting a computer to Codex or

90enabling Work Sync. Neither connection alone gives your dot access.

91 

92## Connect apps

93 

94Your dot can use supported [plugins](https://learn.chatgpt.com/docs/plugins) installed and enabled for your account. Access depends on the plugin’s connected account, permissions, and the environment where the work runs. Local skills require a connected computer.

95 

96For example, connect Gmail to find relevant email, Google Drive to read and update documents, or GitHub to investigate an issue and prepare a pull request. Install and connect each plugin you want your dot to use.

97 

98Review

99the connected account and its allowed actions. Your existing ChatGPT app

100permissions apply to your dot. For example, you can allow it to read email

101without allowing it to send email. If a connection expires, open the request

102to reconnect it before continuing.

103 

104Adding a contact method doesn't grant access to your apps or computer. For

105example, messaging your dot in Slack doesn't connect your inbox.

dots/controls.md +105 −0 created

Details

1# Control your dot

2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 

5Built-in safeguards, existing app permissions, and automatic approval checks

6apply from the start. You can review ongoing work, add instructions, or set

7optional custom rules.

8 

9## Review work

10 

11In the desktop app, open your dot's profile and select **Activity**. Select a

12task to review its progress, files, and results, including work happening in the

13background. If it's waiting for a decision, app connection, sign-in, or approval,

14open the request and respond to continue. You can change direction as work

15continues.

16 

17Open **Scheduled** to review your dot's scheduled tasks. Check the task's

18instructions, timing, and destination. See

19[tasks and memory](https://learn.chatgpt.com/docs/dots/tasks-and-memory) for recurring work.

20 

21## How action review works

22 

23Before your dot takes an action that could affect your accounts or share

24information, an automatic review checks it against your instructions,

25permissions, custom rules, and built-in safety requirements. The review

26determines whether the action can proceed, needs your approval, or includes a

27step you must do yourself. For example, you must change a password yourself.

28 

29Give ongoing instructions a clear scope: who can take part, what should happen,

30and when. Asking your dot to draft replies doesn't give it permission to send

31them. A specific instruction can cover future actions within that scope; an

32action outside it needs another decision.

33 

34Your dot can also research information from apps you've connected to look for

35ways to help. The tools it uses for that research can't send messages, change

36app content, or control your browser or computer. Any follow-up action is

37subject to the same permissions and safety requirements.

38 

39## Set custom rules

40 

41Custom rules are optional controls for specific ongoing boundaries. Start with

42clear instructions in your conversation; you don’t need to create a rule for

43every approval.

44 

45After setting up your dot, open **Settings** > **Personalization** and select

46**Custom rules** under **Permissions**.

47 

48Select **Add**, describe the action, choose how your dot should handle it,

49and select **Add rule**. The choices are:

50 

51| Rule | Intended behavior |

52| --------------------------- | ---------------------------------------------------------------------------------------- |

53| Take action without asking | Take the specified action without asking for approval. |

54| Take action when you say so | Proceed when you explicitly request the action; otherwise ask immediately before acting. |

55| Ask before taking action | Ask for approval before taking the specified action. |

56| Hand off to you | Ask you to take the action instead. |

57 

58For example, you could choose **Ask before taking action** for sending messages

59to customers, or **Hand off to you** for deleting shared project files. Use your

60conversation for preferences such as writing style or how you like updates;

61custom rules control when your dot can take an action.

62 

63Saved custom rules apply to your dot in the same account. They can give your

64dot permission for particular actions, require it to check with you, or prevent

65it from taking an action. They are instructions your dot tries to follow, and

66it can make mistakes. They don't grant access to an app or computer, override

67built-in safety requirements, or remove required confirmations such as approval

68to use a saved login.

69 

70Use a rule's menu to edit or delete it. Select **Open Plugins** to review

71**Plugin permissions**, which control app actions separately from custom rules.

72If your workspace disables custom rules, you can't edit saved rules, and they

73don't apply. See [Configure dots permissions](#for-workspace-admins).

74 

75<a id="for-workspace-admins"></a>

76 

77**For workspace admins:** See [Set up dots for work](https://learn.chatgpt.com/docs/enterprise/o-admin-guide) for workspace permissions, setup, and security and governance guidance.

78 

79## Manage data settings

80 

81Your ChatGPT data controls also apply to eligible conversations with your dot

82and the work it carries out. OpenAI doesn't train models directly on proactive

83research or its private notes. If information from that research becomes part

84of an eligible conversation or task, your data settings apply. See [data controls in ChatGPT](https://help.openai.com/en/articles/7730893-data-controls-in-chatgpt).

85 

86## Stop work

87 

88Pausing your dot, stopping a delegated task, and canceling a schedule have

89different effects:

90 

91- **Pause** stops your dot's current main task. It doesn't stop every delegated

92 task or cancel future scheduled runs.

93- Open a delegated task in **Activity** to inspect and stop that task.

94- Open **Scheduled** to disable or delete the recurring task you want to end.

95 

96Use **Resume** to continue a paused dot. Stopping work doesn't undo completed

97actions. Review active tasks and schedules separately.

98 

99<a id="reset-your-dot"></a>

100 

101## Delete your dot

102 

103Use **Delete** to delete your dot. Read the confirmation for how deletion handles conversations, memories, and scheduled tasks. Save any results you need before confirming; the action cannot be undone.

104 

105Deleting your dot doesn’t undo changes already made in connected apps or recall messages already delivered to other people.

dots/getting-started.md +58 −0 created

Details

1# Get started with your dot

2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 

5Create your dot in the desktop app or in ChatGPT on a desktop browser. You can give it more than one ongoing responsibility.

6 

7## Create your dot

8 

91. Open dots in ChatGPT and follow the introduction.

102. Connect apps such as email, calendar, and files, or skip this step and add them later.

113. In the desktop app, choose whether to connect your computer.

12 

13Your dot starts with a default appearance and name. You can personalize its

14name, shape, color, eyes, glasses, and accessories after setup.

15 

16After setup, you can open the same dot in the ChatGPT mobile app when the supporting update is available. Mobile web is not supported. See [access and preview limits](https://learn.chatgpt.com/docs/dots#access).

17 

18## Connect tools and contact methods

19 

20Connect what your dot needs:

21 

22- **Apps:** Connect services through [plugins](https://learn.chatgpt.com/docs/plugins) so your dot can use their information and tools.

23- **Messaging:** Open your dot's profile and select **Add** to connect a contact method, such as Slack. See [Message your dot](https://learn.chatgpt.com/docs/dots/channels).

24- **Your computer:** Connect it once from your dot’s profile to make local files, code, and apps available for future work. Keep it online with the ChatGPT app open while your dot uses it.

25 

26These connections are separate. Connecting a messaging channel doesn't automatically grant access to an inbox, other apps, or your computer. Your dot lives in the cloud and has its own computer and browser for work that doesn't need your device.

27 

28## Your first conversation

29 

30Your dot introduces itself and uses the context and connected apps available

31to it to learn about your work and suggest where it can help. You can start

32talking to it while it gathers that context. If it needs more information or

33access, it can ask. Its suggestions depend on the information available to it.

34 

35It starts with relevant ChatGPT memory and keeps notes as you work together.

36See [Tasks and memory](https://learn.chatgpt.com/docs/dots/tasks-and-memory#context-and-memory).

37 

38<a id="give-it-a-first-task"></a>

39 

40## Start working together

41 

42Start with work you want your dot to keep track of, rather than treating each conversation as a fresh request. Describe what matters, share the relevant sources, and explain which decisions need your input. Built-in safeguards and approval checks apply alongside your existing app permissions. For example:

43 

44> Help me keep our offsite on track. Use the plan and venue emails I shared to keep track of decisions, deadlines, and unanswered questions. Let me know when something needs my attention, and draft suggested replies for my review.

45 

46Review the result and correct missing details. Your dot can delegate parts of a request to ChatGPT Work or Codex. In the desktop app, open your dot’s profile and select [Activity](https://learn.chatgpt.com/docs/dots/controls#review-work) to inspect delegated work and requests for input.

47 

48<a id="set-up-a-follow-up"></a>

49 

50## Keep the work moving

51 

52Your dot can decide when to follow up and use background agents to work on several things at once. Keep talking to it to add context, change priorities, or make a decision. You don’t need to restart the work in a new conversation.

53 

54Tell it where to send updates and when to interrupt you. You can also request a fixed schedule when the timing matters. Include the time zone and duration:

55 

56> Check the connected planning channel each weekday at 9 AM Central for the next four weeks. Update my checklist when a deadline changes. If a deadline is at risk, message me in ChatGPT and draft a reminder for my review. Confirm the schedule.

57 

58Where a connected source supports it, you can also ask your dot to act when a specified event occurs, such as when a new bug report appears in a Slack channel. Ask it to confirm what it set up. You can revise a responsibility or cancel a recurring task later. Ending a conversation or voice call doesn't necessarily stop assigned work.

dots/tasks-and-memory.md +138 −0 created

Details

1# Tasks and memory

2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 

5Your dot can keep track of more than one responsibility at a time. You can switch

6tasks, add a detail, or change priorities in the same conversation. Describe

7the result you need and the sources it should use. Built-in safeguards and app

8permissions apply automatically; you can add more specific instructions.

9 

10 

11 

12> Illustration: A dot conversation shows two task links, a follow-up instruction, and a tested draft pull request ready for review. Activity and Outputs appear alongside the conversation.

13 

14 

15 

16## Assigned work

17 

18Your dot keeps working between conversations and follows through as things change. It can decide when to pause and wake up to continue, so you don’t need to put every follow-up on a fixed schedule. You can also specify a time or a supported event that should trigger work. Tell it which results deserve an update and which decisions need your input.

19 

20Your dot can divide work among background agents that run in parallel and report back to it. You can keep talking to your dot while they work. It can also create separate, visible threads and send follow-up instructions.

21 

22New cloud threads appear in your desktop, web, and mobile apps, where you can open them and continue steering the work. Local Codex threads are available on the connected computer. For coding work that needs a particular repository and setup, your dot can use a Codex cloud environment you’ve created.

23 

24| Task | How your dot can work with it |

25| ---------------------------- | ------------------------------------------------------------------------------------------------------- |

26| New local Work or Codex task | Create a task on a computer connected to your dot. Keep that computer online with the ChatGPT app open. |

27| Existing local Codex task | Continue the task on a connected computer. Identify the task and what you want to change. |

28| New cloud coding task | Create a task in a Codex cloud environment you have already set up. Your computer can be offline. |

29| Task your dot created | Check results and send follow-up instructions using the task's original computer or cloud environment. |

30 

31For cloud coding work, create the environment in Codex first, including its

32repository and setup configuration. Changing your dot's selected computer

33doesn't move an existing task to that computer.

34 

35In the desktop app, open your dot's profile, select **Activity**, and open a

36task to inspect its progress, files, results, or requests for input. You can

37also give instructions directly. Your dot can continue coordinating the task

38when you step away.

39 

40A new task receives instructions and context from your dot for that work. It

41has its own conversation; it doesn't automatically receive every conversation

42you've had with your dot. Connecting a computer doesn't grant access to every

43existing ChatGPT or Codex conversation.

44 

45Review the output and any reported errors even after a run completes. A

46completed run doesn't by itself confirm that the requested result was achieved

47or delivered. See [Review work](https://learn.chatgpt.com/docs/dots/controls#review-work).

48 

49## Recurring tasks

50 

51Work that repeats at fixed times needs a saved schedule. Specify:

52 

53- What your dot should check or update.

54- When it should run, including the time zone and any end date.

55- Which changes deserve a notification.

56- Where to deliver results.

57 

58For example:

59 

60> Check the connected planning channel each weekday at 9 AM Pacific for the

61> next four weeks. Update the project checklist when a deadline changes.

62> Message me in ChatGPT only if a deadline is at risk or you need a decision.

63> Confirm the schedule.

64 

65Ask your dot to confirm what it saved. Use **Scheduled** to review recurring

66work, or ask your dot to list, change, or cancel its scheduled tasks.

67 

68Stopping active work and canceling a schedule are separate actions. See

69[Controls](https://learn.chatgpt.com/docs/dots/controls#stop-work).

70 

71### Event monitoring

72 

73When a connected service supports event monitoring, you can instead ask your

74dot to respond to a specific event. For example, ask it to investigate new

75bug reports in a connected Slack channel and prepare fixes for your review.

76Tell it which events to watch for and when to notify you. Ask it to confirm

77which events it can follow. Connecting Slack or another source alone doesn't

78create a monitoring task.

79 

80## Context and memory

81 

82Your dot uses the conversation it is working in, relevant ChatGPT memory, and

83its own saved notes to keep track of your preferences and ongoing responsibilities.

84These serve different purposes.

85 

86### Conversation context

87 

88Context is the information available to your dot while it responds or works:

89messages, instructions, relevant source material, and results from its tools

90or delegated work. It can use this information to connect a new request to work

91already underway.

92 

93The context available for an interaction is a selection of this information.

94Calls use selected conversation context, which can differ from the information

95available to a task working in the background.

96 

97### Persistent memory

98 

99Your dot starts with relevant context from ChatGPT memory. It also keeps its own

100notes about preferences, decisions, and ongoing work so it can use them in later

101conversations. These notes are separate from ChatGPT's saved memory and are not

102a complete transcript of everything you've said.

103 

104As you work together, your dot can update these notes to reflect new decisions

105and changing priorities. Changing a ChatGPT saved-memory setting doesn't

106necessarily change the notes your dot has already made.

107 

108### Across messaging channels

109 

110ChatGPT, Slack, and Teams are ways to reach the same dot. Switching

111between them doesn't create a separate dot or reset its saved notes. Information

112you share through one contact method can inform its work and replies through

113another.

114 

115The visible conversations remain distinct. A message in ChatGPT isn't automatically

116copied into your Slack conversation. Your dot's ability to use information also

117doesn't grant permission to disclose it to another audience. For example, it can

118use a deadline you shared privately to help you prepare an update, but sharing

119private details in a team channel still requires permission.

120 

121This continuity applies to conversations with your dot. Connecting a computer

122doesn't make every conversation in every app available to it. See

123[Message your dot](https://learn.chatgpt.com/docs/dots/channels) for contact methods and availability.

124 

125## Proactive research

126 

127Alongside assigned work, your dot can research information it has permission

128to read and keep private notes about useful findings. This background research

129can connect new information to earlier work. For example, your dot might flag

130that a release decision conflicts with a draft you shared last week.

131 

132Proactive research itself doesn't send messages, change connected apps, or

133control a browser or computer. The background agents report their findings to

134your dot, which can bring you a suggestion or question. Any follow-up action

135is subject to the permissions and approvals that apply to that work.

136 

137Assigned recurring tasks can include actions you've authorized. Their

138permissions and schedule are separate from proactive research.

Details

28runtime behavior for covered capabilities in those clients. This guide names28runtime behavior for covered capabilities in those clients. This guide names

29the individual surface when behavior or availability differs.29the individual surface when behavior or availability differs.

30 30 

31Start with the canonical map in31For an overview of access controls, see

32[Roles and workspace permissions](https://learn.chatgpt.com/docs/enterprise/roles-and-workspace-permissions).32[Roles and workspace permissions](https://learn.chatgpt.com/docs/enterprise/roles-and-workspace-permissions).

33Use Help Center guidance for current ChatGPT workspace procedures and the33Use Help Center guidance for current ChatGPT workspace procedures and the

34linked developer documentation for local and hosted runtime behavior.34linked developer documentation for local and hosted runtime behavior.


79- [User lifecycle management](https://learn.chatgpt.com/docs/enterprise/user-lifecycle)79- [User lifecycle management](https://learn.chatgpt.com/docs/enterprise/user-lifecycle)

80- [Authentication](https://learn.chatgpt.com/docs/auth)80- [Authentication](https://learn.chatgpt.com/docs/auth)

81 81 

82Test sign-in and feature access with a representative member before expanding82Test sign-in and feature access with a member who has the intended permissions. Workspace access doesn't grant repository, file, or action access

83the rollout. Workspace access doesn't grant repository, file, or action access

84in a connected service.83in a connected service.

85 84 

85<a id="set-up-work-sync"></a>

86 

87 

88 

89 

90## Set up Local computer access with Work Cloud

91 

92If your rollout includes local computer access for Work or dots, review policies in Agent Security before rollout. Policy migration and feature access are separate changes; the confirmation flow does not require policy creation to enable access. Supported Global policy governs cloud orchestration when managed policy is enabled. Local execution requirements and device controls govern the connected computer. Work cloud containers and dots cloud computers use their own execution configuration and requirements. Follow [Local computer access for Work Cloud and dots](https://learn.chatgpt.com/docs/enterprise/cloud-local-access) for separate setup and eligibility requirements.

93 

94Use the policy API to manage Global settings. To manage Local or Codex Cloud settings, use the Agent Security UI. Existing Global API workflows remain available after migration. Test your scripts and Terraform integrations, and confirm that policy assignments and ordering are unchanged.

95 

96Check compatibility before enabling sync:

97 

98Network policy. Where environment overrides are available, test the `experimental_network` exceptions documented in [Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration). A global restriction can remain in force despite an environment allow.

99 

100- **Enterprise hooks.** Where enabled for your workspace, Local computer access with Work Cloud supports admin-defined MCP hooks that run on the cloud coordinator (orchestrator) for supported lifecycle and tool events. Command hooks and hooks from local configuration or plugins are not supported with cloud orchestration, even when tools execute locally.

101 

102- **Unsupported hooks.** Command hooks and hooks from local configuration or plugins are not supported with cloud orchestration, even when tools execute locally. When both orchestration and execution are local, existing supported hooks continue to work in local-only Work and Codex threads. Admins can still configure supported managed hooks in Agent Security for those workflows.

103 

104- **Auditing.** Before relying on these hooks, test the callback connection, confirm the events it receives, and check how failures affect the task. MCP hooks do not provide a complete Compliance API audit trail.

105 

106- Data requirements. Local computer access with Work Cloud does not provide strict zero data retention. Data residency and inference residency cover only eligible content and supported workloads, regions, and configurations. Enterprise Key Management (EKM) covers supported stored content in eligible workspaces. Work is not supported with UAE inference residency. If `enforce_residency` is enabled in any cloud policy, **Allow local computer access** is disabled for both Work and dots. This safeguard does not configure workspace residency or, by itself, disable Work Cloud or dots. If your organization requires ZDR, do not enable this feature.

107 

108As a workspace owner, review Work permissions for the intended users or groups. Enable Work Cloud, then turn on **Allow local computer access**. Use supported role assignments to grant access. See [Roles and workspace permissions](https://learn.chatgpt.com/docs/enterprise/roles-and-workspace-permissions).

109 

86## Step 3: Configure local runtime requirements110## Step 3: Configure local runtime requirements

87 111 

88Local requirements constrain runtime behavior when a user starts a supported112Local requirements constrain runtime behavior when a user starts a supported


138 162 

139## Step 5: Configure Codex cloud163## Step 5: Configure Codex cloud

140 164 

141Codex cloud uses hosted environments and connected source repositories. Plan165Codex cloud uses hosted environments and connected source repositories.

142each boundary:166 

167Codex Cloud is off by default for Enterprise workspaces. Existing **Use Codex

168in the cloud** settings carry forward from Codex Cloud (Legacy): workspaces that

169already enabled Cloud retain access, and those with Cloud disabled remain off

170until an admin enables it. Access remains subject to rollout and workspace

171restrictions.

143 172 

1441. Grant the intended audience Codex cloud access through supported workspace173Plan each boundary:

145 controls.174 

1751. Grant the intended audience **Use Codex in the cloud**. Separately grant

176 **Manage workspace environments** to the people who create and edit

177 workspace-shared environments. See

178 [workspace role guidance](https://learn.chatgpt.com/docs/enterprise/roles-and-workspace-permissions#review-codex-cloud-access-and-environment-administration).

1462. Install and configure the supported source-system integration.1792. Install and configure the supported source-system integration.

1473. Limit repository access in the source system to the repositories each1803. Limit repository access in the source system to the repositories each

148 audience needs.181 audience needs.

1494. Configure cloud environments, secrets, and internet access for those1824. Configure cloud environments, secrets, internet access, and supported

150 repositories.183 cloud-managed requirements for those repositories.

1515. Configure optional hosted workflows such as code review.1845. Configure optional hosted workflows such as code review.

1526. Test with a representative user who has the intended workspace and1856. Test task access with a representative member and environment management with

153 repository permissions.186 the designated administrator. Verify each person's workspace, environment,

187 and repository permissions.

188 

189Cloud environments don't inherit local device policy, MDM settings, or local

190network access. Review supported cloud-managed requirements separately from the

191requirements installed on a user's computer. See

192[Connect to services](https://learn.chatgpt.com/docs/environments/cloud-environments#connect-to-services)

193for destination access and [Agent Security](https://learn.chatgpt.com/docs/environments/cloud-environments#agent-security)

194for how workspace requirements constrain cloud environments.

154 195 

155Codex cloud respects the repository permissions and protections exposed by the196Codex cloud respects the repository permissions and protections exposed by the

156connected source system. Workspace access doesn't bypass those controls. See197connected source system. Workspace access doesn't bypass those controls. See

157[Cloud environments](https://learn.chatgpt.com/docs/environments/cloud-environment),198[Cloud environments](https://learn.chatgpt.com/docs/environments/cloud-environments) for setup and

158[GitHub integration](https://learn.chatgpt.com/docs/third-party/github), and199runtime guidance.

159[Agent approvals and security](https://learn.chatgpt.com/docs/agent-approvals-security) for Codex cloud

160setup and runtime guidance.

161 200 

162## Step 6: Configure plugins and connected capabilities201## Step 6: Configure plugins and connected capabilities

163 202 


201 credits.240 credits.

202 241 

203Use the authenticated API references for current access requirements, schemas,242Use the authenticated API references for current access requirements, schemas,

204fields, retention, and request behavior. Don't build an integration from a243fields, retention, and request behavior when building an integration.

205copied contract in this guide.

206 244 

207Protect the integration boundary:245Protect the integration boundary:

208 246 


216 254 

217## Step 8: Verify and maintain the rollout255## Step 8: Verify and maintain the rollout

218 256 

257After enabling Local computer access with Work Cloud, create a new task and continue the conversation from another supported device. Existing tasks are not migrated and keep their original local-only or cloud-only behavior. Keep the computer online for steps that need its files or tools. Test an action the policy should allow and an action it should block, checking the applicable approvals, filesystem, and network restrictions separately for local and cloud execution. Also test starting a new turn while the local computer is unavailable. An eligible task can continue in a cloud container without access to that computer's local files or tools. A task cannot switch from local execution to the cloud during a turn.

258 

259Record the effective settings and the result of each test. If a restriction does not work as expected, resolve the issue before users rely on it. Follow the documented behavior for disabling sync. Treat access removal, task interruption, and data retention as separate actions.

260 

219Verify every applicable boundary with representative identities:261Verify every applicable boundary with representative identities:

220 262 

221- ChatGPT workspace membership, seat, and supported role permissions.263- ChatGPT workspace membership, seat, and supported role permissions.


234After the initial rollout, review access, connected capabilities, credit use,276After the initial rollout, review access, connected capabilities, credit use,

235support feedback, and the workflows teams actually use. Adjust the rollout277support feedback, and the workflows teams actually use. Adjust the rollout

236scope and administrator guidance when those signals change.278scope and administrator guidance when those signals change.

279 

280<a id="if-you-need-to-turn-work-sync-off"></a>

281 

282<span

283 id="if-you-need-to-turn-local-computer-access-off"

284 data-localization-body-anchor

285/>

286 

287### If you need to turn Local computer access with Work Cloud off

288 

289Turning off Local computer access with Work Cloud interrupts currently running turns. Users can start a new turn in an existing cloud conversation. That turn automatically uses Work Cloud without access to local files. Tell users to start a new turn after the interruption and explain that local files will no longer be available to the cloud thread.

enterprise/agent-security.md +146 −0 created

Details

1# Agent Security

2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 

5Use Agent Security in the Admin Console to manage policies and configuration. It replaces Policies & Configuration. Its rollout is independent of local computer access for Work and dots.

6 

7When eligible legacy cloud policies migrate, their settings carry over into Global, preserving policy assignments and ordering. Review the migrated policies in Agent Security. Local computer access is a separate opt-in for Work and for dots.

8 

9## Where settings apply

10 

11Each policy starts with a Global baseline. Environment overrides change supported execution settings for Local or Codex Cloud. Where an environment has no override, it inherits the applicable Global settings from that policy.

12 

13- Global: set orchestrator controls, including approvals and web search, and shared execution settings.

14 

15- Local: adjust supported execution settings for work that runs on a connected computer.

16 

17- Codex Cloud: adjust supported execution settings for Codex cloud tasks. You can configure these policies before enabling Codex Cloud, but they apply only after you enable Codex Cloud on the permissions page. Work Cloud has separate capability permissions, described in [How Agent Security applies to Work Cloud](#how-agent-security-applies-to-work-cloud).

18 

19 

20 

21> Illustration: The new Local computer access with Work Cloud setting adds cloud-orchestrated Work on a connected computer. Local orchestration and Work Cloud remain unchanged. Supported Global policy applies through the shared cloud orchestrator when managed policy is enabled; device restrictions still apply, with MDM above Agent Security. Work cloud containers use their own execution configuration and requirements, separate from local execution policy.

22 

23 

24 

25## Set a baseline and add environment settings

26 

271. Open Agent Security and review your existing Global policies, assignments, and ordering. Check them against your organization's intended controls. This review does not enable Local computer access with Work Cloud.

28 

291. Review Requirements and Defaults separately. Requirements set limits that users cannot override. Defaults set starting values within those limits.

30 

311. Keep orchestrator controls in Global. These include approval requirements, allowed web search modes, and managed tool controls.

32 

331. Add Local or Codex Cloud environment settings for supported execution controls, such as sandboxing, filesystem permissions, and managed execution networking. Use an operating-system-specific override when that scope is needed.

34 

351. Save the policy and review any validation messages about the settings you entered.

36 

37## Choose controls and configuration fields

38 

39The orchestrator coordinates the task. An executor is the computer or cloud container that runs an execution step. Configure orchestrator controls in Global. Environment `requirements.toml` settings support execution controls only. Orchestrator settings, such as approval policy and web search, stay in Global and cannot be overridden by an environment.

40 

41### Orchestrator controls

42 

43Configure these controls in Global. For Work with local access and dots, supported Global policy applies through the shared cloud orchestrator when managed policy is enabled. Environment overrides apply to supported execution settings and cannot override orchestrator controls. Of the approval, web search, app, MCP, plugin, and rule requirements listed below, only **Allowed approval policies** and **Allowed web search modes** have dedicated controls in the Agent Security UI. Configure the other fields through TOML.

44 

45| Control | What this controls | `requirements.toml` fields |

46| -------------------------------- | ---------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |

47| Approval policies and review | When the agent needs approval and who reviews it, including automatic review. | `allowed_approval_policies`<br />`allowed_approvals_reviewers`<br />`auto_review`<br />`guardian_policy_config` |

48| Web search modes | Which web search modes the agent may use. | `allowed_web_search_modes` |

49| Apps, MCP servers, and `plugins` | Available apps, MCP servers, and plugins, and their configuration. | `apps`<br />`mcp_servers`<br />`plugins` |

50| Command `rules` | Which commands the agent can run, which require approval, and which it cannot run. | `rules` |

51| Managed `hooks` | Admin-defined actions at supported task and tool events. | `hooks`<br />`allow_managed_hooks_only` |

52 

53 

54 

55 

56### Hooks in Local computer access with Work Cloud

57 

58When managed policy and remote hooks are enabled, Work Cloud with local access and dots use admin-managed remote MCP hooks on the cloud orchestrator. Configure `mcp_tool` handlers in Global `requirements.toml`. Work Cloud without local access and personal accounts do not use these enterprise hooks. Command/shell, prompt, and agent handlers; hooks from local configuration, plugins, or local directories; environment-scoped hooks; and `SessionEnd` MCP hooks are not supported with cloud orchestration, even when tools execute locally. When both orchestration and execution are local, existing supported hooks continue to work in local-only Work and Codex threads. Admins can still configure supported managed hooks in Agent Security for those workflows.

59 

60Before relying on these hooks, test callback connectivity, required events, and failure behavior. An explicit supported denial can block an action, but a `PreToolUse` callback error, timeout, or malformed response can fail the hook without blocking the tool. MCP hooks do not provide a complete Compliance API audit trail.

61 

62Global also contains desktop and client settings. Some of these settings apply only to the desktop app. Configuring a setting in Global does not mean it applies everywhere. See the Configuration Reference for each field's supported use.

63 

64### Execution controls (executor)

65 

66These fields control how work runs on a computer or in a cloud container. Set shared values in Global. Use Local or Codex Cloud overrides for supported settings that need to differ in that environment.

67 

68| Control | What this controls | `requirements.toml` fields |

69| -------------------------------- | -------------------------------------------------------------------------- | --------------------------------------------------------------------------- |

70| Login shell use | Whether shell tools can start a login shell. | `allow_login_shell` |

71| Allowed sandbox modes | Which sandbox modes the executor can use. | `allowed_sandbox_modes` |

72| Permission profiles and defaults | Allowed permission profiles, their access limits, and the default profile. | `allowed_permission_profiles`<br />`default_permissions`<br />`permissions` |

73| Remote sandbox configuration | Host-specific sandbox modes, selected by hostname. | `remote_sandbox_config` |

74| Managed execution networking | Managed network access, including allowed and denied destinations. | `experimental_network` |

75| Windows execution settings | Platform-specific execution and sandbox settings on Windows. | `windows` |

76 

77The table shows which field groups support environment overrides. Supported options within each group can vary by platform, and some requirements combine across policies instead of replacing one another. See the Configuration Reference for supported values and Managed configuration for network exceptions.

78 

79On supported managed Codex Cloud execution paths, Agent Security requirements constrain command networking. Codex Cloud environment internet settings apply separately. An allowed domain in Agent Security does not override a restriction in the Cloud environment's internet settings. These command-network controls do not, by themselves, disable hosted web search, apps, or MCP. ChatGPT Work Cloud has separate capability permissions and does not inherit these Agent Security requirements.

80 

81A managed command allowlist applies to commands using the managed proxy. Where policy permits full sandbox escalation and it is approved, that execution can bypass the command proxy. A narrow network grant is different from full sandbox escalation. Configure enforced approval and sandbox requirements for the intended boundary, and test both ordinary and escalated commands.

82 

83### Configure networking in the UI

84 

851. Open **Admin Console > Agent Security**. Select a policy and choose **Global**, **Local**, or **Codex Cloud**. Use Global for the shared baseline and an environment override for supported differences.

861. Open **Requirements** and turn on **Manage Networking**. Add the required domain entries and choose **Allow** or **Deny** for each. Turn on **Only allow domains added by admins** if ordinary user configuration and per-domain approvals must not expand the managed proxy allowlist.

871. Review the effective settings and inherited rules before saving. Empty environment settings inherit Global rather than clearing it. Check local/private connectivity separately for Codex Cloud. Manage Networking Off is not the Cloud environment Internet access Off switch.

881. For Codex Cloud, also check the environment's internet access, destination, and method settings. Save and test an intended allowed request and an intended blocked request. Test any permitted full sandbox escalation separately.

89 

90#### No effective allowed destinations

91 

92When **Manage Networking** and **Only allow domains added by admins** are On, ordinary managed commands need effective allowed destinations. If no Allow entries are configured or inherited, those commands have no allowed destinations. A deny-only policy does not implicitly allow the rest of the internet. Add required Allow entries and check inherited rules before saving. This restriction applies to the managed command proxy, not every tool or approved full sandbox escalation.

93 

94#### Codex Cloud local/private connectivity

95 

96An explicit Off value for local/private connectivity can prevent Codex Cloud from reaching its upstream proxy, even when the destination domain is allowed. Check the final `allow_local_binding` value and identify which policy or setting supplies it. On the supported Cloud proxy path, this defaults to true only when no applicable requirement, selected network profile, or proxy feature setting supplies a value. An inherited false still counts as an explicit setting. Where supported, set a higher-priority Cloud override to change this value for Codex Cloud without changing the Global value used by Local. This does not add domain Allow entries. Verify executor support before relying on the override. Do not apply this Cloud default to Local.

97 

98### Environment defaults

99 

100The Defaults editor uses `config.toml` fields, which are different from `requirements.toml` constraints. Supported top-level environment defaults are:

101 

102- Shell behavior: `allow_login_shell` and `shell_environment_policy`.

103 

104- Sandbox and permissions: `sandbox_mode`, `sandbox_workspace_write`, `default_permissions`, and permissions.

105 

106- Windows execution: windows.

107 

108A default does not override an enforced requirement. Keep orchestrator defaults, including approval and web search settings, in Global.

109 

110## Understand how policies combine

111 

112- Across policies, a higher-priority policy wins over a lower-priority policy, even when the lower-priority policy is more specific.

113 

114- Within one policy, supported execution settings resolve in this order: an operating-system-specific environment override, an all-OS environment override, then Global.

115 

116- For local execution, MDM and legacy managed-device requirements rank above Agent Security. The device's system requirements file ranks below Agent Security.

117 

118For the same domain rule within a policy, an admin environment override can allow a domain denied in Global or deny a domain allowed in Global. Without an environment override, the Global rule is inherited. Other effective Deny rules or access controls can still block a request.

119 

120These outcomes compare the same domain key within one policy, with no higher-priority policy changing the result. A higher-priority value replaces the same key. Other inherited keys remain. An Allow does not bypass a different matching Deny, such as an inherited wildcard. An empty environment map does not clear inherited rules.

121 

122## How Agent Security applies to Work Cloud

123 

124Configure **Cloud browser use** and **Cloud network access** under **Admin Console > Permissions & roles > Workspace capabilities > Cloud computer capabilities**. These shared capabilities are available to Work Cloud and dots and can be configured independently of Work Cloud access. A Work task still needs Work access and permission to use each capability it requires. Review browser access and code or shell network access separately. Disabling one does not automatically disable the other.

125 

126Work Cloud containers and dots cloud computers use their own execution configuration and requirements, rather than the managed environment bundle used by other executor types. Local file and network restrictions do not automatically apply to these cloud computers. Supported Global orchestrator policy has a separate scope. A Global policy or Codex Cloud override does not configure shared cloud capability permissions. Review those permissions separately.

127 

128Check the workspace default, all direct and group-assigned roles, and separately enforced restrictions such as Lockdown Mode when verifying a member's effective access.

129 

130Before enabling **Allow local computer access** under Work Cloud, review the Global baseline and check compatibility with the controls your organization relies on. **Use Codex locally on the ChatGPT desktop app** is not a prerequisite. If `enforce_residency` is enabled in any cloud policy, **Allow local computer access** is disabled for both Work and dots. This safeguard does not configure workspace residency or, by itself, disable Work Cloud or dots. Review [Local computer access for Work Cloud and dots](https://learn.chatgpt.com/docs/enterprise/cloud-local-access) for separate setup steps, eligibility, and connection behavior.

131 

132## Policy API and Terraform

133 

134Use the policy API to manage Global settings. To manage Local or Codex Cloud settings, use the Agent Security UI. Existing Global API workflows remain available after migration. Test your scripts and Terraform integrations, and confirm that policy assignments and ordering are unchanged.

135 

136Policy migration does not change SCIM membership synchronization or RBAC roles.

137 

138## Related guides

139 

140- [Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration): policy delivery, precedence, and field-specific merge behavior.

141 

142- [Configuration Reference](https://learn.chatgpt.com/docs/config-file/config-reference): field definitions and Work compatibility.

143 

144- [Local computer access for Work Cloud and dots](https://learn.chatgpt.com/docs/enterprise/cloud-local-access): prerequisites and setup steps.

145 

146- [Roles and workspace permissions](https://learn.chatgpt.com/docs/enterprise/roles-and-workspace-permissions): access to Work and Codex capabilities.

Details

9[skills](https://learn.chatgpt.com/docs/skills-and-plugins), and9[skills](https://learn.chatgpt.com/docs/skills-and-plugins), and

10[connected services](https://help.openai.com/en/articles/11487775).10[connected services](https://help.openai.com/en/articles/11487775).

11 11 

12 

13 

14 {"For workspace controls and data-handling guidance, see "}

15 [{"Admin controls, security, and compliance for plugins and apps"}](https://help.openai.com/articles/11509118)

16 {" in the Help Center."}

17

18 

19 

12In this guide, **app** and **MCP server** refer to the same connected20In this guide, **app** and **MCP server** refer to the same connected

13integration and are interchangeable terms. We use **MCP server** in the prose,21integration and are interchangeable terms. We use **MCP server** in the prose,

14but preserve **app** in UI labels such as **Workspace apps** and22but preserve **app** in UI labels such as **Workspace apps** and

15**App permissions**, and in CSV column names.23**App permissions**, and in CSV column names.

16 24 

17A member can use an MCP server's capabilities only when the plugin and MCP server are25A member can use an MCP server's capabilities only when the plugin and MCP server

18available to their role and they have access to the connected service.26are available to their role and the authenticated account has access to the

27connected service. For a shared credential, the member also needs permission

28to use that credential; the external account can differ from their personal account.

19 29 

20Plugins work in Chat and Work across ChatGPT on the web, desktop, and mobile,30Plugins work in Chat and Work across ChatGPT on the web, desktop, and mobile,

21in Codex in the ChatGPT desktop app, and through the Codex CLI plugin browser.31in Codex in the ChatGPT desktop app, and through the Codex CLI plugin browser.


24To see how these controls fit with workspace roles and permissions, see34To see how these controls fit with workspace roles and permissions, see

25[Roles and workspace permissions](https://learn.chatgpt.com/docs/enterprise/roles-and-workspace-permissions).35[Roles and workspace permissions](https://learn.chatgpt.com/docs/enterprise/roles-and-workspace-permissions).

26 36 

37To configure plugin authentication for supported workspace

38experiences, see [Workspace connections](https://learn.chatgpt.com/docs/enterprise/shared-connections).

39Installing a plugin for everyone doesn't, by itself, provide a shared account.

40 

41Plugins in Sites let each visitor use their own connected accounts. Each

42 plugin has a separate Sites permission, with defaults that depend on the

43 workspace plan. See [Enable plugin use in

44 Sites](https://learn.chatgpt.com/docs/enterprise/sites#enable-plugin-use-in-sites) to review plugin

45 defaults, change access, and troubleshoot tenant restrictions.

46 

27## Understand the capability chain47## Understand the capability chain

28 48 

29A plugin can span these control layers:49A plugin can span these control layers:


77 97 

78## Step 2: Manage capabilities98## Step 2: Manage capabilities

79 99 

100Conversation sync does not grant additional plugin, MCP server, or connected-service access. For Local computer access with Work Cloud, Agent Security's enterprise `apps` and `plugins` requirements apply to local executors. Work cloud containers retain existing Work Cloud policies. Configure these requirements through TOML and review them alongside workspace permissions and the connected account's permissions.

101 

102Review hook support separately from plugin availability:

103 

104- **Enterprise hooks.** Where enabled for your workspace, Local computer access with Work Cloud supports admin-defined MCP hooks that run on the cloud coordinator (orchestrator) for supported lifecycle and tool events. Command hooks and hooks from local configuration or plugins are not supported with cloud orchestration, even when tools execute locally.

105- **Cloud orchestration:** Command hooks and hooks from local configuration or plugins do not run, even when tools execute locally and the plugin itself is allowed. Consumers do not have hooks support in this feature. When both orchestration and execution are local, existing supported hooks continue to work in local-only Work and Codex threads. Admins can still configure supported managed hooks in Agent Security for those workflows.

106- **Auditing.** Before relying on these hooks, test the callback connection, confirm the events it receives, and check how failures affect the task. MCP hooks do not provide a complete Compliance API audit trail.

107 

108See [Hooks](https://learn.chatgpt.com/docs/hooks) and the [Configuration Reference](https://learn.chatgpt.com/docs/config-file/config-reference) for supported requirements.

109 

80<WarningTip>110<WarningTip>

81 Making an MCP server or plugin available in ChatGPT doesn't grant access to111 Making an MCP server or plugin available in ChatGPT doesn't grant access to

82 files, records, or actions in the connected service. Before troubleshooting or112 files, records, or actions in the connected service. When troubleshooting

83 expanding access, check the member's workspace role and approved action113 access, check the member's workspace role and approved action settings. Then

84 settings. Then confirm the authenticated account or shared connection has the114 confirm the authenticated account or shared connection has the expected

85 expected permissions in the connected service.115 permissions in the connected service.

86</WarningTip>116</WarningTip>

87 117 

88Plugins in ChatGPT and Codex can include MCP server connections that search, retrieve, sync,118Plugins in ChatGPT and Codex can include MCP server connections that search, retrieve, sync,


99 approved custom set, including how the workspace handles newly added actions.129 approved custom set, including how the workspace handles newly added actions.

100- Set **App permissions** that determine when ChatGPT asks before using a connection.130- Set **App permissions** that determine when ChatGPT asks before using a connection.

101- Keep access within the scopes and permissions granted by each connected131- Keep access within the scopes and permissions granted by each connected

102 service and authenticated user.132 service and authenticated account.

103 133 

104For current availability and procedures, see134For current availability and procedures, see

105[Admin controls, security, and compliance in apps](https://help.openai.com/en/articles/11509118).135[Admin controls, security, and compliance in apps](https://help.openai.com/en/articles/11509118).

106 136 

137## Restrict company app accounts to authorized workspaces

138 

139When activated, verified-domain restrictions prevent users from creating new connections to supported apps with company-domain accounts in personal ChatGPT workspaces or other unauthorized workspaces. Employees must use an authorized workspace to connect those company accounts.

140 

141Verifying a domain does not activate this restriction. Existing app connections are not automatically disconnected.

142 

143For supported apps, availability, and setup guidance, see [Admin controls, security, and compliance for plugins and apps](https://help.openai.com/en/articles/11509118).

144 

107<a id="choose-a-starting-set-of-apps"></a>145<a id="choose-a-starting-set-of-apps"></a>

108 146 

109## Choose a focused initial set147## Choose a focused initial set

110 148 

111Start with plugins that support a clear business need. Decide whether to make149Enable plugins that support an approved business need. Set each plugin’s audience to the users or roles that need it, and complete any required review before enabling it.

112each plugin available to everyone, limit it to a role or pilot group, or require

113further review.

114 150 

115For each connected service, record the business owner, permitted data, approved151For each connected service, record the business owner, permitted data, approved

116read or write actions, authentication method, and a support or removal contact.152read or write actions, authentication method, and a support or removal contact.


133 169 

134When ChatGPT uses an MCP server included with a plugin, it sends a request170When ChatGPT uses an MCP server included with a plugin, it sends a request

135to the connected service and returns data or action results allowed by the171to the connected service and returns data or action results allowed by the

136authenticated user's permissions in that service.172authenticated account's permissions in that service.

137 173 

138ChatGPT handles data from connected services in two ways:174ChatGPT handles data from connected services in two ways:

139 175 

Details

1# Set up and manage @ChatGPT in Slack and Microsoft Teams

2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 

5In supported Slack and Microsoft Teams conversations, people can ask @ChatGPT to summarize information, draft responses, or use approved tools.

6 

7For everyday use, see the [Help Center user guide](https://help.openai.com/articles/20001537).

8 

9ChatGPT admins connect platforms and configure surfaces, [plugins](https://learn.chatgpt.com/docs/enterprise/apps-and-connectors#step-2-manage-capabilities), and [workspace connections](https://learn.chatgpt.com/docs/enterprise/shared-connections). Slack and Teams admins manage the messaging-platform setup.

10 

11For detailed setup, see the [Help Center setup guide](https://help.openai.com/articles/20001538).

12 

13 

14 

15 

16 

17 

18 

19 

20 

21 

22 

23 

24 

25 

26 

27 

28## How access works

29 

30Choose which plugins and workspace connections @ChatGPT’s service account can use. People who can use the surface can access those tools and data, which may differ from their personal access.

31 

32@ChatGPT uses configured connections and conversation context. It does not inherit a person’s file, app, or private-channel access. [Personal plugin access](https://learn.chatgpt.com/docs/plugins?surface=web#how-permissions-and-data-sharing-work) requires separate authorization where supported. Shared replies are visible to conversation participants.

33 

34 

35 

36 

37 

38 

39 

40## Before you begin

41 

42Before setup, identify the ChatGPT workspace and Slack workspaces or Microsoft Teams tenant you intend to connect. Confirm that @ChatGPT is available for your organization and agree on the pilot audience.

43 

44Assign the following responsibilities before setup:

45 

46- ChatGPT workspace admin or owner: Connect the platform, create the surface, and choose its plugins and workspace connections.

47 

48- Slack or Teams admin: Approve permissions and install the app. Teams admins also manage audience assignment and coordinate required consent with an authorized Microsoft administrator.

49 

50- **Connection owner:** Prepare approved company accounts and verify their resource and action permissions. Follow the [Workspace connections guide](https://learn.chatgpt.com/docs/enterprise/shared-connections#create-a-workspace-connection) for authorization.

51 

52- **Pilot owner:** Define the audience and supported conversations to test, including people who should not have access.

53 

54 

55 

56 

57 

58 

59 

60## Set up Slack

61 

62<span

63 id="1-confirm-the-slack-workspace-and-permissions"

64 data-localization-body-anchor

65/>

66 

67 

68 

69 

70### 1. Plan your surface configuration

71 

72A surface defines where @ChatGPT is available and which tools it can use.

73 

74Configure one surface per Slack workspace, including each connected workspace in Enterprise Grid.

75 

76 

77 

78 

79 

80 

81 

82### 2. Connect Slack in ChatGPT

83 

84In the [OpenAI admin console](https://admin.openai.com/), select the intended workspace and open Agents to connect Slack. Review the requested permissions.

85 

86Have the Slack owner or authorized app manager complete any required approval, then confirm the connection in ChatGPT.

87 

88If your organization already uses ChatGPT in Slack, a Slack admin must approve the additional app permissions to use the new @ChatGPT experience. See the [guidance for existing Slack installations](https://help.openai.com/articles/20001536). Existing installations won’t stop working immediately at launch.

89 

90<span

91 id="3-create-the-deployment-and-choose-its-scope"

92 data-localization-body-anchor

93/>

94 

95<span

96 id="set-destination-controls-and-instructions"

97 data-localization-body-anchor

98/>

99 

100 

101 

102 

103 

104 

105 

106### 3. Create the surface and choose its scope

107 

108Create a surface for the connected Slack workspace and give it a recognizable name.

109 

110For a channel pilot, choose **Selected channels only** and add the approved channels. This does not block direct messages.

111 

112 

113 

114 

115### 4. Test the experience

116 

117Before adding company connections, test a request in an approved Slack channel and in a direct message.

118 

119If @ChatGPT does not respond or show that it is working within a minute, follow the [setup troubleshooting checks](#h.no5mkx5zlseo) below.

120 

121 

122 

123 

124 

125 

126 

127 

128 

129 

130## Set up Microsoft Teams

131 

132Microsoft Teams admins manage app installation, user access, and any required Microsoft consent. ChatGPT workspace admins manage the Teams connection, surface settings, and [workspace connections](https://learn.chatgpt.com/docs/enterprise/shared-connections).

133 

134For step-by-step setup instructions, see the [Help Center setup guide](https://help.openai.com/articles/20001538).

135 

136 

137 

138 

139 

140 

141 

142 

143 

144 

145 

146 

147 

148## Check your surface scope

149 

150Confirm the surface matches its Slack workspace or Teams tenant. Enterprise Grid needs one surface per connected workspace.

151 

152 

153 

154 

155 

156 

157 

158 

159 

160 

161<span

162 id="enable-the-credential-for-the-deployment"

163 data-localization-body-anchor

164/>

165 

166 

167 

168 

169## Configure company access

170 

171Keep company-managed access separate from personal authorization:

172 

1731. **Personal access:** Where supported, using plugins connected in [ChatGPT.com](https://chatgpt.com/) or the desktop app requires separate authorization. This is separate from shared company access.

174 

1752. **Shared company access:** Surface plugins use the configured company account’s permissions, which may differ from participants’ personal access. Members do not each authenticate the shared account.

176 

177{/* */}

178 

1791. Check the surface’s connected Slack workspace or Teams tenant.

180 

1812. Have the connection owner verify the approved company account’s permissions. Use the [Workspace connections guide](https://learn.chatgpt.com/docs/enterprise/shared-connections#create-a-workspace-connection) for setup and authorization.

182 

1833. Add the approved plugin and select the intended workspace connection.

184 

1854. Save, then have the pilot owner test the connection in its Slack or Teams conversation.

186 

187 

188 

189 

190## Enable Codex Cloud for Slack

191 

192Codex Cloud delegation from Slack requires separate setup where available.

193 

1941. Enable **Codex Cloud** for your workspace.

195 

1962. Where [Codex Cloud role-based access control](https://learn.chatgpt.com/docs/enterprise/roles-and-workspace-permissions#review-codex-cloud-access-and-environment-administration) applies, grant access to the Slack surface’s service account and requesting users.

197 

1983. [Publish a cloud environment and share it with your workspace](https://learn.chatgpt.com/docs/environments/cloud-environments#share-within-an-enterprise-workspace).

199 

2004. Verify each requesting user’s access to the environment and any repositories requiring authentication.

201 

2025. Have a pilot user request a repository investigation in Slack and confirm the coding task starts.

203 

204The service account finds environments; the coding task runs as the requesting user. The service account does not need GitHub access.

205 

206<span

207 id="verify-a-pilot-before-expanding-access"

208 data-localization-body-anchor

209/>

210 

211 

212 

213 

214 

215 

216 

217## Validate setup

218 

219Before expanding access, use approved test data to check successful requests and access boundaries for each supported conversation type.

220 

221- **Slack:** Test an approved channel, an excluded channel, and direct messages. Channel restrictions do not block direct messages.

222 

223- Teams: Test assigned and unassigned users. Test personal chat only where your surface supports it.

224 

225- **Connections and actions:** Verify the acting account, source access, and results of enabled write or send actions in approved destinations.

226 

227- **Reply visibility:** Confirm who can see responses and open linked sources or files.

228 

229 

230 

231 

232 

233 

234 

235## Maintain the surface

236 

237Assign an owner to maintain platform connections, app assignment, and approved plugins. Involve platform admins for installation or consent changes and connection owners for reauthorization.

238 

239After a permission or connection change, repeat the relevant [validation checks](#h.ts4i3qduozr) before expanding access. Use the [Workspace connections guide](https://learn.chatgpt.com/docs/enterprise/shared-connections) to review company-account access and troubleshoot authorization.

240 

241Before offboarding or removing access, identify affected surfaces and connections and coordinate with their administrators.

242 

243<span

244 id="why-cant-a-teammate-open-a-generated-file"

245 data-localization-body-anchor

246/>

247 

248<span

249 id="why-did-a-working-connection-stop-working"

250 data-localization-body-anchor

251/>

252 

253<span

254 id="what-should-i-include-in-a-support-request"

255 data-localization-body-anchor

256/>

257 

258<span

259 id="what-else-should-we-confirm-before-enabling-chatgpt"

260 data-localization-body-anchor

261/>

262 

263 

264 

265 

266## Setup FAQ

267 

268 

269 

270 

271<ToggleSection title="Why can’t people find @ChatGPT or get a response?">

272 

273For Slack surfaces:

274 

275- Confirm that @**ChatGPT** is installed in the Slack workspace you are testing.

276 

277- Check that the channel belongs to the surface’s connected Slack workspace.

278 

279- Have a Slack admin check required scopes on the [app details page](https://slack.com/marketplace/A097V82EGG2-chatgpt).

280 

281For Teams surfaces:

282 

283- Confirm that a Microsoft Teams admin has enabled @ChatGPT for your tenant.

284 

285- Confirm that the app is assigned to the intended users and added to the team where you are testing through the approved installation route. See the [Help Center setup guide](https://help.openai.com/articles/20001538) for detailed instructions.

286 

287- Confirm a ChatGPT surface exists for the Teams tenant you are testing.

288 

289</ToggleSection>

290 

291 

292 

293 

294<ToggleSection title="Why is company information missing?">

295 

296Check the surface’s plugins and the [connected account’s access](https://learn.chatgpt.com/docs/enterprise/shared-connections#troubleshoot-access) in the source system.

297 

298</ToggleSection>

299 

300 

301 

302 

303<ToggleSection title="Do Slack and Teams support the same features?">

304 

305Conversation types and features can differ between platforms. Check the [Help Center user guide](https://help.openai.com/articles/20001537) and test each planned workflow.

306 

307</ToggleSection>

308 

309 

310 

311 

312<ToggleSection title="How does @ChatGPT interact with memory?">

313 

314At launch, @ChatGPT does not include memory or use a person’s ChatGPT memories.

315 

316</ToggleSection>

enterprise/chatgpt-space.md +127 −0 created

Details

1# Manage ChatGPT Space and shared pages

2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 

5<span

6 id="does-turning-off-library-file-sharing-remove-existing-access"

7 data-localization-body-anchor

8/>

9 

10 

11 

12 

13<span

14 id="how-should-we-handle-malicious-incoming-content"

15 data-localization-body-anchor

16/>

17 

18<span

19 id="how-can-we-reduce-data-exfiltration-risk"

20 data-localization-body-anchor

21/>

22 

23<span

24 id="is-enterprise-data-used-to-train-models"

25 data-localization-body-anchor

26/>

27 

28<span

29 id="what-if-information-was-shared-unintentionally"

30 data-localization-body-anchor

31/>

32 

33 

34 

35 

36## What is ChatGPT Space?

37 

38ChatGPT Space (formerly Library) brings together pages, uploaded files, and shared content so people and agents can collaborate. Teams can draft documents, [edit pages](https://learn.chatgpt.com/docs/space/pages#revise-the-content), or [ask ChatGPT for revisions](https://learn.chatgpt.com/docs/space/agents#start-with-a-bounded-request).

39 

40For product guidance, see the [ChatGPT Space guide](https://learn.chatgpt.com/docs/space) and [Help Center guidance on Library files](https://help.openai.com/en/articles/20001052-using-library-to-manage-files-in-chatgpt).

41 

42 

43 

44 

45## Enterprise sharing controls

46 

47Use [Share Library files and folders](https://help.openai.com/en/articles/10128477-chatgpt-enterprise-and-edu-release-notes) to manage sharing at the [workspace and role level](https://learn.chatgpt.com/docs/enterprise/roles-and-workspace-permissions#set-the-workspace-default-then-create-targeted-custom-roles). Disabling sharing blocks new shares and permission changes, but existing shared access remains. Users can still create and view private content.

48 

49An Admin role alone does not grant [sensitive compliance access](https://help.openai.com/en/articles/20001067-data-access-for-your-managed-chatgpt-account). [Compliance API permissions](https://learn.chatgpt.com/docs/enterprise/compliance-api#get-started) are required to [export or delete eligible saved Library files](https://help.openai.com/en/articles/20001052-using-library-to-manage-files-in-chatgpt) through supported endpoints.

50 

51 

52 

53 

54<span

55 id="what-if-a-file-will-not-save-or-upload"

56 data-localization-body-anchor

57/>

58 

59 

60 

61 

62## Help users create and share pages

63 

64Users can [create a page](https://learn.chatgpt.com/docs/space/getting-started#draft-your-first-page) and [share it with people or available workspace teams](https://learn.chatgpt.com/docs/space/collaboration#share-a-page-or-space), choosing view or edit access.

65 

66Sharing a page keeps private chats and saved memory private. Private details added to the page are visible to its collaborators.

67 

68Uploads follow the page’s permissions. Linked source files retain their own permissions. Content copied or summarized onto a page is visible to its collaborators.

69 

70 

71 

72 

73## Plugins and connected accounts

74 

75[Plugins](https://learn.chatgpt.com/docs/plugins?surface=web#overview) can provide apps, skills, or both. Installing a plugin does not authorize its apps.

76 

77Set [app availability, role access, and allowed actions](https://learn.chatgpt.com/docs/enterprise/apps-and-connectors#step-2-manage-capabilities). The connected account’s permissions determine what it can access; [approval settings](https://help.openai.com/en/articles/20001495-managing-app-permissions-in-chatgpt) determine when ChatGPT asks before an action.

78 

79 

80 

81 

82## Governance and data protection

83 

84OpenAI does not train on ChatGPT Enterprise data by default. Saved Library files follow the workspace’s [retention policy](https://help.openai.com/en/articles/8983778-chat-and-file-retention-in-chatgpt).

85 

86Limit sharing and app actions, and require approval for consequential actions where supported. [Read-only queries](https://developers.openai.com/api/docs/mcp#risks-and-safety) can still disclose data to external services. Pages, files, and tool results may contain [prompt injections](https://openai.com/safety/prompt-injections/) that redirect ChatGPT or disclose information. Safeguards reduce, but do not eliminate, this risk.

87 

88 

89 

90 

91## FAQ

92 

93 

94 

95 

96<ToggleSection title="Can a shared project use personal Space files?">

97 

98Sharing a project removes personal Space files from its sources without deleting the originals. Files uploaded directly to the project remain available to members. See [Projects in ChatGPT](https://help.openai.com/en/articles/10169521-projects-in-chatgpt).

99 

100</ToggleSection>

101 

102 

103 

104 

105<ToggleSection title="What happens when content is deleted?">

106 

107Deleting a page or Space moves it and its nested pages to Trash. Files saved separately in Space remain when a chat or project is deleted. See [Library file management](https://help.openai.com/en/articles/20001052-using-library-to-manage-files-in-chatgpt) for saved-file deletion details.

108 

109</ToggleSection>

110 

111 

112 

113 

114<ToggleSection title="What happens when someone leaves the workspace?">

115 

116 

117 

118 [Removing a member](https://help.openai.com/en/articles/8266418-data-retention-when-a-member-is-removed-from-a-workspace)

119 immediately revokes workspace access; retained Enterprise chats and files

120 follow workspace retention policy.

121 [Disconnecting an app](https://help.openai.com/en/articles/20001494-connecting-and-managing-app-accounts-in-chatgpt)

122 stops future access through that connection but does not automatically delete

123 saved content.

124 

125 

126 

127</ToggleSection>

Details

19 19 

20## Security at a glance20## Security at a glance

21 21 

22- Tasks in the cloud run on OpenAI-managed infrastructure, not on the user's22- Cloud execution runs on OpenAI-managed infrastructure. A task using Local computer access with Work Cloud can also use approved local tools through a connected computer.

23 device.23 

24- A cloud task doesn't inherit local files, desktop applications, browser24- The cloud environment does not automatically inherit local files, applications, browser sessions, or private-network access.

25 sessions, or private-network access from that device.25 

26- Connected apps use the permissions of the authorized account, which can be an26- Connected apps use the permissions of the authorized account, which can be an individual, shared, or agent-owned account.

27 individual, shared, or agent-owned account.27 

28- Workspace and feature-specific controls govern Work access, local28- Workspace and feature-specific controls govern Work access, local execution, cloud browsing, connected apps, and code or shell networking.

29 execution, cloud browsing, connected apps, and code or shell networking.29 

30- Business, Enterprise, and Edu workspace data is encrypted in transit and at30- Business, Enterprise, and Edu workspace data is encrypted in transit and at rest and is not used to train OpenAI models by default.

31 rest and isn't used to train OpenAI models by default.31 

32- Retention and audit visibility depend on the data category, storage location,32- Retention and audit visibility depend on the data category, storage location, event, and product configuration.

33 event, and applicable product configuration.

34 33 

35## Where cloud tasks run34## Where cloud tasks run

36 35 

37People can start cloud tasks from supported ChatGPT web, mobile, or desktop36For new tasks created after you enable Local computer access with Work Cloud, OpenAI's cloud coordinates the task while individual steps can execute in the cloud or on an approved, connected computer. This feature applies only to tasks created after you enable sync. Existing tasks, including tasks in projects, keep their original mode: locally only, or in the cloud without access to local files. Start a new task to use this feature.

38experiences. Work on the web and mobile runs in the cloud. The desktop app can37 

39run cloud or local tasks when the corresponding permissions are available and38If the computer is unavailable when a new turn starts, an existing eligible task using local computer access with Work Cloud can continue in a cloud container. The cloud container cannot access files or tools on the unavailable computer. It also does not enforce enterprise requirements from local execution. A task cannot switch from local execution to the cloud during a turn.

40enabled.39 

41 40A step that needs a computer's local files or tools requires that computer to be online and connected. Workspace permissions, supported policy, and the user's existing access continue to apply.

42The user's device sits within the organization's own IT-managed trust41 

43boundary, outside OpenAI-operated systems. Starting a cloud task from the42The user's device sits within the organization's own IT-managed trust boundary, outside OpenAI-operated systems. Cloud execution remains in the OpenAI-managed environment. A synced task can separately use approved local tools through a connected computer, subject to its permissions.

44desktop app doesn't give the task direct access to the user's computer.43 

45Execution stays in the OpenAI-managed environment regardless of the surface44Work Cloud uses the Codex task-execution harness. Work and Codex share core execution and isolation mechanisms, but their available tools, permissions, and administrative controls aren't identical. The customer controls workspace access, approved connections, and information intentionally supplied to a task. OpenAI manages the hosted execution environment.

46used to start it.45 

47 46Work Cloud runs on shared, OpenAI-managed infrastructure. In the current supported execution path, tasks run in VM-backed sandboxes, with execution state associated with the authenticated account user in the workspace. Work can reuse an environment across tasks or replace it while preserving eligible state. This doesn't mean every task receives a new container or that each customer has a dedicated physical host. Customers don't provide, host, or manage Work Cloud containers.

48Work Cloud uses the Codex task-execution harness. Work and Codex share core

49execution and isolation mechanisms, but their available tools, permissions, and

50administrative controls aren't identical. The customer controls workspace

51access, approved connections, and information intentionally supplied to a task;

52OpenAI manages the hosted execution environment.

53 

54Work Cloud runs on shared, OpenAI-managed infrastructure. In the current

55supported execution path, tasks run in VM-backed sandboxes, with execution state

56associated with the authenticated account user in the workspace. Work can reuse

57an environment across tasks or replace it while preserving eligible state. This

58doesn't mean every task receives a new container or that each customer has a

59dedicated physical host. Customers don't provide, host, or manage Work Cloud

60containers.

61 47 

62## What a cloud task can access48## What a cloud task can access

63 49 

64A cloud task can use information made available through an authorized path:50A cloud task can use information made available through an authorized path:

65 51 

66- Information a person enters into a conversation.52- Information a person enters into a conversation.

67- Files intentionally uploaded, attached from Library, or made available53 

68 through a project.54- Files intentionally uploaded, attached from Library, or made available through a project.

69- Content retrieved through an enabled app and an authorized account55 

70 connection.56- Content retrieved through an enabled app and an authorized account connection.

71- Website content accessed through an enabled cloud browser or another57 

72 permitted web capability, subject to applicable access controls.58- Website content accessed through an enabled cloud browser or another permitted web capability, subject to applicable access controls.

73 59 

74A cloud task doesn't directly inherit access to local files, installed60The cloud execution environment does not directly inherit a computer's files, installed applications, browser session, or corporate-network access. A task using Local computer access with Work Cloud can separately call approved local tools on a connected computer. Those local calls remain subject to the controls and permissions of that computer and the systems it accesses.

75applications, or the user's browser session. A device's access to a corporate

76VPN, internal website, or private network doesn't grant the cloud task that

77access.

78 61 

79An authorized connection can make information from an internal system available62An authorized connection can make information from an internal system available

80through its own access path. That connection doesn't give the cloud task63through its own access path. That connection doesn't give the cloud task


154permissions or approves every action on a website. Consequential actions can137permissions or approves every action on a website. Consequential actions can

155still require separate confirmation.138still require separate confirmation.

156 139 

140Configure **Cloud browser use** and **Cloud network access** under **Admin Console > Permissions & roles > Workspace capabilities > Cloud computer capabilities**. These shared capabilities are available to Work Cloud and dots and can be configured independently of Work Cloud access. A Work task still needs Work access and permission to use each capability it requires. Review browser access and code or shell network access separately. Disabling one does not automatically disable the other.

141 

157For a Work task to use the cloud browser in an Enterprise workspace,142For a Work task to use the cloud browser in an Enterprise workspace,

158administrators must enable both Work access and cloud browser access. See143administrators must enable both Work access and cloud browser access. See

159[Using cloud browser in ChatGPT](https://help.openai.com/en/articles/20001280-using-cloud-browser-in-chatgpt).144[Using cloud browser in ChatGPT](https://help.openai.com/en/articles/20001280-using-cloud-browser-in-chatgpt).

160 145 

146Also review **Cloud computer use** under **Workspace capabilities > Cloud computer capabilities**. This control also applies to ChatGPT Work. **Use password manager** is a separate permission directly under **Workspace capabilities**, outside the **Cloud computer capabilities** group. It governs password-manager access in the local in-app browser and cloud browser.

147 

161### Code and shell networking148### Code and shell networking

162 149 

163Public internet access for code or shell execution follows its own network150Public internet access for code or shell execution follows its own network


174 161 

175## Data handling and retention162## Data handling and retention

176 163 

177Work Cloud follows the applicable ChatGPT workspace privacy and security164A conversation using Local computer access with Work Cloud uses cloud coordination even when a tool runs on a connected computer. Review the data sent to the orchestrating service separately from files remaining on the device. Confirm the applicable storage, retention, residency, and audit coverage for the workflow before rollout.

178protections described above. See165 

179[Enterprise privacy](https://openai.com/enterprise-privacy/).166Local computer access with Work Cloud does not provide strict zero data retention. Data residency and inference residency cover only eligible content and supported workloads, regions, and configurations. Enterprise Key Management (EKM) covers supported stored content in eligible workspaces. Work is not supported with UAE inference residency. If your organization requires ZDR, do not enable this feature.

167 

168Work Cloud follows the applicable ChatGPT workspace privacy and security protections. See [Enterprise privacy](https://openai.com/enterprise-privacy/).

180 169 

181Information associated with a cloud task doesn't follow one universal170Information associated with a cloud task doesn't follow one universal retention schedule:

182retention schedule:

183 171 

184| Data category | Retention and deletion behavior |172| **Data category** | **Retention and deletion behavior** |

185| ------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |173| ------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

186| Work conversations | Follow the workspace conversation-retention settings. Deleted chats are generally scheduled for permanent deletion within 30 days, subject to published security, legal, and de-identification exceptions. |174| Work conversations | Follow the workspace conversation-retention settings. Deleted chats are generally scheduled for permanent deletion within 30 days, subject to published security, legal, and de-identification exceptions. |

187| Hosted execution state and snapshots | Follow a separate lifecycle from conversations and files. Access to execution state is scoped to the account user, and the workspace conversation-retention setting informs eligible stored snapshots. Ending a task or deleting a chat doesn't immediately purge every related artifact. |175| Hosted execution state and snapshots | Follow a separate lifecycle from conversations and files. Access to execution state is scoped to the account user, and the workspace conversation-retention setting informs eligible stored snapshots. Ending a task or deleting a chat doesn't immediately purge every related artifact. |


193| Cloud browser data | Hosted browser data is separate from local browser data. Users can remove saved cloud browser cookies through the applicable settings. |181| Cloud browser data | Hosted browser data is separate from local browser data. Users can remove saved cloud browser cookies through the applicable settings. |

194| Compliance records | Compliance Logs Platform records are available for 30 days. Exported copies follow the receiving system's retention policy. |182| Compliance records | Compliance Logs Platform records are available for 30 days. Exported copies follow the receiving system's retention policy. |

195 183 

196Deleting a conversation, removing a Library file or saved memory,184Deleting a conversation, removing a Library file or saved memory, disconnecting an app, and clearing hosted browser data are separate actions. Review the relevant storage location instead of assuming one action removes every copy. See [Chat and file retention policies](https://help.openai.com/en/articles/8983778-chat-and-file-retention-policies-in-chatgpt).

197disconnecting an app, and clearing hosted browser data are separate actions.185 

198Review the relevant storage location instead of assuming one action removes186Retained conversation and execution context can help Work resume interrupted tasks and refer to earlier work. Consider that continuity alongside your security requirements when setting retention.

199every copy. See187 

200[Chat and file retention policies](https://help.openai.com/en/articles/8983778-chat-and-file-retention-policies-in-chatgpt).188Eligible Enterprise and Edu workspaces can use Enterprise Key Management for supported stored content, including supported hosted execution snapshots when customer-managed encryption is required. Coverage varies by data category and deployment. Rotating a key doesn't delete existing data or, by itself, deny access to earlier encrypted content. Revoking or disabling key access is a separate action that can disrupt supported workflows. Neither replaces a retention or deletion policy.

201 189 

202Retaining appropriate conversation and execution context can help Work resume190Data residency and inference residency apply only to eligible content and supported workloads, subject to the organization's agreement, region, and configuration. Connected apps, external providers, and some processing or synced indexes can follow separate location rules. Verify support for the product, integration, and region. See [Data residency and inference residency](https://help.openai.com/en/articles/9903489-data-residency-and-inference-residency-for-chatgpt).

203interrupted tasks, refer to previous steps, and produce more consistent results.191 

204Shorter retention or deletion can reduce that continuity, so choose settings192OpenAI API [Zero Data Retention](https://developers.openai.com/api/docs/guides/your-data#zero-data-retention) is an API-specific control and doesn't define retention for ChatGPT Work.

205that balance security requirements with the usefulness of the workflow.

206 

207Eligible Enterprise and Edu workspaces can use Enterprise Key Management for

208supported stored content, including supported hosted execution snapshots when

209customer-managed encryption is required. Coverage varies by data category and

210deployment. Rotating a key doesn't delete existing data or, by itself, deny

211access to earlier encrypted content. Revoking or disabling key access is a

212separate action that can disrupt supported workflows. Neither replaces a

213retention or deletion policy.

214 

215Data residency and inference residency apply only to eligible content and

216supported workloads, subject to the organization's agreement, region, and

217configuration. Connected apps, external providers, and some processing or

218synced indexes can follow separate location rules. Verify support for the

219product, integration, and region. See

220[Data residency and inference residency](https://help.openai.com/en/articles/9903489-data-residency-and-inference-residency-for-chatgpt).

221 

222OpenAI API [Zero Data Retention](https://developers.openai.com/api/docs/guides/your-data#zero-data-retention)

223is an API-specific control and doesn't define retention for ChatGPT Work.

224 193 

225## Administrator access controls194## Administrator access controls

226 195 

196Enable **Allow local computer access** under Work Cloud. **Use Codex locally on the ChatGPT desktop app** is not a prerequisite. If `enforce_residency` is enabled in any cloud policy, **Allow local computer access** is disabled for both Work and dots. This safeguard does not configure workspace residency or, by itself, disable Work Cloud or dots. Before enabling it, review or create the global cloud baseline in **Agent Security**.

197 

198Use the policy API to manage Global settings. To manage Local or Codex Cloud settings, use the Agent Security UI. Existing Global API workflows remain available after migration. Test your scripts and Terraform integrations, and confirm that policy assignments and ordering are unchanged.

199 

200Review each control in the context where it applies:

201 

202- **Enterprise requirements.** For Work with local access and dots, supported Global policy applies through the shared cloud orchestrator when managed policy is enabled. Applicable local `requirements.toml` requirements govern execution on a connected computer. Work cloud containers and dots cloud computers use their own execution configuration and requirements, rather than the managed environment bundle used by other executor types. Local execution restrictions do not automatically apply to these cloud computers. Review cloud capability permissions and test local and cloud execution separately.

203 

204- **Local execution.** Supported device controls still apply to steps that run on the connected computer.

205 

206- **Cloud execution policy.** Work Cloud manages its own execution environment under existing Work Cloud policies. The local environment's managed execution policy does not carry over. Desktop browser site rules do not become cloud-browser restrictions.

207 

208Keep orchestrator controls, including approvals and web search, in Global. Use the dedicated Allowed approval policies and Allowed web search modes controls where available, and TOML for other supported fields. See the [Configuration Reference](https://learn.chatgpt.com/docs/config-file/config-reference) for the field list and execution scope.

209 

210Turning off Local computer access with Work Cloud interrupts currently running turns. Users can start a new turn in an existing cloud conversation. That turn automatically uses Work Cloud without access to local files.

211 

227Review the controls that apply to each part of a cloud task:212Review the controls that apply to each part of a cloud task:

228 213 

229- **Work Cloud and Work Local:** Where independent controls are available,214- **Work Cloud and Work Local:** Where independent controls are available, manage cloud and local Work as distinct controls in **Workspace settings** > **Permissions & roles**. In other workspaces, local Work can share a control with Codex Local.

230 manage cloud and local Work as distinct controls in **Workspace settings** >215 

231 **Permissions & roles**. In other workspaces, local Work can share a control216- **Apps and plugins:** Choose which integrations are available and which people or roles can use them.

232 with Codex Local.217 

233- **Apps and plugins:** Choose which integrations are available and which218- **Connected-account actions:** Review account permissions, application scopes, and available action or confirmation controls.

234 people or roles can use them.219 

235- **Connected-account actions:** Review account permissions, application220- **Browser and networking:** Assess cloud browser access and code or shell public-network access independently.

236 scopes, and available action or confirmation controls.221 

237- **Browser and networking:** Assess cloud browser access and code or shell222Enable **Work Cloud** only for approved users or groups. For cloud-only Work without cross-device sync, enable Work Cloud and disable Work Local for the intended role, where separate controls are available. Cross-device sync requires both permissions. Turning either permission off and saving the change also turns off Sync. Where local Work and Codex share a control, review the effect on both before disabling local execution. These controls don't prevent an authorized person from intentionally uploading a file to a cloud task.

238 public-network access independently.223 

239 224For supported role permissions with **Default**, **On**, and **Off** states, **Default** inherits the workspace setting, **On** grants access through that role, and **Off** does not grant access through that role. Ordinary role permissions combine additively, so another assigned role can still grant access. Lockdown Mode and product eligibility apply separately. Some Work and plugin settings use different, two-state controls. Verify effective access across all assigned roles. See [Role-based access control](https://help.openai.com/en/articles/11750701-rbac).

240Enable **Work Cloud** only for approved users or groups. Where separate225 

241**Work Cloud** and **Work Local** controls are available, enable **Work Cloud**226Where available, the **Work Cloud** permission applies across supported web, mobile, and desktop experiences. It doesn't independently select which of those surfaces can run cloud tasks. Consider device-management or other access controls if a deployment must exclude a particular surface.

242and disable **Work Local** for the intended role to permit cloud Work without

243local execution. Where local Work and Codex share a control, review the effect

244on both before disabling local execution. These controls don't prevent an

245authorized person from intentionally uploading a file to a cloud task.

246 

247For supported role permissions with **Default**, **On**, and **Off** states,

248**Default** inherits the workspace setting, **On** grants access, and **Off**

249removes access through that role. If a user has multiple custom roles, another

250role can still grant access. Some Work and plugin settings use different,

251two-state controls. Verify effective access across all assigned roles. See

252[Role-based access control](https://help.openai.com/en/articles/11750701-rbac).

253 

254Where available, the **Work Cloud** permission applies across supported web,

255mobile, and desktop experiences. It doesn't independently select which of those

256surfaces can run cloud tasks. Consider device-management or other access

257controls if a deployment must exclude a particular surface.

258 227 

259## Audit and compliance visibility228## Audit and compliance visibility

260 229 


276exported records. See the245exported records. See the

277[OpenAI Compliance Platform](https://help.openai.com/en/articles/9261474-compliance-api-for-chatgpt-enterprise-edu-and-chatgpt-for-teachers).246[OpenAI Compliance Platform](https://help.openai.com/en/articles/9261474-compliance-api-for-chatgpt-enterprise-edu-and-chatgpt-for-teachers).

278 247 

279## Start with a small pilot248## Verify cloud access and controls

280 249 

281Choose one practical task for a small group. For example, a security team could250Test cloud access with a task that reflects your team’s work. For example, a security team could

282compare an approved vendor advisory with an authorized inventory and review a251compare an approved vendor advisory with an authorized inventory and review a

283draft exposure assessment before deciding what to do. If cloud browsing or252draft exposure assessment before deciding what to do. If cloud browsing or

284connected apps are unavailable, provide the advisory and an approved inventory253connected apps are unavailable, provide the advisory and an approved inventory

285extract directly.254extract directly.

286 255 

287Enable only the access the task requires. Confirm connected-account256Enable only the access the task requires. Check connected-account permissions, retention settings, and available audit records. Tell users which results and actions require human review. For rollout planning, see the

288permissions, retention settings, available audit records, and where a person

289should review the result before expanding access. For rollout planning, see the

290[Admin rollout guide](https://learn.chatgpt.com/docs/enterprise/admin-setup).257[Admin rollout guide](https://learn.chatgpt.com/docs/enterprise/admin-setup).

Details

8 8 

9## Security at a glance9## Security at a glance

10 10 

11- Local tasks run through the ChatGPT desktop app. Opening a hosted cloud task in the same app does not make that task local.11- Local steps run through the ChatGPT desktop app. In Local computer access with Work Cloud, OpenAI's cloud coordinates the task while the connected computer executes steps that require it.

12 12 

13- Available local and hosted Work controls depend on workspace configuration and rollout.13- Available local and hosted Work controls depend on workspace configuration and rollout.

14 14 


24 24 

25## Where local tasks run25## Where local tasks run

26 26 

27Work Local accesses approved resources through the desktop app on the user's computer. Work Cloud runs on OpenAI-managed infrastructure, even when opened from the same desktop app.27Local execution accesses approved resources through the desktop app on the user's computer. With Local computer access with Work Cloud enabled, OpenAI's cloud coordinates the task and calls the connected computer when a step needs local execution. The computer must be online and connected for those steps.

28 

29Local computer access with Work Cloud applies only to tasks created after you enable sync. Existing tasks, including tasks in projects, keep their original mode: locally only, or in the cloud without access to local files. Start a new task to use this feature.

30 

31If the computer is unavailable when a new turn starts, an existing eligible task using local computer access with Work Cloud can continue in a cloud container. The cloud container cannot access files or tools on the unavailable computer. It also does not enforce enterprise requirements from local execution. A task cannot switch from local execution to the cloud during a turn.

28 32 

29Local files can remain on the device, but relevant file excerpts, prompts, screenshots, browser content, or tool results may be sent to OpenAI services to complete a task. Local execution does not mean offline or device-only model inference.33Local files can remain on the device, but relevant file excerpts, prompts, screenshots, browser content, or tool results may be sent to OpenAI services to complete a task. Local execution does not mean offline or device-only model inference.

30 34 


86 90 

87## Administrator access and managed-device policies91## Administrator access and managed-device policies

88 92 

89Review the Work controls available in **Workspace settings** > **Permissions & roles**. Whether local and hosted Work appear as distinct permissions depends on the workspace configuration and rollout. For additional guidance, see the [Work administrator FAQ](https://learn.chatgpt.com/docs/enterprise/work-admin-faq).93For Local computer access with Work Cloud, review both the workspace's sync permission and the Agent Security requirements for local execution.

94 

95For local execution, MDM and legacy managed-device requirements rank above Agent Security. The device's system requirements file ranks below Agent Security. Within a given policy, OS-specific environment overrides take priority over all-OS environment overrides, followed by Global. A higher-priority policy wins even if a lower-priority policy is more specific. Some requirements have field-specific merge rules.

96 

97Use the policy API to manage Global settings. To manage Local or Codex Cloud settings, use the Agent Security UI. Existing Global API workflows remain available after migration. Test your scripts and Terraform integrations, and confirm that policy assignments and ordering are unchanged.

98 

99For Work with local access and dots, supported Global policy applies through the shared cloud orchestrator when managed policy is enabled. Applicable local `requirements.toml` requirements govern execution on a connected computer. Work cloud containers and dots cloud computers use their own execution configuration and requirements, rather than the managed environment bundle used by other executor types. Local execution restrictions do not automatically apply to these cloud computers. Review cloud capability permissions and test local and cloud execution separately.

100 

101Before enabling sync, review these requirements:

102 

103- **Policies delivered only through MDM. MDM delivers policy to devices. Create an Agent Security baseline for supported local execution requirements before enabling sync.**

104 

105- **Enterprise hooks.** Where enabled for your workspace, Local computer access with Work Cloud supports admin-defined MCP hooks that run on the cloud coordinator (orchestrator) for supported lifecycle and tool events. Command hooks and hooks from local configuration or plugins are not supported with cloud orchestration, even when tools execute locally. When both orchestration and execution are local, existing supported hooks continue to work in local-only Work and Codex threads. Admins can still configure supported managed hooks in Agent Security for those workflows.

106 

107- **Auditing.** Before relying on these hooks, test the callback connection, confirm the events it receives, and check how failures affect the task. MCP hooks do not provide a complete Compliance API audit trail.

108 

109Review the Work controls available in **Workspace settings** > **Permissions & roles**. Whether local and hosted Work appear as distinct permissions depends on the workspace configuration and rollout. For more guidance, see the [Work administrator FAQ](https://learn.chatgpt.com/docs/enterprise/work-admin-faq).

90 110 

91Enable only the execution environments approved for each user or group, and verify effective access after making changes.111Enable only the execution environments approved for each user or group, and verify effective access after making changes.

92 112 


94 114 

95Enforced requirements cannot be overridden by individual users. Managed defaults, by contrast, establish initial settings that users may be able to change. Neither replaces workspace roles or operating-system permissions.115Enforced requirements cannot be overridden by individual users. Managed defaults, by contrast, establish initial settings that users may be able to change. Neither replaces workspace roles or operating-system permissions.

96 116 

97Supported local clients load managed requirements during configuration loading. A background refresh can make newer cloud-managed requirements available for a later configuration load; it does not by itself demonstrate that an existing task is using the new policy. macOS MDM requirement changes are read at the next client launch. After changing managed requirements, restart the applicable local client and verify its effective settings before relying on the restriction. Workspace permission changes can follow a different activation path. See [How local clients apply cloud-managed requirements](https://learn.chatgpt.com/docs/enterprise/managed-configuration#how-local-clients-apply-cloud-managed-requirements).117For local clients that use the existing local configuration path, managed requirements load during configuration loading. A background refresh can prepare cloud requirements for a later load, and macOS MDM changes are read at the next client launch. Restart and verify the applicable local client after a local policy change.

118 

119Turning off Local computer access with Work Cloud interrupts currently running turns. Users can start a new turn in an existing cloud conversation. That turn automatically uses Work Cloud without access to local files.

120 

121This local loading behavior does not establish when a cloud policy change takes effect in a running task using Local computer access with Work Cloud. Verify the task's effective controls before relying on the update.

98 122 

99| Managed setting | Security purpose |123| **Managed setting** | **Security purpose** |

100| ----------------------------------------------------- | --------------------------------------------------------------------------------------------- |124| ----------------------------------------------------- | -------------------------------------------------------------------------------------------------- |

101| `features.computer_use = false` | Disable native Computer Use capabilities. |125| `features.computer_use = false` | Disable native Computer Use capabilities. |

102| `allow_appshots = false` | Prevent supported Appshot capture. |126| `allow_appshots = false` | Prevent supported Appshot capture. |

103| `features.in_app_browser = false` | Disable the desktop app's built-in browser. |127| `features.in_app_browser = false` | Disable the desktop app's built-in browser. |

104| `features.browser_use = false` | Disable supported Browser Use capabilities; external Browser Use has a separate flag. |128| `features.browser_use = false` | Disable supported Browser Use capabilities. External Browser Use has a separate flag. |

105| `features.browser_use_external = false` | Disable agent-driven Browser Use through supported browser extensions. |129| `features.browser_use_external = false` | Disable agent-driven Browser Use through supported browser extensions. |

106| `features.apps = false` or `features.plugins = false` | Restrict supported connected applications or plugins. |130| `features.apps = false` or `features.plugins = false` | Restrict supported connected applications or plugins. |

107| `computer_use.allow_locked_computer_use = false` | Prevent users from enabling Locked Use on managed Macs; does not disable existing Locked Use. |131| `computer_use.allow_locked_computer_use = false` | Prevent users from enabling Locked Use on managed Macs. This does not disable existing Locked Use. |

108 132 

109These are restriction examples, not a list of enabled defaults. Omitting a feature requirement leaves normal client, platform, rollout, and user settings in effect. Browser Use feature flags, the built-in browser pane, and native Computer Use are separate controls; validate each browser path independently.133These are restriction examples, not a list of enabled defaults. Omitting a feature requirement leaves normal client, platform, rollout, and user settings in effect. Browser Use feature flags, the built-in browser pane, and native Computer Use are separate controls. Check each browser path independently.

110 134 

111Available settings and delivery methods depend on the client, operating system, workspace, and deployment configuration. Validate restrictions on a representative managed device. For supported policy settings, configuration examples, and MDM setup instructions, see [Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration).135Available settings and delivery methods depend on the client, operating system, workspace, and deployment configuration. Check restrictions on a representative managed device. For supported policy settings, configuration examples, and MDM setup instructions, see [Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration).

112 136 

113## Local networking and private resources137## Local networking and private resources

114 138 

115Work Local can reach company information through a browser, a native application, a connected app, or another supported tool. Network controls apply differently to each path, and access to a corporate VPN does not itself authorize a task to use an internal resource.139Work Local can reach company information through a browser, a native application, a connected app, or another supported tool. Network controls apply differently to each path, and access to a corporate VPN does not itself authorize a task to use an internal resource.

116 140 

117Managed network requirements and Browser Use origin policies are separate checks. Validate both on the app versions and operating systems in your deployment before relying on a network restriction to limit Browser Use. Browser policy checks do not mean browser traffic is routed through the command-network proxy, and Browser Use policies do not govern traffic from native applications.141Managed network requirements and Browser Use origin policies are separate checks. Check both on the app versions and operating systems in your deployment before relying on a network restriction to limit Browser Use. Browser policy checks do not mean browser traffic is routed through the command-network proxy, and Browser Use policies do not govern traffic from native applications.

118 142 

119Managed network requirements under `[experimental_network]` are experimental and may change. Windows support is limited; test the exact client and environment before applying them to Windows users. Domain rules alone do not activate the managed proxy; `experimental_network.enabled = true` is required and does not override a sandbox that keeps networking off.143Managed network requirements under `[experimental_network]` are experimental and may change. Windows support is limited; test the exact client and environment before applying them to Windows users. Domain rules alone do not activate the managed proxy; `experimental_network.enabled = true` is required and does not override a sandbox that keeps networking off.

120 144 


122 146 

123## Data handling and retention147## Data handling and retention

124 148 

149For Local computer access with Work Cloud, cloud coordination is part of the workflow even when a step runs on the computer. Review conversation data and task context separately from the local files used by a tool. Do not infer that local execution means device-only storage or that every file in a folder is uploaded.

150 

151Local computer access with Work Cloud does not provide strict zero data retention. Data residency and inference residency cover only eligible content and supported workloads, regions, and configurations. Enterprise Key Management (EKM) covers supported stored content in eligible workspaces. Work is not supported with UAE inference residency. Confirm the workspace's storage, retention, and audit coverage before rollout. If your organization requires ZDR, do not enable this feature. If `enforce_residency` is enabled in any cloud policy, **Allow local computer access** is disabled for both Work and dots. This safeguard does not configure workspace residency or, by itself, disable Work Cloud or dots.

152 

125Apply your organization's endpoint, file-access, proxy, and data-loss-prevention controls to the specific device and workflow. Confirm whether those controls can prevent sensitive information from entering the task before processing. Audit logs and compliance exports help with monitoring and investigation but do not block processing on their own.153Apply your organization's endpoint, file-access, proxy, and data-loss-prevention controls to the specific device and workflow. Confirm whether those controls can prevent sensitive information from entering the task before processing. Audit logs and compliance exports help with monitoring and investigation but do not block processing on their own.

126 154 

127Storage and retention depend on the information category and where it is saved.155Storage and retention depend on the information category and where it is saved.

128 156 

129| Information category | What to review |157| **Information category** | **What to review** |

130| ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |158| ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

131| Local conversation records | How the desktop experience stores, deletes, backs up, or shares local records. Do not assume hosted-conversation retention settings apply to every local artifact. |159| Local conversation records | How the desktop experience stores, deletes, backs up, or shares local records. Do not assume hosted-conversation retention settings apply to every local artifact. |

132| Local files and generated outputs | Device storage, endpoint policy, user-authorized uploads, external sharing, and any separately saved copies. |160| Local files and generated outputs | Device storage, endpoint policy, user-authorized uploads, external sharing, and any separately saved copies. |


142 170 

143## Audit and compliance visibility171## Audit and compliance visibility

144 172 

173Enabling Local computer access with Work Cloud changes what your existing OpenTelemetry (OTel) collector receives. Your local executor can still export supported execution events. Cloud orchestration events do not reach your existing OpenTelemetry collector.

174 

175Use the Compliance API for supported cloud records. Changing the collector endpoint does not restore cloud orchestration events. Compliance API records do not replace every event in the earlier OpenTelemetry stream. See [Review OpenTelemetry and audit coverage](https://learn.chatgpt.com/docs/enterprise/cloud-local-access#review-opentelemetry-and-audit-coverage).

176 

145Available reporting depends on the workspace plan, product experience, event, connected application, and deployed configuration. Verify Work Local coverage before relying on a workspace export for incident response or regulatory review.177Available reporting depends on the workspace plan, product experience, event, connected application, and deployed configuration. Verify Work Local coverage before relying on a workspace export for incident response or regulatory review.

146 178 

147In supported versions, Browser Use can emit OpenTelemetry events for capability checks, including site access, uploads, and downloads. These events record the decision and decision source, with policy details where available. The decision source can be unknown. When export is configured, they are sent to the customer's OpenTelemetry endpoint alongside other local-runtime telemetry.179In supported versions, Browser Use can emit OpenTelemetry events for capability checks, including site access, uploads, and downloads. These events record the decision and decision source, with policy details where available. The decision source can be unknown. When export is configured, they are sent to the customer's OpenTelemetry endpoint alongside other local-runtime telemetry.

148 180 

149OpenTelemetry export is separate from Compliance API records and must be configured independently. These events do not establish a complete record of every browser or native-app action. See [OpenTelemetry configuration](https://learn.chatgpt.com/docs/config-file/config-advanced#observability-and-telemetry).181Configure OpenTelemetry export separately from Compliance API records. These events do not establish a complete record of every browser or native-app action. See [OpenTelemetry configuration](https://learn.chatgpt.com/docs/config-file/config-advanced#observability-and-telemetry).

150 182 

151Determine whether the relevant systems record the task identity, supported prompts and responses, connected-app calls, browser approvals, application actions, local file activity, or endpoint events. Source-system and device records can provide different visibility from ChatGPT workspace records.183Determine whether the relevant systems record the task identity, supported prompts and responses, connected-app calls, browser approvals, application actions, local file activity, or endpoint events. Source-system and device records can provide different visibility from ChatGPT workspace records.

152 184 


154 186 

155## Start with one approved task187## Start with one approved task

156 188 

157Start with a small group on managed devices and choose one approved task, such as comparing selected finance workbooks. Confirm each user's Work access and provide only the files, applications, browser sessions, or connected accounts the task requires.189Verify local Work on the managed devices your teams use. Run an approved task, such as comparing selected finance workbooks. Confirm each user's Work access and provide only the files, applications, browser sessions, or connected accounts the task requires.

158 190 

159Check that approved actions work, restricted actions are blocked, and available records meet your monitoring needs. Have a user review the results and any external changes before expanding access.191Check that approved actions work, restricted actions are blocked, and available records meet your monitoring needs. Have the user review the results and confirm that any changes to files or connected systems match the request.

Details

8available to each experience depend on whether a task runs locally or in the8available to each experience depend on whether a task runs locally or in the

9cloud, its available tools, and applicable workspace policies.9cloud, its available tools, and applicable workspace policies.

10 10 

11ChatGPT Work can complete multi-step tasks using the information, files,11ChatGPT Work can complete multi-step tasks using the files, applications, and tools available to an authorized workspace member. With sync enabled, members can continue eligible conversations across desktop, mobile, and web. For enterprises, the in-app Local/Cloud toggle and its default remain unchanged at launch. OpenAI's cloud coordinates the task, while individual steps can run in a cloud environment or on an approved, connected computer.

12applications, and tools available to an authorized workspace member. On the web,12 

13those tasks run in the cloud, not on the member's device.13> **Update the desktop app.** Users must update to the latest version of the ChatGPT desktop app for Local computer access with Work Cloud to take effect after it is enabled for their workspace.

14 

15Availability and controls depend on your plan, workspace configuration, and rollout.

16 

17 

18 

19 {"For general usage and availability, see "}

20 [{"ChatGPT Work and Codex"}](https://help.openai.com/articles/20001275)

21 {" in the Help Center."}

22

14 23 

15This overview explains the execution boundary, network and application controls,

16data handling, and how tasks are executed securely using ChatGPT Work on the

17web. Availability and administrative controls depend on your plan and workspace

18configuration.

19 24 

20For a focused review of hosted execution, connected-account permissions,25For a focused review of hosted execution, connected-account permissions,

21browser and network settings, retention, and audit visibility, see26browser and network settings, retention, and audit visibility, see


32 37 

33### Local Work38### Local Work

34 39 

35Local Work runs tasks through the ChatGPT desktop app on the user's device.40Local execution lets a Work task use approved resources on the computer, subject to user permissions, workspace controls, and supported device policy. When sync is enabled, cloud coordination calls on the connected computer for steps that need it. That computer must be online and connected.

36It can access local files, applications, and other resources made available to41 

37it, subject to the user's permissions, applicable workspace controls, and device42Local execution does not mean that the conversation or task context stays only on the device. See [Work local security](https://learn.chatgpt.com/docs/enterprise/chatgpt-work-local-security) for data and device boundaries.

38security policies. Unlike Work on the Web, local Work can operate on resources

39that remain on your computer without requiring you to upload files to a cloud

40conversation.

41 43 

42### Cloud Work44### Cloud Work

43 45 

44Cloud Work is available on supported web, mobile, and desktop surfaces. It runs46Cloud execution runs supported steps on OpenAI-managed infrastructure. If the computer is unavailable when a new turn starts, an existing eligible task using local computer access with Work Cloud can continue in a cloud container. The cloud container cannot access files or tools on the unavailable computer. It also does not enforce enterprise requirements from local execution. A task cannot switch from local execution to the cloud during a turn.

45the Codex harness in an isolated environment on OpenAI-managed infrastructure.47 

46Cloud conversations can sync across these surfaces, and supported tasks can48A cloud execution environment does not automatically inherit a computer's files, applications, browser sessions, or network access. A task using Local computer access with Work Cloud can separately use approved local tools through an online, connected computer. Uploads, project sources, and authorized connected apps remain distinct ways to supply information.

47continue while the user is away from the conversation.49 

48 50When [Library](https://help.openai.com/en/articles/20001052-file-storage-and-library-in-chatgpt) is available, eligible uploaded or generated files can be saved there. Review the controls available in your workspace. Users can explicitly access or attach files they are authorized to use.

49Work on the web can't directly access files, applications, or open browser tabs51 

50on the user's computer. A user can provide files by uploading them, adding them52See [Code and shell sandboxing](https://learn.chatgpt.com/docs/sandboxing?surface=web), [Creating and editing documents, spreadsheets, and presentations](https://help.openai.com/en/articles/20001278-creating-and-editing-documents-spreadsheets-and-presentations-with-chatgpt-work), and [File storage and Library in ChatGPT](https://help.openai.com/en/articles/20001052-library-for-chatgpt).

51to a supported project, or using an authorized connected app. The desktop53 

52experience controls local file and application access through its own54Local computer access with Work Cloud applies only to tasks created after you enable sync. Existing tasks, including tasks in projects, keep their original mode: locally only, or in the cloud without access to local files. Start a new task to use this feature.

53permissions.55 

54 56<span

55When57 id="enable-and-govern-local-computer-access"

56[Library](https://help.openai.com/en/articles/20001052-file-storage-and-library-in-chatgpt)58 data-localization-body-anchor

57is available, eligible uploaded or generated files can be saved there.59/>

58Administrators can control whether ChatGPT automatically references saved60 

59Library files. Disabling automatic references does not prevent users from61## Enable and govern Local computer access with Work Cloud

60explicitly accessing or attaching files they are authorized to use.62 

61 63A workspace owner enables **Allow local computer access** after reviewing the required Work permissions and the cloud policy in **Agent Security**. Enable Work Cloud for the intended users. **Allow local computer access** is nested under Work Cloud. You do not need to enable **Use Codex locally on the ChatGPT desktop app**.

62See [Code and shell sandboxing](https://learn.chatgpt.com/docs/sandboxing?surface=web),64 

63[Creating and editing documents, spreadsheets, and presentations](https://help.openai.com/en/articles/20001278-creating-and-editing-documents-spreadsheets-and-presentations-with-chatgpt-work),65Review these policy boundaries before enabling sync:

64and66 

65[File storage and Library in ChatGPT](https://help.openai.com/en/articles/20001052-library-for-chatgpt).67- **Enterprise requirements.** For Work with local access and dots, supported Global policy applies through the shared cloud orchestrator when managed policy is enabled. Applicable local `requirements.toml` requirements govern execution on a connected computer. Work cloud containers and dots cloud computers use their own execution configuration and requirements, rather than the managed environment bundle used by other executor types. Local execution restrictions do not automatically apply to these cloud computers. Review cloud capability permissions and test local and cloud execution separately.

68 

69- **Local execution.** MDM and legacy managed-device requirements rank above Agent Security. The device's system requirements file ranks below Agent Security.

70 

71- **Enterprise hooks.** Where enabled for your workspace, Local computer access with Work Cloud supports admin-defined MCP hooks that run on the cloud coordinator (orchestrator) for supported lifecycle and tool events. Command hooks and hooks from local configuration or plugins are not supported with cloud orchestration, even when tools execute locally. When both orchestration and execution are local, existing supported hooks continue to work in local-only Work and Codex threads. Admins can still configure supported managed hooks in Agent Security for those workflows.

72 

73- **Logging and auditing.** Before relying on these hooks, test the callback connection, confirm the events it receives, and check how failures affect the task. MCP hooks do not provide a complete Compliance API audit trail.

74 

75Keep orchestrator controls, including approvals and web search, in Global. Use the dedicated Allowed approval policies and Allowed web search modes controls where available, and TOML for other supported fields. See the [Configuration Reference](https://learn.chatgpt.com/docs/config-file/config-reference) for the field list and execution scope.

76 

77Turning off Local computer access with Work Cloud interrupts currently running turns. Users can start a new turn in an existing cloud conversation. That turn automatically uses Work Cloud without access to local files.

78 

79Local computer access with Work Cloud does not change Codex configuration behavior or combine Work history with Codex history. See [Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration) and the [Work admin FAQ](https://learn.chatgpt.com/docs/enterprise/work-admin-faq).

66 80 

67## Network access and external destinations81## Network access and external destinations

68 82 


166 180 

167## Privacy and data handling181## Privacy and data handling

168 182 

169ChatGPT Work follows the privacy, security, and data-handling policies183ChatGPT Work follows the privacy, security, and data-handling policies applicable to your ChatGPT workspace. Local computer access with Work Cloud does not provide strict zero data retention. Data residency and inference residency cover only eligible content and supported workloads, regions, and configurations. Enterprise Key Management (EKM) covers supported stored content in eligible workspaces. Work is not supported with UAE inference residency. Conversations, uploaded files, generated files, connected applications, and browser data can have different retention and deletion rules. If `enforce_residency` is enabled in any cloud policy, **Allow local computer access** is disabled for both Work and dots. This safeguard does not configure workspace residency or, by itself, disable Work Cloud or dots.

170applicable to your ChatGPT workspace. Conversations, uploaded files, generated

171files, connected applications, and browser data can have different retention and

172deletion rules.

173 184 

174For details, see [Enterprise privacy](https://openai.com/enterprise-privacy/),185For details, see [Enterprise privacy](https://openai.com/enterprise-privacy/),

175[Chat and file retention policies](https://help.openai.com/en/articles/8983778-chat-and-file-retention-policies-in-chatgpt),186[Chat and file retention policies](https://help.openai.com/en/articles/8983778-chat-and-file-retention-policies-in-chatgpt),

Details

1# Local computer access for Work Cloud and dots

2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 

5Work and dots can use permitted files and tools on a connected computer while OpenAI’s cloud coordinates the task. Enable local computer access separately for each feature.

6 

7Start with the shared policy, compatibility, and audit guidance below, then follow the Work or dots setup and end-user guidance for the feature you plan to enable.

8 

9This guide helps enterprise workspace owners review policy requirements and enable local computer access for Work and dots. Availability depends on your workspace and rollout.

10 

11See [Agent Security](https://learn.chatgpt.com/docs/enterprise/agent-security) for the Global baseline, environment overrides, and orchestrator and executor field lists.

12 

13 

14 

15 

16## Benefits of local computer access

17 

18Enabling local computer access in these features helps teams continue work across devices. Admins can centrally manage supported requirements in Agent Security for execution on a local computer. These execution requirements do not apply when Work uses a cloud container or a dot uses a cloud computer. Cloud execution uses separate controls for browser access, network access, and computer use.

19 

20### Work

21 

22- **Continue one Work conversation across devices.** Start on a computer, then review results or give follow-up instructions from the web or mobile app. Tasks using local computer access with Work Cloud use cloud coordination.

23 

24- **Use approved resources on your computer.** A task using this feature can use permitted local files and tools through a connected computer while you follow along from another device. Keep that computer online and connected for steps that need it.

25 

26- **Manage local execution requirements centrally.** Set supported enterprise requirements in Agent Security for local execution. Review Work Cloud policies separately for cloud execution.

27 

28### Dots

29 

30- **Do engineering work locally.** Investigate bugs, implement changes, and run builds using permitted local repositories, developer tools, and skills.

31 

32- **Coordinate coding work.** Create local Work or Codex threads and control existing local Codex threads.

33 

34- **Use desktop apps and the local browser for supported tasks**, including tasks that require a local sign-in when the cloud browser cannot complete them.

35 

36 

37 

38 

39## Before and after enabling local computer access with Work Cloud

40 

41A task has two parts: coordination and execution. Coordination decides which steps to take and keeps the conversation moving. Execution is the work performed by a tool, such as running a shell command. This feature moves coordination into OpenAI’s cloud. It does not move every tool or file off the computer.

42 

43| **Area** | **Before you enable this feature** | **After you enable this feature** |

44| ------------------------------------------------------------------ | -------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

45| Continuing a local Work conversation | Members choose a local or cloud Work thread, where available. | When members select Cloud, eligible new conversations use cloud coordination and can continue across devices. When members select Local, both coordination and execution continue to happen locally. For enterprises, the in-app Local/Cloud toggle and its default remain unchanged at launch. |

46| Task coordination | The existing local or cloud workflow applies. | OpenAI’s cloud coordinates the Work task. |

47| Steps that need the user’s computer | Local Work can use the computer’s tools and files. Cloud Work cannot use the computer. | The computer still provides those tools and files and must be online and connected. |

48| [Enterprise requirements](https://learn.chatgpt.com/docs/enterprise/managed-configuration) | Existing local requirements and precedence apply to local Work. | Local execution requirements govern the connected computer. Supported Global policy applies to cloud orchestration when managed policy is enabled; Work cloud containers use their own execution configuration and requirements. |

49| Local execution controls | Supported device and operating-system controls apply. | For local execution, MDM and legacy managed-device requirements rank above Agent Security. The system requirements file ranks below it. |

50| Codex | Existing Codex behavior applies. | Codex behavior and conversation history remain separate. |

51 

52 

53 

54 

55## How to set up local computer access

56 

57### Review your policy in Agent Security

58 

59#### Where to review

60 

61Open Admin Console → Agent Security. It replaces Policies & Configuration. Its rollout is independent of local computer access for Work and dots.

62 

63- **Policy settings:** Review the Global baseline and any Local overrides. Keep orchestrator controls, including approvals and web search, in Global; environments cannot override them. Use the dedicated UI controls where available, including **Allowed approval policies** and **Allowed web search modes**, and TOML for other supported fields. See [orchestrator and executor controls](https://learn.chatgpt.com/docs/enterprise/agent-security#choose-controls-and-configuration-fields) for where each setting applies.

64 

65- **Requirements and Defaults:** Requirements set limits users cannot override. Defaults provide starting values within those limits and cannot override a requirement.

66 

67- **Feature access:** Use Workspace settings → Permissions & roles. Local computer access is a separate opt-in for Work and for dots.

68 

69#### What carries over

70 

71When eligible legacy cloud policies migrate, their settings carry over into Global, preserving policy assignments and ordering. Review the migrated policies in Agent Security and use the table below to check your current setup. If you automate policy updates, also review the final row. See [Agent Security](https://learn.chatgpt.com/docs/enterprise/agent-security) for migration guidance.

72 

73| **Your current setup** | **What to do before enabling this feature** |

74| ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

75| Existing cloud policies | Compare the migrated Global baseline with your organization’s required controls. Record the settings, then test that allowed actions succeed and restricted actions are blocked. |

76| Policies delivered only through MDM | MDM delivers policy to devices. Configure supported enterprise requirements for local execution in Agent Security before enabling this feature. For local execution, MDM and legacy managed-device requirements still rank above Agent Security. |

77| Terraform or policy-update scripts | Use the policy API to manage Global settings. To manage Local or Codex Cloud settings, use the Agent Security UI. Existing Global API workflows remain available after migration. Test your scripts and Terraform integrations, and confirm that policy assignments and ordering are unchanged. |

78 

79#### Which policy takes precedence

80 

81These rules apply at different levels. Each arrow below runs from highest to lowest priority.

82 

83- **Across policies:** A higher-priority policy wins over a lower-priority policy, even when the lower-priority policy is more specific.

84 

85- **Within one policy:** For supported execution settings, environment override → Global. An environment without an override inherits the applicable Global setting.

86 

87- **Local requirements:** macOS MDM requirements → legacy `managed_config.toml` fields interpreted as requirements → Agent Security cloud-managed requirements → system `requirements.toml`. The MDM layer applies on macOS; defaults follow separate configuration rules.

88 

89Some requirements have field-specific merge rules. See [Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration) and the [Configuration Reference](https://learn.chatgpt.com/docs/config-file/config-reference) for policy scope, supported fields, and execution scope.

90 

91#### How policy applies to Work and dots

92 

93Shared behavior for Work and dots with local access spans the following scopes:

94 

95- **Task coordination:** When managed policy is enabled, the cloud service coordinating the task enforces supported requirements from Global in Agent Security, such as approval requirements and allowed web-search modes.

96 

97- **Local execution:** When a tool runs on a connected computer, it enforces supported local-execution requirements from Agent Security and applicable device policies, including policies delivered through MDM where supported. These can include filesystem and network restrictions. Only fields supported by the local executor apply; configuring a field in MDM or local `requirements.toml` does not guarantee that it is enforced locally.

98 

99- **Cloud execution:** Work cloud containers and dots’ cloud computers use separate execution controls. Local filesystem and network restrictions do not automatically apply to these cloud environments.

100 

101To configure shared cloud capabilities, go to Admin Console → Permissions & roles → Workspace capabilities → Cloud computer capabilities. These permissions cover both Work Cloud and dots. Review **Cloud browser use** and **Cloud network access** separately; configuring one does not configure the other. Global policies and Codex Cloud overrides do not configure these permissions.

102 

103### Check compatibility and data requirements

104 

105Review eligibility, data coverage, and the controls your organization relies on before enabling either feature. Shared infrastructure does not mean Work and dots have identical support.

106 

107#### Review Work and dots eligibility

108 

109- **Work:** Residency applies only to eligible content and supported workloads, regions, and configurations. EKM covers supported stored content in eligible workspaces. Confirm coverage for your workflow rather than assuming every local-access step or connected integration is covered. Work is not supported with UAE inference residency. See [Data residency and inference residency](https://help.openai.com/en/articles/9903489-data-residency-and-inference-residency-for-chatgpt) and [Work cloud security](https://learn.chatgpt.com/docs/enterprise/chatgpt-work-cloud-security#data-handling-and-retention).

110 

111- **Dots residency:** During the Enterprise beta, dots do not support data residency or inference residency. Eligible workspaces can opt in after acknowledging those limitations; enabling dots does not make their data or processing residency-compliant.

112 

113- **Dots exclusions:** Dots are unavailable for FedRAMP workspaces, workspaces with EKM, and workspaces with inference residency set to AE (UAE). HIPAA workspaces can participate if they meet the other eligibility requirements.

114 

115#### Check data handling and the local-access safeguard

116 

117- **Cloud processing:** Work with local access and dots still use cloud coordination. Conversations, tool results, and other task context do not stay exclusively on the connected computer.

118 

119- **Residency safeguard:** If any cloud policy enables `enforce_residency`, **Allow local computer access** is unavailable for both Work and dots. This safeguard does not set workspace residency or, by itself, disable Work Cloud or dots. Eligible workspaces can still opt in to dots after acknowledging the beta residency limitations; local access remains blocked.

120 

121- **Retention and access to data:** Neither experience provides strict zero data retention. API Zero Data Retention is a separate API control. “Eyes-off” commitments and abuse-monitoring controls are also distinct from zero retention. If a workflow requires no retained data, do not enable it for these experiences.

122 

123Review retention, deletion, and audit coverage for the actual data and tools involved before rollout. For Work, conversations, hosted execution state, files, and connected-app data can follow different lifecycles; deleting a conversation does not remove every related copy.

124 

125#### Check hooks and network compatibility

126 

127- **Supported enterprise hooks:** When managed policy and remote hooks are enabled, Work Cloud with local access and dots use admin-managed remote MCP hooks. The cloud orchestrator calls your connected MCP service at supported task and tool events. Configure `mcp_tool` handlers in Global `requirements.toml`. Work Cloud without local access does not use these hooks; these enterprise hooks are not available for personal accounts.

128 

129- **Work Cloud and dots with local access:** Command/shell, prompt, and agent handlers; hooks from local configuration, plugins, or local directories; environment-scoped hooks; and `SessionEnd` MCP hooks are not supported with cloud orchestration, even when the task executes tools on your computer. If your workflow depends on one of these hooks, continue using a local-only workflow that supports it until you have reviewed an alternative.

130 

131- **Local-only threads in Work and Codex:** When both orchestration and execution are local, existing supported hooks continue to work. Admins can still configure supported managed hooks in Agent Security for this workflow.

132 

133- **Failure and audit coverage:** Test callback connectivity, required events, and failure behavior. An explicit supported denial can block an action, but a `PreToolUse` callback error, timeout, or malformed response can fail the hook without blocking the tool. Hooks do not provide a complete [Compliance API](https://learn.chatgpt.com/docs/enterprise/compliance-api#audit-records-for-local-computer-access-with-work-cloud) audit trail or cover every internal subagent path.

134 

135- **Network and app controls:** Verify the field, delivery path, and execution surface in the [Configuration Reference](https://learn.chatgpt.com/docs/config-file/config-reference). App- or device-enforced controls may still apply when the cloud orchestrator does not consume a setting. Managed HTTP/SOCKS listener ports and non-loopback proxy listeners are unsupported by the cloud runtime; socket-rule support depends on the execution path. Review [Network policy precedence and runtime limits](https://learn.chatgpt.com/docs/enterprise/managed-configuration#network-policy-precedence-and-runtime-limits), then test allowed and blocked actions and required connectivity.

136 

137For questions about local files, cloud execution, or policy precedence, see the [Work admin FAQ](https://learn.chatgpt.com/docs/enterprise/work-admin-faq), [Work local security](https://learn.chatgpt.com/docs/enterprise/chatgpt-work-local-security), and [Work cloud security](https://learn.chatgpt.com/docs/enterprise/chatgpt-work-cloud-security).

138 

139 

140 

141 

142 

143 

144 

145 

146 

147 

148### Enable local computer access

149 

150Grant local computer access separately for Work and dots. Use workspace defaults and supported custom roles to grant access to the intended users or groups.

151 

152Before rollout, review the policies and compatibility requirements above. Reviewing or creating policies in Agent Security is recommended, but the confirmation flow does not require you to create policies before enabling access. Policy migration does not grant local computer access.

153 

154#### Work

155 

1561. As a workspace owner, open **Workspace settings > Permissions & roles**.

157 

1581. Enable **Work Cloud** for the intended users. **Use Codex locally on the ChatGPT desktop app** is not a prerequisite for this feature.

159 

1601. Under **Work Cloud**, turn on **Allow local computer access**. Review the confirmation modal, then open **Agent Security** to review or set policies, or confirm to turn on access.

161 

1621. Have users update to ChatGPT desktop app version 26.929 or higher. The update is required for local computer access with **Work Cloud** to take effect.

163 

1641. Have a member with the intended permissions select **Cloud** in the desktop composer and start a new task. Continue the task from another supported device and verify access to an approved local file or tool while the computer is connected.

165 

166#### Dots

167 

1681. As a workspace owner, open **Workspace settings > Permissions & roles** and enable dots for the intended users, subject to the eligibility requirements above.

169 

1701. Under **Use Dots**, turn on **Allow local computer access**. Review the confirmation modal, then open **Agent Security** to review or set policies, or confirm to turn on access.

171 

1721. Have users update to ChatGPT desktop app version 26.929 or higher. The update is required for local computer access to take effect.

173 

1741. Have users open their dot’s details in the ChatGPT desktop app and choose **Computers**. Find **Your computer** (or the computer’s name), select **Allow**, then confirm with **Allow access**.

175 

1761. Have a member with the intended permissions and a connected computer test a local task with their dot.

177 

178### Review OpenTelemetry and audit coverage

179 

180For Work with local access and dots, distinguish local execution telemetry from cloud audit records when reviewing OpenTelemetry (OTel) coverage. Your local executor can still export supported execution events. Cloud orchestration events do not reach your existing OpenTelemetry collector.

181 

182Use the [Compliance API](https://learn.chatgpt.com/docs/enterprise/compliance-api#audit-records-for-local-computer-access-with-work-cloud) for supported cloud records. Changing the collector endpoint does not restore cloud orchestration events. Compliance API records do not replace every event in the earlier OpenTelemetry stream.

183 

184For dots, use the [Analytics API](https://learn.chatgpt.com/docs/enterprise/analytics-api) for usage and the [Compliance API](https://learn.chatgpt.com/docs/enterprise/compliance-api) for supported audit records. Validate the records your workflow needs alongside local collector delivery; MCP hooks are not a substitute for audit coverage.

185 

186See [Work cloud security](https://learn.chatgpt.com/docs/enterprise/chatgpt-work-cloud-security#audit-and-compliance-visibility) for cloud audit coverage.

187 

188 

189 

190 

191## End-user experience

192 

193For both Work and dots, local steps require the relevant computer to be online and connected, with the ChatGPT desktop app running and signed in to the appropriate account and workspace.

194 

195### Work

196 

197- **Eligible tasks.** Eligible new tasks started in the ChatGPT desktop app with **Cloud** selected can use that computer’s local executor while it is connected and local access is enabled.

198 

199- **Sign-in.** Use Sign in with ChatGPT in the intended workspace. API keys and Codex access tokens do not enable local computer access with Work Cloud.

200 

201- **Computer unavailable.** If the computer is unavailable when a new turn begins, an existing eligible task can continue in a cloud container without that computer’s local files or tools. The container does not enforce enterprise requirements from local execution. A task cannot switch from local execution to the cloud during a turn.

202 

203- **Access turned off.** Turning off local computer access with Work Cloud interrupts currently running turns. Users can start a new turn in an existing cloud conversation; it uses Work Cloud without access to local files.

204 

205- **Existing chats and projects.** Tasks created before this feature is enabled keep their original mode: locally only, or in the cloud without local file access. Start a new task after enabling the feature to use local computer access with Work Cloud.

206 

207- **Local/Cloud setting.** For enterprises, the in-app Local/Cloud toggle and its default remain unchanged at launch. Eligible tasks with **Cloud** selected use cloud coordination and the connected computer for local steps.

208 

209### Dots

210 

211- **Connect a computer.** Open the dot’s details in the ChatGPT desktop app, then choose Computers. Find Your computer (or the computer’s name), select **Allow**, then confirm with Allow access. The computer becomes available for supported local tasks.

212 

213- **Computer offline.** The saved access grant remains, but work requiring that computer cannot proceed while it is unavailable. Offline does not mean access has been revoked.

214 

215- **Remove access.** Choose Revoke access and confirm to remove the dot’s grant for that computer. Disconnected means access has been removed; it is different from Offline.

216 

217- **Admin access changes.** If an admin disables local computer access for dots, an already authorized local task may still be finishing. Do not assume the Work behavior of immediately interrupting running turns applies to dots.

218 

219- **Running tasks.** A running local task does not automatically migrate to the cloud. Connection changes may interrupt work or reload the runtime. The dot may continue subsequent work on its cloud computer, but a local child task that no longer has access cannot resume on that computer and is not automatically moved to the cloud.

Details

73 Set-Content -Encoding utf8NoBOM output.jsonl73 Set-Content -Encoding utf8NoBOM output.jsonl

74```74```

75 75 

76 

77 

78 

79## Audit records for Local computer access with Work Cloud

80 

81Local computer access with Work Cloud has the same Compliance API support as Work Cloud. Records appear under the `conversation_message` and `codex_log` event types. Local execution also generates OpenTelemetry (OTel) events, which you can collect by configuring an OTel collector endpoint. Collect these local events separately from Compliance API records. These sources do not establish a complete record of every local command, file operation, screenshot, approval, or external action.

82 

83When setting up collection:

84 

851. Use `conversation_message` and `codex_log` for supported Work records. Use the API reference for their schemas, action identifiers, and timestamps.

86 

872. Confirm retention and deletion behavior for the workflow.

88 

893. Run a representative task and compare the exported records with the actions performed.

90 

91Policy automation. Use the policy API to manage Global settings. Manage Local and Codex Cloud settings in the Agent Security UI. Existing Global API workflows remain available after migration. Test scripts and Terraform integrations, and confirm that assignments and policy ordering are unchanged. Review policy automation separately from audit-record retrieval. Policy API support does not change Compliance API event coverage.

92 

93Hook-based auditing. Where enabled for your workspace, use admin-defined MCP hooks that run on the cloud coordinator (orchestrator) for supported lifecycle and tool events. Before replacing an existing auditing workflow, test the callback connection, event coverage, and failure behavior. Check these records separately from Compliance API coverage.

94 

76## Confirm the administration boundaries95## Confirm the administration boundaries

77 96 

78Compliance coverage follows the ChatGPT workspace and the products represented97Compliance coverage follows the ChatGPT workspace and the products represented

Details

74appropriate for data warehouses, business intelligence systems, and internal74appropriate for data warehouses, business intelligence systems, and internal

75reporting that shouldn't depend on an interactive dashboard.75reporting that shouldn't depend on an interactive dashboard.

76 76 

77The API reference owns access requirements, routes, schemas,77Use the API reference for access requirements, routes, schemas,

78fields, reporting windows, and pagination. See78fields, reporting windows, and pagination. See

79[Analytics API](https://learn.chatgpt.com/docs/enterprise/analytics-api) for the conceptual integration79[Analytics API](https://learn.chatgpt.com/docs/enterprise/analytics-api) for integration guidance and a link to the reference.

80boundary and the canonical reference link.

81 80 

82## Compliance API81## Compliance API

83 82 

83Local computer access with Work Cloud has the same Compliance API support as Work Cloud, with records under `conversation_message` and `codex_log`. Local execution generates separate OpenTelemetry (OTel) events that you can collect by configuring an OTel collector endpoint. Use these records for supported audit and investigation workflows. Review adoption reporting separately.

84 

85Policy automation. Use the policy API to manage Global settings. Manage Local and Codex Cloud settings in the Agent Security UI. Existing Global API workflows remain available after migration. Test scripts and Terraform integrations, and confirm that assignments and policy ordering are unchanged. Review policy automation separately from reporting integrations.

86 

87Hook-based auditing. Where enabled for your workspace, use admin-defined MCP hooks that run on the cloud coordinator (orchestrator) for supported lifecycle and tool events. Before replacing an existing auditing workflow, test the callback connection, event coverage, and failure behavior. Check these records separately from Compliance API coverage.

88 

89See [Compliance API and audit events](https://learn.chatgpt.com/docs/enterprise/compliance-api#audit-records-for-local-computer-access-with-work-cloud) for supported record types and the distinction between Compliance API records, local telemetry, and hook-based logging. Conversation visibility alone does not establish a complete record of local actions.

90 

84<a id="what-it-measures-1"></a>91<a id="what-it-measures-1"></a>

85<a id="what-you-can-export"></a>92<a id="what-you-can-export"></a>

86<a id="activity-logs"></a>93<a id="activity-logs"></a>


91Use the Compliance API for security, legal, and governance workflows that need98Use the Compliance API for security, legal, and governance workflows that need

92auditable records. It's not an adoption or productivity dashboard.99auditable records. It's not an adoption or productivity dashboard.

93 100 

94The API reference owns event coverage, schemas, permissions,101Use the API reference for event coverage, schemas, permissions,

95filters, retention, and request behavior. See102filters, retention, and request behavior. See

96[Compliance API](https://learn.chatgpt.com/docs/enterprise/compliance-api) for the conceptual103[Compliance API](https://learn.chatgpt.com/docs/enterprise/compliance-api) for integration guidance and a link to the reference.

97integration boundary and the canonical reference link.

98 104 

99<a id="recommended-pattern"></a>105<a id="recommended-pattern"></a>

100 106 

Details

2 2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 4 

5Managed configuration controls supported local runtime behavior for covered capabilities in the ChatGPT desktop app, Codex CLI, and IDE extension. Supported requirements can differ by client and version. Managed configuration doesn't grant ChatGPT workspace access, assign seats, or replace workspace role-based access control (RBAC). Use [Roles and workspace permissions](https://learn.chatgpt.com/docs/enterprise/roles-and-workspace-permissions) for workspace feature access and this page for local runtime policy.5Managed configuration lets enterprise admins set supported requirements and defaults for ChatGPT Work and Codex. Requirements constrain what users and tasks can do. Defaults provide starting values. Support depends on the product, client version, and execution environment.

6 

7For Work with local access and dots, supported Global policy governs the shared cloud orchestrator when managed policy is enabled; applicable local execution requirements govern the connected computer. Work cloud containers retain existing Work Cloud policies, and supported device controls still apply to local execution. Codex keeps its existing configuration behavior. Managed configuration does not grant a workspace seat or feature access. Use [Roles and workspace permissions](https://learn.chatgpt.com/docs/enterprise/roles-and-workspace-permissions) for those controls.

6 8 

7Enterprise admins can control supported local client behavior with:9Enterprise admins can control supported local client behavior with:

8 10 

9- **Requirements**: admin-enforced constraints that users can't override.11- **Requirements**: admin-enforced constraints that users can't override.

12 

10- **Configuration defaults**: system or cloud-managed `config.toml` settings that users can override.13- **Configuration defaults**: system or cloud-managed `config.toml` settings that users can override.

11- **Legacy managed defaults**: `managed_config.toml` starting values applied when a supported client launches. Users can still change settings during a run; the client reapplies these defaults the next time it starts.14 

15- **Legacy managed defaults**: `managed_config.toml` starting values applied when a supported client launches. Users can still change settings during a run. The client reapplies these defaults the next time it starts.

16 

17See [Agent Security](https://learn.chatgpt.com/docs/enterprise/agent-security) for the Global baseline, environment overrides, and orchestrator and executor field lists.

18 

19<a id="agent-security-and-work-sync"></a>

20 

21<span

22 id="agent-security-and-local-computer-access"

23 data-localization-body-anchor

24/>

25 

26## Agent Security and Local computer access with Work Cloud

27 

28Use Agent Security in the Admin Console to manage policies and configuration. It replaces Policies & Configuration. Agent Security will be available to everyone, independently of Local computer access with Work Cloud. Existing policies, assignments, and ordering are preserved. Review your existing policies in Agent Security. Local computer access with Work Cloud is a separate opt-in. See [Agent Security](https://learn.chatgpt.com/docs/enterprise/agent-security) for migration guidance.

29 

30Before moving policy automation to **Agent Security**:

31 

321. Identify affected integrations. Inventory Terraform configurations and scripts that update policies, and record which policies they manage.

33 

341. Use the policy API to manage Global settings. To manage Local or Codex Cloud settings, use the Agent Security UI. Existing Global API workflows remain available after migration. Test your scripts and Terraform integrations, and confirm that policy assignments and ordering are unchanged.

35 

361. Make any required changes and test the automation. Verify that an intended update reaches the correct Agent Security policy and that the resulting controls are enforced.

37 

38Policy migration does not grant local computer access for Work or dots. Reviewing or creating policies is recommended before rollout, but the confirmation flow does not require policy creation to enable access. Before enabling **Allow local computer access**, review the migrated baseline or create a cloud baseline if your policies are currently delivered only through MDM. If `enforce_residency` is enabled in any cloud policy, **Allow local computer access** is disabled for both Work and dots. This safeguard does not configure workspace residency or, by itself, disable Work Cloud or dots.

39 

40Environment overrides vary supported settings within a policy. Within a given policy, the order from highest to lowest is OS-specific environment override → all-OS environment override → Global. A higher-priority policy still wins over a lower-priority policy, even when the lower-priority policy is more specific. Some requirements have field-specific merge rules. Confirm which override editors and fields are available for your workspace.

41 

42When managed policy and remote hooks are enabled, Work Cloud with local access and dots use admin-managed remote MCP hooks on the cloud orchestrator. Configure `mcp_tool` handlers in Global `requirements.toml`. Work Cloud without local access and personal accounts do not use these enterprise hooks. Command/shell, prompt, and agent handlers; hooks from local configuration, plugins, or local directories; environment-scoped hooks; and `SessionEnd` MCP hooks are not supported with cloud orchestration, even when tools execute locally. When both orchestration and execution are local, existing supported hooks continue to work in local-only Work and Codex threads. Admins can still configure supported managed hooks in Agent Security for those workflows. Before relying on these hooks, test callback connectivity, required events, and failure behavior. An explicit supported denial can block an action, but a `PreToolUse` callback error, timeout, or malformed response can fail the hook without blocking the tool. MCP hooks do not provide a complete Compliance API audit trail. See the [Configuration Reference](https://learn.chatgpt.com/docs/config-file/config-reference).

12 43 

13## Configure plugin marketplaces and defaults44## Configure plugin marketplaces and defaults

14 45 

15Define local or Git marketplaces and plugin defaults in system `config.toml`46Define local or Git marketplaces and plugin defaults in system `config.toml`

16or the `config.toml` section of [Managed configuration](https://chatgpt.com/codex/settings/managed-configs).47or the supported configuration defaults in **Agent Security**.

17These settings are defaults, not enforced policy.48These settings are defaults, not enforced policy.

18 49 

19See [Configuration Reference](https://learn.chatgpt.com/docs/config-file/config-reference) for configuration keys,50See [Configuration Reference](https://learn.chatgpt.com/docs/config-file/config-reference) for configuration keys,


55 86 

56### Locations and precedence87### Locations and precedence

57 88 

58Each supported local client composes requirements from lower to higher precedence:89For local execution, requirements are applied from lower to higher priority as follows. This ordering also applies to local steps in Local computer access with Work Cloud:

59 90 

601. System `requirements.toml` (`/etc/codex/requirements.toml` on Unix systems,911. System `requirements.toml` (`/etc/codex/requirements.toml` on Unix systems,

61 including Linux and macOS, or `%ProgramData%\OpenAI\Codex\requirements.toml`92 including Linux and macOS, or `%ProgramData%\OpenAI\Codex\requirements.toml`

62 on Windows).93 on Windows).

632. Enterprise-managed requirements delivered in the cloud config bundle.942. Agent Security requirements delivered in the cloud config bundle.

643. Legacy `managed_config.toml` fields that the local client reinterprets as requirements.953. Legacy `managed_config.toml` fields that the local client reinterprets as requirements.

654. macOS managed preferences (MDM) delivered through964. macOS managed preferences (MDM) delivered through

66 `com.openai.codex:requirements_toml_base64`.97 `com.openai.codex:requirements_toml_base64`.


77requirements. This conversion adds compatibility choices where necessary; use108requirements. This conversion adds compatibility choices where necessary; use

78`requirements.toml` for explicit allowlists.109`requirements.toml` for explicit allowlists.

79 110 

111 

112 

113 

114### Precedence for Local computer access with Work Cloud

115 

116For Work with local access and dots, distinguish Global orchestrator policy from execution policy. Applicable local requirements govern the connected computer. Work cloud containers and dots cloud computers use their own execution configuration and requirements, rather than the managed environment bundle used by other executors.

117 

118For local execution, MDM and legacy managed-device requirements rank above Agent Security. The device's system requirements file ranks below Agent Security. Within each policy, resolve OS-specific environment overrides before all-OS environment overrides, then Global. Policy priority wins over specificity across policies.

119 

120| Control | Local Work without sync and local Codex | Local computer access with Work Cloud |

121| ----------------------------- | ----------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |

122| Enterprise requirements | Follow the local requirements order above. | Apply to local executors. Work cloud containers retain existing Work Cloud policies. |

123| Device execution restrictions | Enforced by supported local controls. | Follow the local requirements order above, including MDM and legacy requirements above Agent Security. |

124| Environment overrides | Use the configuration model for the relevant product. | Within one policy: OS-specific environment override, then all-OS environment override, then Global. A lower-priority policy cannot win through specificity. |

125 

126Requirements impose constraints, while configuration defaults supply starting values. For Work with local access and dots, supported Global policy applies through the shared cloud orchestrator when managed policy is enabled. Applicable local `requirements.toml` requirements govern execution on a connected computer. Work cloud containers and dots cloud computers use their own execution configuration and requirements, rather than the managed environment bundle used by other executor types. Local execution restrictions do not automatically apply to these cloud computers. Review cloud capability permissions and test local and cloud execution separately.

127 

128Keep orchestrator controls, including approvals and web search, in Global. Use the dedicated Allowed approval policies and Allowed web search modes controls where available, and TOML for other supported fields. See the [Configuration Reference](https://learn.chatgpt.com/docs/config-file/config-reference) for the field list and execution scope.

129 

130### Network policy precedence and runtime limits

131 

132Within a given policy, the order from highest to lowest is OS-specific environment override → all-OS environment override → Global. A higher-priority policy still wins over a lower-priority policy, even when the lower-priority policy is more specific. Some requirements have field-specific merge rules. The runtime then enforces the resolved requirements. Consider the field-specific network cases below separately from policy priority.

133 

134These examples compare environment and Global settings within the same policy, with managed networking already configured and no higher-priority policy changing the values. They describe field-specific merge and runtime behavior.

135 

136#### Set different domain access by environment

137 

138For the same domain rule within a policy, an admin environment override can allow a domain denied in Global or deny a domain allowed in Global. Without an environment override, the Global rule is inherited. Other effective Deny rules or access controls can still block a request.

139 

140**How domain rules combine**

141 

142| Global rule | Environment rule | Domain-policy result |

143| ------------- | ---------------- | --------------------------------------------------------------------- |

144| Deny | Allow | Allowed by the environment override, subject to the conditions below. |

145| Allow | Deny | Blocked in that environment. |

146| Allow | Allow | Allowed by these domain rules. |

147| Deny | Deny | Blocked by these domain rules. |

148| Allow or Deny | No override | Inherits the Global rule. |

149 

150These outcomes compare the same domain key within one policy, with no higher-priority policy changing the result. A higher-priority value replaces the same key. Other inherited keys remain. An Allow does not bypass a different matching Deny, such as an inherited wildcard. An empty environment map does not clear inherited rules.

151 

152**Example:** Deny `packages.example.com` in Global and allow it in Development. Development can permit it under the conditions above. Production inherits the Global Deny unless overridden.

153 

154Confirm the deployed executor supports these merge rules. Coverage for regular managed executors still needs validation.

155 

156Orchestrator limits. Managed HTTP/SOCKS listener ports and non-loopback proxy listeners are unsupported by the cloud runtime; socket-rule support depends on the execution path. A local-execution setting in the table below is not a supported Orchestrator configuration.

157 

158#### Other network runtime limits

159 

160All field names below are under `experimental_network` in `requirements.toml`. The arrows show a Global value followed by an environment value within the same policy. These local-execution cases do not establish Orchestrator support for the same settings.

161 

162| **Setting and attempted override** | **Runtime behavior** | **Admin action** |

163| -------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |

164| domains: deny → allow | The environment Allow replaces the same Global domain key on supported paths. Other matching Deny rules still apply. | Test both allowed and blocked requests on the deployed executor. |

165| `managed_allowed_domains_only`: true → false | Do not infer exclusivity behavior from domain-key composition. With effective `enabled = true` and `managed_allowed_domains_only = true`, ordinary commands need effective Allow entries. | Review effective settings and inherited Allow entries. A deny-only policy does not allow the rest of the internet. |

166| `allow_local_binding`: false → true | On the supported Codex Cloud proxy path, an explicit false can prevent upstream-proxy access. A supported higher-priority Cloud override can change it. | Check the source of the effective value and executor support. Do not apply the Cloud default to Local. |

167 

168Proxy activation, exclusivity, upstream-proxy behavior, and Unix-socket rules have executor-specific behavior. Do not generalize domain-key composition to these settings. Verify the effective values and test the deployed runtime. For Codex Cloud local/private connectivity, see [Configure network access requirements](#configure-network-access-requirements).

169 

170#### Verify behavior before rollout

171 

172Test the actual destinations, local listeners, proxy behavior, and socket paths your workflows use. Check an action that should succeed and one that should be blocked in each affected environment. Check that the deployed runtime version supports each setting you use.

173 

80### Cloud-managed requirements174### Cloud-managed requirements

81 175 

82When a user signs in with ChatGPT on a supported plan, supported local clients176When a user signs in with ChatGPT on a supported plan, supported local clients


85workspace access or replace workspace RBAC. Authentication requirements must be179workspace access or replace workspace RBAC. Authentication requirements must be

86[managed locally](#manage-authentication-locally).180[managed locally](#manage-authentication-locally).

87 181 

88Open [Managed configuration](https://chatgpt.com/codex/settings/managed-configs)182Open **Agent Security** in the Admin Console to review and manage cloud

89to create and assign cloud-managed requirements. For example, this policy limits183requirements. Use the migrated global baseline for existing policies. For

184example, this policy limits

90approval and sandbox choices and prompts before a supported shell entry point185approval and sandbox choices and prompts before a supported shell entry point

91runs:186runs:

92 187 


100]195]

101```196```

102 197 

103Confirm that every managed client version supports the keys you select, and198Check that every managed client version supports the keys you select. Assign the policy to the intended users or groups and verify that it takes effect on their supported clients. Use

104test the policy with a small group before an organization-wide assignment. Use

105the configuration reference for the current schema and the administration199the configuration reference for the current schema and the administration

106surface for current assignment behavior.200surface for current assignment behavior.

107 201 


119 213 

120#### How local clients apply cloud-managed requirements214#### How local clients apply cloud-managed requirements

121 215 

216The local loading and cache behavior below describes supported local clients. It does not establish when a changed cloud policy takes effect in an already-running task using Local computer access with Work Cloud. Verify the effective policy before relying on a changed restriction.

217 

122When a user starts a supported local client and signs in with ChatGPT on a218When a user starts a supported local client and signs in with ChatGPT on a

123supported plan, the client first checks for a valid, identity-matched cache219supported plan, the client first checks for a valid, identity-matched cache

124entry. If no valid entry is available, the client fetches the applicable bundle220entry. If no valid entry is available, the client fetches the applicable bundle


138receive it, and document the business reason for any filesystem, network,234receive it, and document the business reason for any filesystem, network,

139approval, or permission-profile restriction.235approval, or permission-profile restriction.

140 236 

141Before expanding the rollout, test an approved workflow and an intentionally237Test an allowed workflow and a blocked workflow with a user who has the intended permissions. Check the effective settings in the supported client. A workspace role or group alone does not enforce a local runtime restriction.

142disallowed workflow with a representative user. Verify the effective settings

143in the supported client rather than assuming a workspace role or group alone

144enforces the local restriction.

145 238 

146### Manage authentication locally239### Manage authentication locally

147 240 


412 505 

413The proxy routes local commands that run inside the sandbox. Browser tools506The proxy routes local commands that run inside the sandbox. Browser tools

414also check managed network denies and exclusive allowlists before accessing507also check managed network denies and exclusive allowlists before accessing

415an origin; this is a separate policy check, not routing browser traffic through508an origin. This is a separate policy check, not routing browser traffic through

416the command proxy. It doesn't filter web search, apps and connectors, MCP509the command proxy. It doesn't filter web search, apps and connectors, MCP

417servers, native-app traffic, Codex service requests, or Codex cloud traffic.510servers, native-app traffic, Codex service requests, or other capability-specific traffic.

418Use the controls for each surface:511Use the controls for each surface:

419 512 

420- Use `allowed_web_search_modes` to restrict web search.513- Use `allowed_web_search_modes` to restrict web search.


423- Use the managed `mcp_servers` approved list to restrict MCP servers.516- Use the managed `mcp_servers` approved list to restrict MCP servers.

424- Use feature requirements such as `browser_use`, `in_app_browser`, and517- Use feature requirements such as `browser_use`, `in_app_browser`, and

425 `computer_use` to restrict browser and computer-use capabilities.518 `computer_use` to restrict browser and computer-use capabilities.

426- Configure Codex cloud network access in its cloud environment settings.519- For supported managed Codex Cloud commands, configure Agent Security requirements and the Cloud environment internet settings separately.

427 520 

428A command domain allowlist does not replace these capability-specific521A command domain allowlist does not replace these capability-specific

429controls.522controls.

430 523 

524On supported managed Codex Cloud execution paths, Agent Security requirements constrain command networking. Codex Cloud environment internet settings apply separately. An allowed domain in Agent Security does not override a restriction in the Cloud environment's internet settings. These command-network controls do not, by themselves, disable hosted web search, apps, or MCP. ChatGPT Work Cloud has separate capability permissions and does not inherit these Agent Security requirements.

525 

526A managed command allowlist applies to commands using the managed proxy. Where policy permits full sandbox escalation and it is approved, that execution can bypass the command proxy. A narrow network grant is different from full sandbox escalation. Configure enforced approval and sandbox requirements for the intended boundary, and test both ordinary and escalated commands.

527 

528> **No effective allowed destinations:** When **Manage Networking** and **Only allow domains added by admins** are On, ordinary managed commands need effective allowed destinations. If no Allow entries are configured or inherited, those commands have no allowed destinations. A deny-only policy does not implicitly allow the rest of the internet. Add required Allow entries and check inherited rules before saving. This restriction applies to the managed command proxy, not every tool or approved full sandbox escalation.

529 

530> **Codex Cloud local/private connectivity:** An explicit Off value for local/private connectivity can prevent Codex Cloud from reaching its upstream proxy, even when the destination domain is allowed. Check the final `allow_local_binding` value and identify which policy or setting supplies it. On the supported Cloud proxy path, this defaults to true only when no applicable requirement, selected network profile, or proxy feature setting supplies a value. An inherited false still counts as an explicit setting. Where supported, set a higher-priority Cloud override to change this value for Codex Cloud without changing the Global value used by Local. This does not add domain Allow entries. Verify executor support before relying on the override. Do not apply this Cloud default to Local.

531 

532Empty environment requirements inherit Global. Manage Networking Off is not the Cloud environment Internet access Off switch. See [Configure networking in the UI](https://learn.chatgpt.com/docs/enterprise/agent-security#configure-networking-in-the-ui).

533 

431### Control browser and Computer Use534### Control browser and Computer Use

432 535 

433Use the `[browser_use]` and `[computer_use]` tables in `requirements.toml` to536Use the `[browser_use]` and `[computer_use]` tables in `requirements.toml` to


462access_approval_lifetime = "turn"565access_approval_lifetime = "turn"

463```566```

464 567 

465Matching origin rules are resolved per field. A matching deny wins; otherwise,568Matching origin rules are resolved per field. A matching deny wins. Otherwise,

466the default origin policy supplies fields that matching rules don't specify.569the default origin policy supplies fields that matching rules don't specify.

467Local configuration can add restrictions but can't relax a managed deny.570Local configuration can add restrictions but can't relax a managed deny.

468Network denies and exclusive managed network allowlists still apply.571Network denies and exclusive managed network allowlists still apply.


601 704 

602### Enforce managed hooks from requirements705### Enforce managed hooks from requirements

603 706 

707When managed policy and remote hooks are enabled, Work Cloud with local access and dots use admin-managed remote MCP hooks on the cloud orchestrator. Configure `mcp_tool` handlers in Global `requirements.toml`. Work Cloud without local access and personal accounts do not use these enterprise hooks. Command/shell, prompt, and agent handlers; hooks from local configuration, plugins, or local directories; environment-scoped hooks; and `SessionEnd` MCP hooks are not supported with cloud orchestration, even when tools execute locally. When both orchestration and execution are local, existing supported hooks continue to work in local-only Work and Codex threads. Admins can still configure supported managed hooks in Agent Security for those workflows.

708 

709Before relying on these hooks, test callback connectivity, required events, and failure behavior. An explicit supported denial can block an action, but a `PreToolUse` callback error, timeout, or malformed response can fail the hook without blocking the tool. MCP hooks do not provide a complete Compliance API audit trail. The following script and directory examples retain their Codex scope.

710 

604Admins can also define managed lifecycle hooks directly in `requirements.toml`.711Admins can also define managed lifecycle hooks directly in `requirements.toml`.

605Use `[hooks]` for the hook configuration itself, and point `managed_dir` at the712Use `[hooks]` for the hook configuration itself, and point `managed_dir` at the

606directory where your MDM or endpoint-management tooling installs the referenced713directory where your MDM or endpoint-management tooling installs the referenced

Details

25| ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |25| ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

26| ChatGPT workspace | Membership, seats, built-in administration roles, and role-based access to supported workspace features | Local agent permissions, Platform API organization access, or permissions in a connected service | [ChatGPT workspace access](https://help.openai.com/en/articles/8266401-managing-members-seat-types-roles-and-access-in-chatgpt-enterprise) and [RBAC](https://help.openai.com/en/articles/11750701-rbac) |26| ChatGPT workspace | Membership, seats, built-in administration roles, and role-based access to supported workspace features | Local agent permissions, Platform API organization access, or permissions in a connected service | [ChatGPT workspace access](https://help.openai.com/en/articles/8266401-managing-members-seat-types-roles-and-access-in-chatgpt-enterprise) and [RBAC](https://help.openai.com/en/articles/11750701-rbac) |

27| Local clients | Runtime behavior for covered capabilities in the ChatGPT desktop app, Codex CLI, and IDE extension, including approvals, filesystem and network access, permission profiles, and allowed integrations | A ChatGPT seat, feature or model entitlement, or access to external data | [Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration) and [Permissions](https://learn.chatgpt.com/docs/permissions) |27| Local clients | Runtime behavior for covered capabilities in the ChatGPT desktop app, Codex CLI, and IDE extension, including approvals, filesystem and network access, permission profiles, and allowed integrations | A ChatGPT seat, feature or model entitlement, or access to external data | [Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration) and [Permissions](https://learn.chatgpt.com/docs/permissions) |

28| Codex cloud | Eligibility to use hosted Codex workflows and the cloud environments made available to the user | Local runtime policy or the repository permissions granted by a source system | [Cloud environments](https://learn.chatgpt.com/docs/environments/cloud-environment) |28| Codex cloud | Eligibility to use hosted Codex workflows and the cloud environments made available to the user | Local runtime policy or the repository permissions granted by a source system | [Cloud environments](https://learn.chatgpt.com/docs/environments/cloud-environments) |

29| Platform API | Organization and project membership, API keys, model access, usage, and billing for API-authenticated work | ChatGPT workspace membership, local-client access, or Codex cloud access | [OpenAI API Platform](https://platform.openai.com/docs/overview) |29| Platform API | Organization and project membership, API keys, model access, usage, and billing for API-authenticated work | ChatGPT workspace membership, local-client access, or Codex cloud access | [OpenAI API Platform](https://platform.openai.com/docs/overview) |

30| Plugins | Plugin availability and installation, bundled skills, connector access, and supported connector actions | Authorization in the connected service or broader local and cloud runtime permissions | [Plugin controls](https://learn.chatgpt.com/docs/enterprise/apps-and-connectors) |30| Plugins | Plugin availability and installation, bundled skills, connector access, and supported connector actions | Authorization in the connected service or broader local and cloud runtime permissions | [Plugin controls](https://learn.chatgpt.com/docs/enterprise/apps-and-connectors) |

31| Connected systems | Which repositories, files, messages, and actions the authenticated account can access in the source system | ChatGPT workspace, plugin, Codex cloud, or Platform API entitlement | The connected service's administration and access controls |31| Connected systems | Which repositories, files, messages, and actions the authenticated account can access in the source system | ChatGPT workspace, plugin, Codex cloud, or Platform API entitlement | The connected service's administration and access controls |


78or SCIM-synced, and a member can receive more than one custom role.78or SCIM-synced, and a member can receive more than one custom role.

79 79 

80For eligible permissions, **Default** inherits the workspace setting, **On**80For eligible permissions, **Default** inherits the workspace setting, **On**

81grants access, and **Off** explicitly denies access. An explicit **Off** in any81grants access through that role, and **Off** does not grant access through that

82applicable role blocks access even when another role grants it. Available82role. Ordinary role permissions combine additively: another assigned role can

83permission states can vary by feature.83still grant access. Review direct assignments and roles received through groups.

84Lockdown Mode and product eligibility apply separately. Available permission

85states can vary by feature.

84 86 

85### Review Work Local and Work Cloud permissions87### Review Work Local and Work Cloud permissions

86 88 

89Configure **Cloud browser use** and **Cloud network access** under **Admin Console > Permissions & roles > Workspace capabilities > Cloud computer capabilities**. These shared capabilities are available to Work Cloud and dots and can be configured independently of Work Cloud access. A Work task still needs Work access and permission to use each capability it requires. Review browser access and code or shell network access separately. Disabling one does not automatically disable the other.

90 

87When your workspace offers **Work Local** and **Work Cloud**, check both the91When your workspace offers **Work Local** and **Work Cloud**, check both the

88workspace default and each applicable custom role. Work is available only to92workspace default and each applicable custom role. Work is available only to

89eligible workspaces, and available controls can differ by plan, workspace93eligible workspaces, and available controls can differ by plan, workspace


112- [Configure role-based access control](https://help.openai.com/en/articles/11750701-rbac)116- [Configure role-based access control](https://help.openai.com/en/articles/11750701-rbac)

113- [Manage groups](https://help.openai.com/en/articles/9083985-group-permissions-in-gpts)117- [Manage groups](https://help.openai.com/en/articles/9083985-group-permissions-in-gpts)

114 118 

119### Review Codex Cloud access and environment administration

120 

121Review these permissions separately:

122 

123| Permission | What it controls |

124| --------------------------------- | ----------------------------------------------------------- |

125| **Use Codex in the cloud** | Access to run tasks in Codex Cloud |

126| **Manage workspace environments** | Creating and editing environments shared with the workspace |

127 

128**Manage workspace environments** sits under **Use Codex in the cloud**,

129requires Cloud access, and is off by default. Review its grants before rollout.

130Members with Cloud access can create and edit their own personal environments

131without the management permission. Access to a shared environment doesn't by

132itself grant authority to change its configuration.

133 

134Verify both workflows with representative identities: a member using an

135environment and the person responsible for managing it. Each still needs the

136appropriate access in connected repositories and services. See

137[Cloud environments](https://learn.chatgpt.com/docs/environments/cloud-environments) for setup and sharing,

138and the [admin rollout guide](https://learn.chatgpt.com/docs/enterprise/admin-setup#step-5-configure-codex-cloud)

139for cloud policy planning.

140 

141 

142 

143 

144### Local computer access with Work Cloud

145 

146A workspace owner can enable **Allow local computer access** for eligible users. Enable Work Cloud for the intended users. **Allow local computer access** is nested under Work Cloud. You do not need to enable **Use Codex locally on the ChatGPT desktop app**. Members must sign in with ChatGPT to the intended workspace. If `enforce_residency` is enabled in any cloud policy, **Allow local computer access** is disabled for both Work and dots. This safeguard does not configure workspace residency or, by itself, disable Work Cloud or dots.

147 

148Before enabling sync, review Agent Security requirements for local execution. If you currently deliver policies only through MDM, review the applicable local policy order before configuring Agent Security. For local execution, MDM and legacy managed-device requirements rank above Agent Security, while the system requirements file ranks below it. Supported Global policy governs cloud orchestration when managed policy is enabled; local execution requirements govern the connected computer. Work cloud containers retain existing Work Cloud policies.

149 

150Use the policy API to manage Global settings. To manage Local or Codex Cloud settings, use the Agent Security UI. Existing Global API workflows remain available after migration. Test your scripts and Terraform integrations, and confirm that policy assignments and ordering are unchanged.

151 

152Set and verify access:

153 

154- Keep the workspace default appropriate for the wider organization.

155 

156- Assign supported custom roles to the users or groups who need access.

157 

158- Review every applicable role. Turning a permission off in one ordinary role does not remove access granted by another.

159 

160- Test access with a member who has the intended permissions.

161 

162Tasks using Local computer access with Work Cloud use cloud coordination and can still run local steps through a connected computer. For enterprises, the in-app Local/Cloud toggle and its default remain unchanged at launch. The sync permission does not grant a seat, connected-app access, operating-system permissions, or unrestricted device access. Local Codex permissions and behavior remain separate. See [Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration) for policy scope and the [Work admin FAQ](https://learn.chatgpt.com/docs/enterprise/work-admin-faq) for compatibility requirements.

163 

164Turning off Local computer access with Work Cloud interrupts currently running turns. Users can start a new turn in an existing cloud conversation. That turn automatically uses Work Cloud without access to local files. Turning off sync does not by itself remove the member's workspace access.

165 

115### Control Computer History access166### Control Computer History access

116 167 

117[Computer History](https://learn.chatgpt.com/docs/customization/computer-history) is off by default for168[Computer History](https://learn.chatgpt.com/docs/customization/computer-history) is off by default for

Details

1# Workspace connections

2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 

5A workspace connection lets an eligible Team Task or @ChatGPT surface use a company-managed app account without each participant connecting a personal account.

6 

7For background, see [how plugin permissions and data sharing work](https://learn.chatgpt.com/docs/plugins?surface=web#how-permissions-and-data-sharing-work).

8 

9Workspace admins authorize supported app accounts, manage saved connections, and control who can find and use them. The provider controls each account’s data and action permissions.

10 

11See [Connecting and managing app accounts](https://help.openai.com/en/articles/20001494-connecting-and-managing-app-accounts-in-chatgpt) for account authorization, and [Creating and managing team tasks in ChatGPT](https://help.openai.com/articles/20001540) for recurring work.

12 

13 

14 

15 

16## How it works

17 

18Use connections for [@ChatGPT](https://learn.chatgpt.com/docs/enterprise/chatgpt-slack-and-teams) or [Team Tasks](https://learn.chatgpt.com/docs/enterprise/teams#create-a-team-task) that need company-managed accounts. Admins approve access; team owners select available connections where permitted. Connections can be reused across eligible teams and workflows.

19 

20A **connection** authenticates an app to an account.

21 

22 

23 

24 

25 

26 

27 

28 

29 

30 

31## Set up a connection

32 

33 

34 

35 

36### Before you begin

37 

38Confirm the app and authentication method are available in your workspace, then assign these responsibilities:

39 

40**Workspace administrator:** With [permission to manage plugins](https://learn.chatgpt.com/docs/enterprise/apps-and-connectors#step-1-enable-plugin-availability) (workspace owner or admin), create and authorize the connection and configure who can find, use, and manage it.

41 

42**Provider administrator:** Provision accounts and approve source-service access. For Notion and Linear, involve the provider administrator; this person may differ from the account authenticating the connection.

43 

44Provider requirements differ: Gmail may need a separate user account, Drive access must be configured in Google, and GitHub uses user-account sign-in at launch.

45 

46**Connection account:** Use an approved account or service identity with only the required resource access. Follow the supported authentication method and avoid reliance on an employee’s personal account. See [Connecting and managing app accounts in ChatGPT](https://help.openai.com/en/articles/20001494-connecting-and-managing-app-accounts-in-chatgpt).

47 

48**Connection owner:** Maintain authorization, coordinate permission changes, and restore failed access. Review resource scope, read/write permissions, and revocation before sharing.

49 

50**Team or workflow owner:** Agree on required resources and actions with the admin, then select and test the connection in the task or @ChatGPT surface.

51 

52 

53 

54 

55 

56 

57 

58 

59 

60 

61### Create a workspace connection

62 

631. In the Admin Console, select the workspace and open Workspace connections &gt; +. Choose the app.

64 

652. Follow the app’s instructions for the offered authentication method. Enable real-time app access if prompted.

66 

673. Authenticate the designated account or complete app installation. Verify the account or installation and requested permissions.

68 

694. Give the saved connection a nickname that describes its access, such as “Project reporting: read access.”

70 

715. Grant access to approved users, teams, or service accounts. Review use and management permissions separately, then hand off to the team or workflow owner for selection and testing.

72 

73 

74 

75 

76<span

77 id="notion--connect-the-intended-workspace-and-content"

78 data-localization-body-anchor

79/>

80 

81<span

82 id="notion-connect-the-intended-workspace-and-content"

83 data-localization-body-anchor

84/>

85 

86 

87 

88 

89### Set up each app

90 

91Use the method offered for your app, then configure access and test it in the intended workflow.

92 

93 

94 

95 

96### Google Drive

97 

98<span

99 id="google-drive--authorize-a-google-account"

100 data-localization-body-anchor

101/>

102 

103<span

104 id="google-drive-authorize-a-google-account"

105 data-localization-body-anchor

106/>

107 

108 

109 

110 

111#### Authorize an account

112 

113Use an approved Google account with access to the required files or shared drives.

114 

1151. Choose Google sign-in, select the account you want to connect, and review the requested access before approving.

116 

1172. Confirm the Google account, then name the connection in ChatGPT. If the workflow creates files, test the destination and recipients’ access.

118 

119<span

120 id="google-drive--use-a-google-service-account"

121 data-localization-body-anchor

122/>

123 

124<span

125 id="google-drive-use-a-google-service-account"

126 data-localization-body-anchor

127/>

128 

129 

130 

131 

132#### Use a service account

133 

134If direct service-account authentication is offered, prepare an approved Google Cloud service account and JSON key. This uses the service account’s resource access, without domain-wide delegation.

135 

1361. Give the service-account email access to the required files, folders, or shared drives. Check read and write permissions separately.

137 

1382. Enter the complete JSON key in the protected credential field. Keep it out of screenshots and support messages.

139 

1403. Save the connection and try reading a file shared with the service account.

141 

142**Use a shared drive to create files.** The service account needs write permission there. It cannot own files in a personal My Drive.

143 

144For missing files, check sharing with the service-account email and the app’s allowed actions in ChatGPT. Folder sharing does not grant access across the Google Workspace domain.

145 

146If Drive offers domain-wide delegation, follow the [delegated-access procedure below](https://learn.chatgpt.com/docs/enterprise/shared-connections#google-workspace-domain-wide-delegation).

147 

148 

149 

150 

151### Gmail

152 

153 

154 

155 

156 

157 

158 

159 

160 

161 

162#### Authorize a mailbox

163 

164If OAuth is offered, authorize the designated Gmail mailbox. Ask IT for a separate user account if the workflow needs its own mailbox.

165 

1661. Choose Google sign-in, select the mailbox, and review the requested access before approving.

167 

1682. Check the saved connection and read an approved test message. If sending is required, test an approved recipient and verify the sender and delivered message.

169 

170Google Groups are not mailboxes. A connected mailbox subscribed to a group can receive its messages but may also expose other mail. Review its contents and allowed actions before sharing.

171 

172<span

173 id="google-workspace--domain-wide-delegation"

174 data-localization-body-anchor

175/>

176 

177<span

178 id="google-workspace-domain-wide-delegation"

179 data-localization-body-anchor

180/>

181 

182 

183 

184 

185#### Set up domain-wide delegation

186 

187Delegation requires a verified requesting employee and uses their delegated Google permissions. Before unattended work, confirm the experience can establish that requester. [Direct Drive service-account access](https://learn.chatgpt.com/docs/enterprise/shared-connections#google-drive-use-a-google-service-account) works differently.

188 

189Use delegation only where offered. It requires Google Workspace super-admin approval and an approved Google Cloud service account with its numeric OAuth client ID and complete JSON key.

190 

1911. Select the apps and actions, obtain their exact required scopes, and have your Google Workspace administrator approve them.

192 

1932. In Google Admin, open **Security &gt; Access and data control &gt; API controls &gt; Manage Domain Wide Delegation**. Authorize the numeric client ID and approved scopes; verify the saved grant.

194 

1953. Enter the JSON key privately in ChatGPT. Test in the experience that will use the connection, with a verified requester and a resource they can access.

196 

197For denied requests, check the requester, approved scopes, and resource access. Do not broaden scopes just to clear an error.

198 

199 

200 

201 

202### GitHub

203 

204<span

205 id="github--select-an-app-installation-and-repositories"

206 data-localization-body-anchor

207/>

208 

209<span

210 id="github-select-an-app-installation-and-repositories"

211 data-localization-body-anchor

212/>

213 

214 

215 

216 

217#### Authorize a user account

218 

219Use an organization-approved GitHub user account, preferably dedicated to this setup, with access to the required repositories.

220 

221**GitHub app sign-in is unavailable for this launch.**

222 

2231. Choose GitHub user-account sign-in and authenticate the designated account.

224 

2252. Review the account and requested access before approving the connection.

226 

2273. Save and test a known repository resource from the intended workflow. Test required write actions separately.

228 

229If a repository is missing, check the designated account’s GitHub access and the app’s allowed actions in ChatGPT.

230 

231 

232 

233 

234### Notion

235 

236 

237 

238 

239#### Prepare a dedicated Notion account

240 

241Ask your Notion administrator to provision an approved dedicated account and grant only the required resource access. Confirm workspace membership. The connection uses this account’s permissions.

242 

243 

244 

245 

246#### Configure the workspace connection

247 

248In Admin Console &gt; Workspace connections, add the Notion plugin. Sign in as the designated account through Notion MCP, select the workspace, and name the connection to identify the workspace and account.

249 

250Save and test a known Notion page from the intended task or surface. Test required writes separately and verify the result.

251 

252 

253 

254 

255### Linear

256 

257 

258 

259 

260#### Prepare a dedicated Linear account

261 

262Ask a Linear administrator to invite the designated account as a guest and limit its access to the teams it needs:

263 

264- Open Settings → Administration → Members → Invite.

265 

266- Enter the designated account’s email address.

267 

268- Under Invite as…, choose Guest.

269 

270- Select only the Linear teams the account should access.

271 

272- Send the invitation and accept it as the designated account.

273 

274See [Linear invitation instructions](https://linear.app/docs/invite-members).

275 

276If the designated account is already a Member, ask a Linear administrator to update its role:

277 

278- Open Settings → Administration → Members.

279 

280- Find the account and click ⋯ → Change role… → Guest.

281 

282- Limit membership to intended teams. Guests have normal member capabilities within those teams. See [Linear roles](https://linear.app/docs/members-roles).

283 

284 

285 

286 

287#### Configure the workspace connection

288 

2891. In Admin Console → Workspace connections, add the Linear plugin.

290 

2912. Sign in as the designated account, select the workspace, and review permissions.

292 

293The connection uses that account’s Linear access. From the task or surface that will use it, confirm that the connection can read an issue in an intended team. Test any required write actions separately.

294 

295 

296 

297 

298### Slack

299 

300 

301 

302 

303<span

304 id="slack--configure-the-chatgpt-in-slack-connection"

305 data-localization-body-anchor

306/>

307 

308<span

309 id="slack-configure-the-chatgpt-in-slack-connection"

310 data-localization-body-anchor

311/>

312 

313 

314 

315 

316<span

317 id="test-an-existing-workspace-connection"

318 data-localization-body-anchor

319/>

320 

321#### Configure the workspace connection

322 

323Confirm the required Slack workspace, channels, app installation, and admin approval. Use the surface’s [shared ChatGPT in Slack connection](https://learn.chatgpt.com/docs/enterprise/chatgpt-slack-and-teams#configure-company-access). Personal Slack connections and the [dots Add to Slack connection](https://learn.chatgpt.com/docs/dots/channels#slack) are separate.

324 

325Test a post in an approved channel and verify its workspace and sender. Test reading and search separately; a successful post does not verify either.

326 

327Team and workflow owners

328 

329 

330 

331 

332## Select and test

333 

334 

335 

336 

337### Configure access and select the connection

338 

339**Workspace administrator:** Configure role access and availability; review use and management permissions separately. Give the workflow owner the connection nickname, account, approved resources/actions, and owner’s contact details.

340 

341**Team or workflow owner:** Select and save the available connection where permitted, then test it in the intended workflow. If missing, have the workspace admin check access and availability.

342 

343<span

344 id="configure-access-and-select-the-credential"

345 data-localization-body-anchor

346/>

347 

348 

349 

350 

351### What each setting controls

352 

353Enabling @ChatGPT in Slack or Microsoft Teams for a connection also enables that connection’s team and service-account access options. These cannot be disabled independently while @ChatGPT is enabled for that connection.

354 

355| **Setting or permission** | **What to check** |

356| -------------------------- | ------------------------------------------------------------------------------------------------------- |

357| External account | Can the designated account or installation access the required resources and actions? |

358| Role access | Can the approved person or service account use the connection? Check management permissions separately. |

359| Availability | Can the intended users, teams, or service accounts find the connection? Check the configured audience. |

360| Team or workflow selection | Is the connection selected and saved for the team or workflow that will use it? |

361 

362 

363 

364 

365### Connections for teams and workflows

366 

367 

368 

369 

370 

371 

372 

373#### Review a team's connections

374 

375Check each plugin’s connection nickname, account, and resource access with the connection owner.

376 

377 

378 

379 

380#### Choose a connection for a workflow

381 

382For **@ChatGPT**, open the [surface's plugin settings](https://learn.chatgpt.com/docs/enterprise/chatgpt-slack-and-teams#configure-company-access) and select the connection. Save, then reopen settings to check the selection.

383 

384For a [Team Task](https://learn.chatgpt.com/docs/enterprise/teams#create-a-team-task), confirm the selected connection for each app. The team service account runs the task; each app’s authentication method determines its external account. Confirm that method supports the task’s run type, especially if it requires a verified employee.

385 

386<span

387 id="test-access-through-the-intended-experience"

388 data-localization-body-anchor

389/>

390 

391 

392 

393 

394### Test the connection in your workflow

395 

3961. Read a known source from the intended workflow. Verify the identity and resource.

397 

3982. Test writes or sends at an approved destination and open the resulting file, record, or message.

399 

4003. Verify that an approved user can use the connection and an unauthorized user cannot. Check recipients’ access to generated files.

401 

402Connection users

403 

404 

405 

406 

407 

408 

409 

410 

411 

412 

413## Use workspace connections

414 

415 

416 

417 

418 

419 

420 

421### Understand the connected account's permissions

422 

423Actions use the connected account’s permissions, which may exceed your personal access. OAuth uses the authorized account; direct service-account access uses that identity. Some methods require a verified requester; see [Google Workspace delegation](https://learn.chatgpt.com/docs/enterprise/shared-connections#google-workspace-domain-wide-delegation).

424 

425 

426 

427 

428 

429 

430 

431 

432 

433 

434### Use an available workspace connection

435 

4361. If offered, choose the designated connection. For managed @ChatGPT surfaces or Team Tasks, confirm the selection with the owner.

437 

438You do not re-enter the designated account’s credentials for each use. If prompted to sign in, verify the connection and account being authorized.

439 

440A workspace connection may read sources you cannot open. Source links do not grant access. Generated files may be private to the connected account, so check recipients’ access before sharing.

441 

442Connection owners and users

443 

444 

445 

446 

447## Manage and troubleshoot

448 

449 

450 

451 

452### Manage changes and remove access

453 

454Review the connection’s nickname, availability, and roles.

455 

456If authorization or provider permissions change, have the connection owner restore access and the workflow owner retest. Renaming a connection does not change external permissions.

457 

458Before disabling a connection, identify affected workflows with their owners. After removal, verify those users and workflows can no longer use it.

459 

460Revoke provider authorization separately; disabling the ChatGPT connection does not replace this step.

461 

462<span

463 id="troubleshoot-by-checking-the-failed-layer"

464 data-localization-body-anchor

465/>

466 

467<span

468 id="find-the-right-person-to-resolve-access"

469 data-localization-body-anchor

470/>

471 

472 

473 

474 

475### Troubleshoot access

476 

477For a missing connection, verify the workspace and use the [access troubleshooting table](https://learn.chatgpt.com/docs/enterprise/shared-connections#find-the-right-person-to-resolve-access) to find who can check role access and audience.

478 

479| **What happens** | **Who can help** |

480| ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |

481| The connection is missing | Your workspace administrator can check your role and the connection’s audience settings. |

482| It is available but the job does not use it | The surface or Team owner can check which workspace connection is configured for the workflow’s app. |

483| A source or action fails | The connection owner can check which identity the connection uses and whether it can access the resource or action. |

484| You can read a summary but not its source | The source owner can check your access to the original page or file. |

485| A recipient cannot open a generated file | The file owner can review its sharing settings. |

486 

487Before retrying a failed write or send, check the destination. The action may have completed despite the error; retrying could create duplicates.

488 

489 

490 

491 

492 

493 

494 

495 

496 

497 

498## Related guides

499 

500- [Plugin controls](https://learn.chatgpt.com/docs/enterprise/apps-and-connectors)

501 

502- [ChatGPT Work cloud security](https://learn.chatgpt.com/docs/enterprise/chatgpt-work-cloud-security)

enterprise/sites.md +213 −0 created

Details

1# Sites administration

2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 

5Workspace admins can enable Sites, choose which plugins they can use, and manage

6published Sites. To build or use a Site, see [Sites](https://learn.chatgpt.com/docs/sites).

7 

8 

9 

10 {"For help with workspace access, publishing, and sharing, see "}

11 [{"Managing ChatGPT Sites for your workspace"}](https://help.openai.com/articles/20001338)

12 {" in the Help Center."}

13

14 

15 

16## Before you begin

17 

18Sign in as a workspace owner or admin and select the workspace you want to

19manage. If tenant policy blocks access to connected apps, a tenant admin must

20enable that access. A tenant is the organization-level admin scope that can

21govern multiple workspaces.

22 

23Sites is in public beta. Available controls depend on your plan, admin role,

24 and feature availability. Review the [Sites

25 limits](https://learn.chatgpt.com/docs/sites#understand-limits-and-unsupported-uses), including data

26 residency limitations, before choosing what data to use.

27 

28These controls apply at different levels:

29 

30| Control | What it governs | Where to manage it |

31| --------------------------- | ------------------------------------------------------- | --------------------------------------------------------------------------------- |

32| Sites access | Who can create and publish Sites | Workspace settings, including **Permissions & roles** where available |

33| Site sharing | Who can visit an individual Site | The Site's sharing controls or **Sites** in workspace administration |

34| Plugin permission for Sites | Which plugins can be used in Sites across the workspace | **Admin** > **Plugins** > the plugin > **Allow site visitors to use this plugin** |

35| Tenant connector access | Whether Sites can request access to connected apps | Tenant administration: **External access** > **ChatGPT Sites** > **Connectors** |

36| Network access | Which external destinations Sites can contact | Workspace administration: **Sites** > **Network access**, where available |

37 

38## Enable Sites and choose sharing permissions

39 

40<WorkflowSteps>

41 

421. Open your workspace settings and review the Sites permissions. Where

43 **Permissions & roles** is available, enable Sites for the roles that need

44 to create and publish them.

452. Review public publishing separately. In Enterprise workspaces, public

46 publishing is off by default and requires an admin to enable it. You can use

47 Sites internally without enabling public publishing.

483. Review external invitations separately from public publishing. Enterprise

49 admins manage **Allow members to invite external visitors to sites** under

50 **Workspace settings** > **Permissions & roles**. Business workspaces don't

51 have a separate external-invitation permission toggle.

524. Ask a member of the intended group to create a Site, keep its audience

53 limited, and verify that they can publish it and share it with the intended

54 visitors.

55 

56</WorkflowSteps>

57 

58A new Site is limited to its owner and workspace admins until its access

59changes. Visitor access and editor access are separate. See

60[Control access and secrets](https://learn.chatgpt.com/docs/sites#control-access-and-secrets) for

61sharing options and [Collaborate on a Site](https://learn.chatgpt.com/docs/sites#collaborate-on-a-site)

62for editor permissions.

63 

64<a id="enable-bring-your-own-plugin"></a>

65 

66## Enable plugin use in Sites

67 

68Plugins in Sites let a Site use each visitor's own connected

69accounts and permissions. Sharing a Site doesn't share the builder's

70connections. Visitors sign in with ChatGPT, review the requested access, and

71choose which connections to allow. Connected features require membership in

72the workspace that owns the Site.

73 

74Each plugin has a separate **Allow site visitors to use this plugin** setting. When an admin

75hasn't saved a choice for that plugin, the default depends on the workspace

76plan:

77 

78- **Business and Education:** Available plugins are allowed in Sites by default.

79- **Enterprise:** Plugins are off for Sites by default. An admin must allow

80 each plugin the workspace needs.

81 

82A saved admin choice overrides the default. Allowing a plugin in Sites

83doesn't override ordinary plugin permissions or tenant restrictions.

84 

85### Allow individual plugins in Sites

86 

871. Open **Admin** > **Plugins** in the intended workspace.

882. Open the plugin you want to allow, such as Notion.

893. In its **Sites** section, review **Allow site visitors to use this plugin**. If it's off and you

90 want to allow the plugin, turn it on and select **Save**. If it's already on,

91 no change is needed.

924. Review each plugin that the Site needs. Confirm that the plugin, its

93 connected app, and the required actions are also available to the intended

94 members through your [plugin controls](https://learn.chatgpt.com/docs/enterprise/apps-and-connectors).

95 

96If **Allow site visitors to use this plugin** is disabled because tenant

97 connector access is off, follow the **External access** link on the plugin

98 page when available. A tenant admin can enable **Connectors** for **ChatGPT

99 Sites**. If you don't have tenant admin access, contact an admin of the tenant

100 named in the notice.

101 

102**Allow site visitors to use this plugin** is one setting per plugin for the whole workspace. It

103doesn't assign access by role, connect accounts for members, or replace

104visitor consent and the connected service's permissions. It also doesn't

105provide separate Sites-specific read and write switches. Review the approved

106actions and permissions before enabling a plugin.

107 

108<a id="enable-tenant-access-to-connected-apps"></a>

109 

110### Check tenant access if plugins are blocked

111 

112Use these steps when the plugin page says tenant connector access is off.

113If access is already on, no tenant change is needed. Turning it on doesn't

114enable individual plugins that a workspace admin has disabled.

115 

1161. Follow the plugin page's **External access** link, or open [Admin Console](https://admin.openai.com)

117 and select the tenant that governs the workspace.

1182. Open **External access**, find **ChatGPT Sites**, and enable **Connectors**

119 if it's off.

1203. Return to the workspace's plugin settings and review **Allow site visitors to use this plugin**

121 for each plugin your team needs.

122 

123**External access** belongs to the tenant view. The workspace view has its own

124**Sites** settings. If you can't find **External access**, check the selected

125admin scope and whether you have tenant admin access. Workspaces without a

126tenant don't have this tenant-level control. If the plugin page says connector

127access isn't available for the tenant yet, changing the plugin's setting

128won't enable it.

129 

130### Verify the visitor experience

131 

132Ask a builder to create a Site using an approved plugin and share it within

133the workspace. Have another member sign in, review access, and connect their

134own account. Confirm that the Site shows data that member is allowed to

135access. Also test continuing without granting plugin access: features that

136require a connection won't work.

137 

138For the builder workflow, see

139[Bring user data to your Site with plugins](https://learn.chatgpt.com/docs/sites#bring-user-data-to-your-site-with-plugins).

140 

141## Configure network access

142 

143Where **Network access** is available, use it to control the external

144destinations a Site can contact. This setting is separate from plugin

145authorization: allowing a hostname doesn't grant access to a connected app.

146 

147### Set the workspace policy

148 

1491. Open **Sites** in workspace administration.

1502. Find **Network access** and open its editor.

1513. Choose **Allow all destinations** or **Allow only listed destinations**.

1524. For a restricted policy, enter one hostname per line under **Allowed

153 destinations**. Use an exact hostname such as `api.example.com`, or

154 `*.example.com` to allow its subdomains. The wildcard doesn't include the

155 bare `example.com` hostname; add that separately if needed.

1565. Select **Save**, reopen the editor, and confirm the saved destinations.

157 Test the Site's required network requests.

158 

159Don't enter URLs, paths, IP addresses, or ports. The editor supports up to

1601,024 destination rules. A `*` rule allows all HTTP destinations. Restricted

161policies block raw TCP connections, including when the list contains `*`.

162 

163### Allow an additional destination for one Site

164 

165To allow a destination for one Site without broadening workspace-wide access:

166 

1671. Find the Site in workspace administration and open **More actions** >

168 **Network access**.

1692. Review the inherited policy.

1703. Enter the approved hostnames under **Additional allowed destinations** and

171 select **Save**.

1724. Reopen the dialog to confirm the saved list, then test the Site.

173 

174These exceptions add to the inherited policy; they don't replace it or

175restrict destinations it already allows. With an unrestricted inherited

176policy, exceptions don't further change access. If the combined destination

177limit is exceeded, the saved exceptions aren't applied; shorten the list and

178save again.

179 

180## Manage workspace Sites

181 

182Open **Sites** in workspace administration to find Sites by URL and review

183their owners. Use the controls available to your role to:

184 

185- **Manage access:** Review or change the Site's audience.

186- **Copy source clone command:** Get the command to inspect a Site's source

187 code, where available.

188- **Transfer ownership:** Assign a new owner when responsibility changes.

189- **Suspend:** Stop access to a Site while you investigate an issue. Use

190 **Reinstate** when you're ready to make it available again.

191- **Delete Site:** Permanently remove a Site when it's no longer needed.

192 

193To stop use of a particular plugin in Sites, turn off its **Allow site visitors

194to use this plugin** setting and verify the affected Site's behavior. If another allowed

195plugin includes the same connector, turning off one plugin doesn't block that

196shared connector through the other plugin. Review all relevant plugins when

197removing connector access.

198 

199## Troubleshoot access

200 

201| Symptom | What to check |

202| ------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

203| A member can't create or publish a Site | Confirm the selected workspace, Sites availability, and the member's workspace permissions. |

204| A plugin works in ChatGPT but is unavailable to a Site | Check **Allow site visitors to use this plugin**, including any saved admin choice, ordinary plugin permissions, and the member's connected account. If tenant policy blocks access, check **External access**. |

205| The plugin's Sites toggle is disabled | Review the notice beside the toggle. If tenant connector access is off, follow **External access** or contact an admin of the tenant named in the notice. |

206| A visitor can open the Site but can't use connected features | Confirm membership in the Site's workspace, the selected account, visitor consent, and permissions in the connected service. An external invitation doesn't grant workspace membership. |

207| The Site can't reach an external service | Check the hostname against the inherited network policy and any Site-specific exceptions. |

208| A network policy save conflicts or can't be confirmed | Select **Refresh and review**, inspect the latest saved policy, then make the intended change. Refresh replaces the unsaved draft. |

209| An admin setting is missing or read-only | Check the selected tenant or workspace, your admin role, and feature availability. The tenant and workspace views expose different controls. |

210 

211When asking an admin for help, include the Site URL, workspace, plugin or

212destination needed, and the exact error. Contact the admin directly to request

213access.

enterprise/teams.md +229 −0 created

Details

1# Set up and manage teams and Team Tasks

2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 

5Teams give people in ChatGPT a shared place to organize work and collaborate. With Team Tasks, members can set up work to run on a schedule or when a specific event occurs, such as preparing a weekly report or summarizing new project updates.

6 

7To get started, learn how to [set up a team](https://learn.chatgpt.com/docs/enterprise/teams#set-up-a-team) and [create a Team Task](https://learn.chatgpt.com/docs/enterprise/teams#create-a-team-task).

8 

9Enterprise admins control who can create teams and manage Team Tasks through two permissions: [Create teams and Create and manage team automations](https://learn.chatgpt.com/docs/enterprise/roles-and-workspace-permissions#set-the-workspace-default-then-create-targeted-custom-roles). Admins can also make [workspace connections](https://learn.chatgpt.com/docs/enterprise/shared-connections#create-a-workspace-connection) available to teams. Each team’s service account and configured connections determine which external accounts its tasks use.

10 

11For more on team membership and tasks, see [Teams in ChatGPT](https://help.openai.com/articles/20001541) and [Creating and managing team tasks in ChatGPT](https://help.openai.com/articles/20001540) in the Help Center.

12 

13<span

14 id="plan-the-teams-access-and-responsibilities"

15 data-localization-body-anchor

16/>

17 

18 

19 

20 

21 

22 

23 

24## How teams and Team Tasks work

25 

26[Workspace connections](https://learn.chatgpt.com/docs/enterprise/shared-connections) let Team Tasks use company-managed app accounts so each team member doesn't need to connect their own account.

27 

28Teams can include people within a department or across functions who share a goal. A team in ChatGPT is separate from a [workspace group created manually or synced through SCIM](https://learn.chatgpt.com/docs/enterprise/groups-and-provisioning#compare-membership-sources).

29 

30Here are examples of scheduled and event-triggered Team Tasks:

31 

32| **Team** | **Who works together** | **Example Team Task** |

33| ---------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |

34| Product launch | Product, marketing, and support teams preparing a release. | When a message arrives in the launch Slack channel, summarize launch progress, milestone changes, and blockers. |

35| Customer success | Account managers and customer success teams supporting customers. | Each Monday, summarize the previous week's customer updates, follow-ups and open questions. |

36| Sales | Sales, solutions engineers, and customer success teams closing deals and onboarding customers | When a deal closes, prepare an onboarding brief with customer goals, commitments, and open questions. |

37| Marketing | Project leads and contributors responsible for a shared project. | Each morning, summarize project progress, blockers, and upcoming deadlines. |

38 

39Team Tasks run in the cloud with the team's service account and configured app connections.

40 

41 

42 

43 

44### Before you begin

45 

46Before setting up a team or its tasks, a workspace owner should enable the following permissions for the intended users through workspace settings or custom roles:

47 

48- [Create teams](https://learn.chatgpt.com/docs/enterprise/roles-and-workspace-permissions#set-the-workspace-default-then-create-targeted-custom-roles): Required to create a team

49 

50- [Create and manage team tasks](https://learn.chatgpt.com/docs/enterprise/roles-and-workspace-permissions#set-the-workspace-default-then-create-targeted-custom-roles): Required to create or edit team tasks

51 

52See [Roles and workspace permissions](https://learn.chatgpt.com/docs/enterprise/roles-and-workspace-permissions#set-the-workspace-default-then-create-targeted-custom-roles).

53 

54- **Workspace admin:** Set up and authorize approved workspace connections, and choose who can find and use them. Check the external account’s data and action permissions. See [Workspace connections](https://learn.chatgpt.com/docs/enterprise/shared-connections#create-a-workspace-connection).

55 

56- **Team owner:** After creating the team, select the available connections it needs where your permissions allow. Before scheduling a Team Task, confirm which external account each connection uses.

57 

58 

59 

60 

61 

62 

63 

64<span

65 id="2-configure-membership-and-assign-maintainers"

66 data-localization-body-anchor

67/>

68 

69 

70 

71 

72 

73 

74 

75### Set up a team

76 

771. **Create the team**. In the intended workspace, open Settings &gt; Teams and select Create team. Enter a Name and optional Description, then select Create.

78 

792. **Review access and invite colleagues**. Before inviting colleagues, review access to earlier runs and generated files; individual tasks and runs cannot have separate access restrictions. Select Invite, search by Name or email, and select Add member or Add members. Members can invite coworkers and remove non-owner members. Same-workspace join links do not require owner approval.

80 

813. **Add the team’s connections.** Workspace connections use centrally managed accounts; team connections share an individually connected account with the team. As team owner, choose a connection you’re allowed to use. Review its data and action permissions, and complete any required sign-in before unattended work. Team ownership doesn’t grant workspace admin permissions. See [Workspace connections](https://learn.chatgpt.com/docs/enterprise/shared-connections#create-a-workspace-connection) for admin setup.

82 

83<span

84 id="create-and-validate-the-first-team-task"

85 data-localization-body-anchor

86/>

87 

88 

89 

90 

91<span

92 id="2-review-the-schedule-actions-and-audience"

93 data-localization-body-anchor

94/>

95 

96<span

97 id="3-validate-access-and-the-first-result"

98 data-localization-body-anchor

99/>

100 

101 

102 

103 

104### Create a Team Task

105 

1061. Open **Scheduled** &gt; **+ New Task**. Select the **Team toggle** and the team that will own the task.

107 

1082. Choose a **Trigger**. For **Schedule**, check the timing and time zone. For a supported event trigger, check its conditions and required connection.

109 

1103. In **Instructions**, describe the goal and expected output. Include success criteria and guardrails. Link task-specific sources, and review shared instructions if the team has a designated [Space](https://learn.chatgpt.com/docs/space). Tasks do not inherit the creator’s personal memories, custom instructions, or chat history.

111 

1124. Review **Plugins** and **Advanced** settings, including **Model**. Choose a model available to the team; this may differ from your personal account. Select **Create**.

113 

1145. Select **Run now** and inspect the result in **Previous runs**. Use **Edit** to change instructions or settings.

115 

116 

117 

118 

119<span

120 id="review-membership-connections-and-destinations"

121 data-localization-body-anchor

122/>

123 

124 

125 

126 

127<span

128 id="handle-departures-and-stop-work-when-needed"

129 data-localization-body-anchor

130/>

131 

132 

133 

134 

135 

136 

137 

138 

139 

140 

141## Teams and Team Tasks FAQ

142 

143<ToggleSection title="Can team membership be imported or kept in sync with workspace groups or Slack/Microsoft Teams channels?">

144 

145No. ChatGPT team membership is separate from workspace groups and Slack or Microsoft Teams channels. It cannot be imported or synced; add and remove members in ChatGPT.

146 

147</ToggleSection>

148 

149<ToggleSection title="Who can create a team, change its membership, and manage its tasks?">

150 

151[Workspace permissions](https://learn.chatgpt.com/docs/enterprise/roles-and-workspace-permissions#set-the-workspace-default-then-create-targeted-custom-roles) control team creation and task creation or updates. The creator becomes team owner without gaining workspace admin rights. Members can invite coworkers and remove non-owner members; same-workspace join links need no owner approval.

152 

153Only the team owner can delete the team. Workspace admins manage approved connections and who can use them.

154 

155</ToggleSection>

156 

157<ToggleSection title="Are these workspace controls enforced across every supported team and task creation or editing entry point?">

158 

159Yes. Create teams governs team creation; Create and manage team automations governs task creation and updates across supported entry points. Team membership and connection permissions still apply.

160 

161</ToggleSection>

162 

163<ToggleSection title="What access does someone gain when they join a team?">

164 

165New members can see all earlier runs and generated files; individual tasks and runs cannot have separate access restrictions. [Pages and Spaces retain their own sharing permissions](https://learn.chatgpt.com/docs/space/collaboration#share-a-page-or-space). Joining a team, you’ll inherit any pages and spaces that are shared with the team. Joining does not share personal chats or connections. Workspace members opening a join link can see the team’s name and member list before joining.

166 

167</ToggleSection>

168 

169<ToggleSection title="How can workspace admins review activity without joining a team?">

170 

171Admins can review activity through the [Compliance API](https://learn.chatgpt.com/docs/enterprise/compliance-api#get-started) and restrict access by role.

172 

173</ToggleSection>

174 

175<ToggleSection title="Whose account does a Team Task use?">

176 

177Team Tasks use the team’s service account and [configured app connections](https://learn.chatgpt.com/docs/enterprise/shared-connections#understand-the-connected-accounts-permissions). A connection’s account determines its data and actions, which may differ from the creator’s or editor’s personal access. See [Connecting and managing app accounts](https://help.openai.com/en/articles/20001494-connecting-and-managing-app-accounts-in-chatgpt).

178 

179</ToggleSection>

180 

181<ToggleSection title="How do plugins and connections work together?">

182 

183[Team plugins and connections](https://learn.chatgpt.com/docs/enterprise/shared-connections#connections-for-teams-and-workflows) serve different purposes: plugins provide tools or skills; connections supply app access. Members need not connect the same account individually.

184 

185</ToggleSection>

186 

187<ToggleSection title="Can workspace connections expose information beyond a member&#x27;s personal access?">

188 

189Yes. Connected accounts may access information a member’s own account cannot. Review team membership alongside each connection’s resource access.

190 

191</ToggleSection>

192 

193<ToggleSection title="Can Team Tasks write to connected systems?">

194 

195Yes, if the tool and connection allow it—for example, posting to Slack. Unattended runs cannot complete a new app sign-in and remain subject to action-approval requirements.

196 

197</ToggleSection>

198 

199<ToggleSection title="What happens when a task creator or team owner leaves?">

200 

201Authorized teammates can edit, pause, or resume shared tasks. Before [offboarding a creator or owner](https://learn.chatgpt.com/docs/enterprise/user-lifecycle#remove-a-departing-employee), review team ownership and required connections.

202 

203Team-owned tasks are designed to persist after the creator leaves, but required connections may lose access.

204 

205Owners must transfer ownership before leaving. Connections the new owner cannot access become disabled for the entire team.

206 

207</ToggleSection>

208 

209<ToggleSection title="What happens to active and queued runs when a task is paused or deleted?">

210 

211Pausing prevents future scheduled and event-triggered runs. Neither pausing nor deleting a task should be relied on to interrupt an active run.

212 

213</ToggleSection>

214 

215<ToggleSection title="What team and task activity can admins audit?">

216 

217The team’s Activity view keeps track of changes. Authorized members can inspect individual runs and results.

218 

219Use supported [Compliance API](https://learn.chatgpt.com/docs/enterprise/compliance-api#confirm-the-administration-boundaries) records to investigate team activity. Confirm which team, task, and connection records are available before relying on them for an audit.

220 

221Use the current [Admin API reference](https://chatgpt.com/public/admin/api-reference) for each event’s exact fields and supported coverage.

222 

223</ToggleSection>

224 

225<ToggleSection title="How are Team Tasks billed?">

226 

227Team Tasks use workspace credits. Team spending limits are separate from user limits.

228 

229</ToggleSection>

Details

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 4 

5ChatGPT workspace usage limits and spend controls apply to eligible activity5ChatGPT workspace usage limits and spend controls apply to eligible activity

6under the plan for the workspace. Depending on the plan, this can include some6under your workspace plan, which can include some Codex activity. They don't

7Codex activity. These controls aren't a universal Codex limit system and don't7cover all Codex usage or govern OpenAI API Platform billing.

8govern OpenAI API Platform billing.

9 8 

10For the complete administration model, see9For the complete administration model, see

11[Roles and workspace permissions](https://learn.chatgpt.com/docs/enterprise/roles-and-workspace-permissions).10[Roles and workspace permissions](https://learn.chatgpt.com/docs/enterprise/roles-and-workspace-permissions).


24exhausted limits can pause access to eligible features. They don't affect23exhausted limits can pause access to eligible features. They don't affect

25source-system permissions or govern Platform API usage or billing.24source-system permissions or govern Platform API usage or billing.

26 25 

26## Ultrafast mode

27 

28GPT-6 Astra Ultrafast is off by default in eligible Enterprise workspaces.

29Workspace owners can enable it through

30[workspace permissions](https://learn.chatgpt.com/docs/enterprise/roles-and-workspace-permissions).

31Existing per-user spend limits apply to eligible Ultrafast usage. Review

32those limits before enabling access because the higher usage rates can

33consume a user's budget faster.

34 

35See [Ultrafast mode](https://learn.chatgpt.com/docs/agent-configuration/speed#ultrafast-mode) for plan

36eligibility and billing details.

37 

27## Use current procedures38## Use current procedures

28 39 

29- [Manage usage limits and overages in ChatGPT Enterprise and Edu](https://help.openai.com/en/articles/20001001)40- [Manage usage limits and overages in ChatGPT Enterprise and Edu](https://help.openai.com/en/articles/20001001)

Details

89| Automatic Account Creation | An employee with an eligible email domain signs in | Workspace administration and the relevant identity flow |89| Automatic Account Creation | An employee with an eligible email domain signs in | Workspace administration and the relevant identity flow |

90| Directory Sync with SCIM | An identity administrator assigns the employee in the identity provider | The identity-provider application or provisioning group |90| Directory Sync with SCIM | An identity administrator assigns the employee in the identity provider | The identity-provider application or provisioning group |

91 91 

92Use manual invitations for a small pilot or a group that isn't managed through92Use manual invitations for users who are not managed through directory synchronization. Use SCIM when workspace membership should follow

93directory synchronization. Use SCIM when workspace membership should follow

94the identity provider as employees join, change teams, or leave.93the identity provider as employees join, change teams, or leave.

95 94 

96Don't enable Automatic Account Creation and SCIM together. Users added through95Don't enable Automatic Account Creation and SCIM together. Users added through


106 105 

107## Connect a provisioning group to the correct workspace106## Connect a provisioning group to the correct workspace

108 107 

109Configure the connection before adding the first pilot employee. A workspace108Configure the connection before provisioning employees. A workspace

110owner and an identity administrator have separate responsibilities:109owner and an identity administrator have separate responsibilities:

111 110 

1121. Have the workspace owner select the intended ChatGPT workspace and inspect1111. Have the workspace owner select the intended ChatGPT workspace and inspect


120 Have the workspace owner approve the resulting members, inherited roles, and119 Have the workspace owner approve the resulting members, inherited roles, and

121 sharing. A matching existing group becomes SCIM-managed, and its membership120 sharing. A matching existing group becomes SCIM-managed, and its membership

122 switches to identity-provider control.121 switches to identity-provider control.

1234. Select a narrowly scoped pilot group and record the approved workspace,1224. Select the groups to provision and record the target workspace, expected members, and group-role assignments.

124 expected employees, and group-role assignments.

1255. Have the workspace owner open **Workspace settings > Identity & access**1235. Have the workspace owner open **Workspace settings > Identity & access**

126 and select **Enable Directory Sync**. If prompted, choose **Use SCIM only124 and select **Enable Directory Sync**. If prompted, choose **Use SCIM only

127 for this workspace** for workspace-level provisioning, or **Keep the option125 for this workspace** for workspace-level provisioning, or **Keep the option


139 Role configuration is available on the web and requires workspace owner137 Role configuration is available on the web and requires workspace owner

140 access.138 access.

1419. Review the group's effective permissions and the default workspace seat1399. Review the group's effective permissions and the default workspace seat

142 type before adding a representative pilot employee.140 type before provisioning employees.

143 141 

144The identity-provider administrator controls application and group membership;142The identity-provider administrator controls application and group membership;

145the workspace owner controls directory synchronization and workspace role143the workspace owner controls directory synchronization and workspace role


296 294 

297### Review connected systems and retained data295### Review connected systems and retained data

298 296 

297If the member used Local computer access with Work Cloud, include the **Allow local computer access** permission and connected computers in the offboarding review. Check workspace and role assignments as well as access in each connected system.

298 

299Turning off Local computer access with Work Cloud interrupts running turns. Users who retain access can start another turn in an existing cloud conversation, which then uses Work Cloud without access to local files. This is distinct from removing workspace membership, revoking credentials, or deleting stored data.

300 

301Review three separate outcomes after revocation:

302 

303- Active tasks. Verify what happens to tasks already running and follow the confirmed Work incident and revocation procedures for any task that may still be active.

304 

305- Connected devices. Verify whether previously connected devices can still access Work.

306 

307- Stored data. Check conversation retention and deletion separately. Removing access does not by itself mean that stored data has been deleted.

308 

299Workspace provisioning doesn't manage every authorization boundary. Ask the309Workspace provisioning doesn't manage every authorization boundary. Ask the

300relevant service owner to review access to:310relevant service owner to review access to:

301 311 

Details

8outputs. Access, context, actions, network behavior, and credit use vary by8outputs. Access, context, actions, network behavior, and credit use vary by

9plan, workspace settings, source permissions, and surface.9plan, workspace settings, source permissions, and surface.

10 10 

11 

12 

13 {"For general usage and availability, see "}

14 [{"ChatGPT Work and Codex"}](https://help.openai.com/articles/20001275)

15 {" in the Help Center."}

16

17 

18 

19## Work across devices

20 

21<a id="what-does-work-sync-enable"></a>

22 

23<span

24 id="what-does-local-computer-access-enable"

25 data-localization-body-anchor

26/>

27 

28### What does Local computer access with Work Cloud enable?

29 

30Eligible members can continue a Work conversation across desktop, mobile, and web. Tasks using Local computer access with Work Cloud use cloud coordination. For enterprises, the in-app Local/Cloud toggle and its default remain unchanged at launch. Individual steps can still execute in the cloud or use approved resources on a connected computer.

31 

32For example, a person can start work with an approved local folder on a laptop, then give follow-up instructions from their phone. Steps that need the laptop still require it to be online and connected.

33 

34### How do we enable it?

35 

36To enable this feature for the intended users:

37 

381. Enable Work Cloud for the intended users. **Allow local computer access** is nested under Work Cloud. You do not need to enable **Use Codex locally on the ChatGPT desktop app**.

39 

401. Review the cloud policy baseline in **Agent Security**.

41 

421. As a workspace owner, open Workspace settings > Permissions & roles and enable **Allow local computer access**. Complete any policy review and consent steps shown for your workspace. Policy migration can happen before setup. Review policies before rollout; creating policies is not required in the access confirmation flow. See [Local computer access for Work Cloud and dots](https://learn.chatgpt.com/docs/enterprise/cloud-local-access) for separate setup and eligibility requirements.

43 

44If `enforce_residency` is enabled in any cloud policy, **Allow local computer access** is disabled for both Work and dots. This safeguard does not configure workspace residency or, by itself, disable Work Cloud or dots.

45 

46<span

47 id="can-we-enable-sync-if-our-policies-are-delivered-only-through-mdm"

48 data-localization-body-anchor

49/>

50 

51### Can we use this feature if our policies are delivered only through MDM?

52 

53Prepare Agent Security policy for supported enterprise requirements during local execution. With Local computer access with Work Cloud enabled, Work cloud containers do not enforce these requirements. MDM delivers requirements to devices.

54 

55For local execution, MDM and legacy managed-device requirements rank above Agent Security. The device's system requirements file ranks below Agent Security. This local policy order does not extend enterprise requirement enforcement to Work cloud containers. Work cloud containers continue to use existing Work Cloud policies.

56 

57### What if we already use cloud policies?

58 

59Use Agent Security in the Admin Console to manage policies and configuration. It replaces Policies & Configuration. Agent Security will be available to everyone, independently of Local computer access with Work Cloud.

60 

61Existing policies, assignments, and ordering are preserved. Review your existing policies in Agent Security. Local computer access with Work Cloud is a separate opt-in. See [Agent Security](https://learn.chatgpt.com/docs/enterprise/agent-security) for migration guidance.

62 

63Use the policy API to manage Global settings. To manage Local or Codex Cloud settings, use the Agent Security UI. Existing Global API workflows remain available after migration. Test your scripts and Terraform integrations, and confirm that policy assignments and ordering are unchanged.

64 

65<span

66 id="which-hooks-are-supported-in-synced-work"

67 data-localization-body-anchor

68/>

69 

70### Which hooks are supported in Local computer access with Work Cloud?

71 

72When managed policy and remote hooks are enabled, Work Cloud with local access and dots use admin-managed remote MCP hooks on the cloud orchestrator. Configure `mcp_tool` handlers in Global `requirements.toml`. Work Cloud without local access and personal accounts do not use these enterprise hooks. Command/shell, prompt, and agent handlers; hooks from local configuration, plugins, or local directories; environment-scoped hooks; and `SessionEnd` MCP hooks are not supported with cloud orchestration, even when tools execute locally. When both orchestration and execution are local, existing supported hooks continue to work in local-only Work and Codex threads. Admins can still configure supported managed hooks in Agent Security for those workflows.

73 

74Before relying on these hooks, test callback connectivity, required events, and failure behavior. An explicit supported denial can block an action, but a `PreToolUse` callback error, timeout, or malformed response can fail the hook without blocking the tool. MCP hooks do not provide a complete Compliance API audit trail.

75 

76### Which policy takes priority?

77 

78Within a given policy, the order from highest to lowest is OS-specific environment override → all-OS environment override → Global. A higher-priority policy still wins over a lower-priority policy, even when the lower-priority policy is more specific. Some requirements have field-specific merge rules.

79 

80For local execution, MDM and legacy managed-device requirements rank above Agent Security. The device's system requirements file ranks below Agent Security.

81 

82For Local computer access with Work Cloud, the new enterprise `requirements.toml` configuration applies to local executors. It does not replace existing Work Cloud policies. Managed HTTP/SOCKS listener ports and non-loopback proxy listeners are unsupported by the cloud runtime; socket-rule support depends on the execution path.

83 

84### Which Agent Security requirements apply to Work Cloud?

85 

86For Work with local access and dots, supported Global policy applies through the shared cloud orchestrator when managed policy is enabled. Applicable local `requirements.toml` requirements govern execution on a connected computer. Work cloud containers and dots cloud computers use their own execution configuration and requirements, rather than the managed environment bundle used by other executor types. Local execution restrictions do not automatically apply to these cloud computers. Review cloud capability permissions and test local and cloud execution separately.

87 

88Keep orchestrator controls, including approvals and web search, in Global. Use the dedicated Allowed approval policies and Allowed web search modes controls where available, and TOML for other supported fields. See the [Configuration Reference](https://learn.chatgpt.com/docs/config-file/config-reference) for the field list and execution scope.

89 

90### What happens if the local computer is unavailable?

91 

92Keep the computer online and connected for steps that need its local files or tools. If the computer is unavailable when a new turn starts, an existing eligible task using local computer access with Work Cloud can continue in a cloud container. The cloud container cannot access files or tools on the unavailable computer. It also does not enforce enterprise requirements from local execution. A task cannot switch from local execution to the cloud during a turn.

93 

94<a id="what-happens-if-an-admin-turns-work-sync-off"></a>

95 

96<span

97 id="what-happens-if-an-admin-turns-local-computer-access-off"

98 data-localization-body-anchor

99/>

100 

101### What happens if an admin turns Local computer access with Work Cloud off?

102 

103Turning off sync interrupts any currently running turn. Users can send a new message to start a new turn in an existing cloud conversation. That turn automatically uses Work Cloud without access to local files.

104 

105Turning off sync does not change data-retention or deletion policies.

106 

107### What happens to existing chats and tasks in projects when sync is turned on?

108 

109Local computer access with Work Cloud applies only to tasks created after you enable sync. Existing tasks, including tasks in projects, keep their original mode: locally only, or in the cloud without access to local files. Start a new task to use this feature.

110 

111### Does this change Codex?

112 

113No. Local computer access with Work Cloud does not change Codex's existing configuration behavior, and conversations using this feature do not appear in Codex history.

114 

115### Is sync suitable for a ZDR deployment?

116 

117No. Local computer access with Work Cloud does not provide strict zero data retention. Data residency and inference residency cover only eligible content and supported workloads, regions, and configurations. Enterprise Key Management (EKM) covers supported stored content in eligible workspaces. Work is not supported with UAE inference residency. Running a step on a connected computer does not make the workflow a ZDR deployment.

118 

11## Overview119## Overview

12 120 

13ChatGPT Work lets users delegate longer, multi-step tasks to ChatGPT. It can gather121ChatGPT Work lets users delegate longer, multi-step tasks to ChatGPT. It can gather


23plan, workspace, and region. See131plan, workspace, and region. See

24[ChatGPT Work and Codex](https://help.openai.com/en/articles/20001275-chatgpt-work-and-codex).132[ChatGPT Work and Codex](https://help.openai.com/en/articles/20001275-chatgpt-work-and-codex).

25 133 

26This FAQ explains how admins manage ChatGPT Work: access and data controls,134For the hosted execution model and security boundaries, see

27compliance and visibility, usage and spend, incident response, and rollout

28practices. For the hosted execution model and security boundaries, see

29[ChatGPT Work Overview](https://learn.chatgpt.com/docs/enterprise/chatgpt-work-overview).135[ChatGPT Work Overview](https://learn.chatgpt.com/docs/enterprise/chatgpt-work-overview).

30 136 

31## Core administrative controls137## Core administrative controls


163 269 

164### How does ChatGPT Work support enterprise privacy and data commitments?270### How does ChatGPT Work support enterprise privacy and data commitments?

165 271 

166ChatGPT Work uses the privacy, security, and data commitments applicable to the272ChatGPT Work uses the privacy, security, and data commitments applicable to the customer's ChatGPT workspace, subject to plan, configuration, surface, feature, and region. For ChatGPT Enterprise, this includes [no training on business data by default](https://help.openai.com/en/articles/8983130-what-if-i-want-to-keep-my-history-on-but-disable-model-training), encryption in transit and at rest, workspace-level access controls, and supported audit logging.

167customer's ChatGPT workspace, subject to plan, configuration, surface, feature,

168and region. For ChatGPT Enterprise, this includes

169[no training on business data by default](https://help.openai.com/en/articles/8983130-what-if-i-want-to-keep-my-history-on-but-disable-model-training),

170encryption in transit and at rest, workspace-level access controls, and

171supported audit logging.

172 273 

173Coverage for data residency, inference residency, HIPAA, or a Business Associate274For Work with local access, residency applies only to eligible content and supported workloads, regions, and configurations; EKM covers supported stored content in eligible workspaces. Work is not supported with UAE inference residency. This experience does not provide strict zero data retention. Dots have separate beta exclusions and do not support data or inference residency. See [compatibility and data requirements](https://learn.chatgpt.com/docs/enterprise/cloud-local-access#check-compatibility-and-data-requirements). HIPAA and Business Associate Agreement coverage depend on the features and agreement in use.

174Agreement isn't universal. Confirm current

175[data and inference residency guidance](https://help.openai.com/en/articles/9903489-data-residency-and-inference-residency-for-chatgpt)

176and the customer's agreement for the features and regions in use.

177 275 

178Connected services have their own retention, logging, access, residency, and276Connected services have their own retention, logging, access, residency, and compliance requirements. When ChatGPT Work uses plugins, repositories, or third-party systems, evaluate both the ChatGPT workspace controls and the connected system's controls.

179compliance requirements. When ChatGPT Work uses plugins, repositories, or third-party

180systems, evaluate both the ChatGPT workspace controls and the connected

181system's controls.

182 277 

183For Codex activity, enterprise controls can extend to development environments,278For Codex activity, enterprise controls can extend to development environments, repositories, configured tools, and related activity. Review [Admin rollout guide](https://learn.chatgpt.com/docs/enterprise/admin-setup) and [Governance](https://learn.chatgpt.com/docs/enterprise/governance) alongside the workspace controls.

184repositories, configured tools, and related activity. Review

185[Admin rollout guide](https://learn.chatgpt.com/docs/enterprise/admin-setup) and

186[Governance](https://learn.chatgpt.com/docs/enterprise/governance) alongside the workspace controls.

187 279 

188### What data is stored, retained, or deleted?280### What data is stored, retained, or deleted?

189 281 


236or data-lake system when your organization requires longer retention. See the328or data-lake system when your organization requires longer retention. See the

237[OpenAI Compliance Platform guide](https://help.openai.com/en/articles/9261474-compliance-api-for-chatgpt-enterprise-edu-and-chatgpt-for-teachers).329[OpenAI Compliance Platform guide](https://help.openai.com/en/articles/9261474-compliance-api-for-chatgpt-enterprise-edu-and-chatgpt-for-teachers).

238 330 

331Enabling Local computer access with Work Cloud changes what your existing OpenTelemetry (OTel) collector receives. Your local executor can still export supported execution events. Cloud orchestration events do not reach your existing OpenTelemetry collector.

332 

333Use the Compliance API for supported cloud records. Changing the collector endpoint does not restore cloud orchestration events. Compliance API records do not replace every event in the earlier OpenTelemetry stream. See [Review OpenTelemetry and audit coverage](https://learn.chatgpt.com/docs/enterprise/cloud-local-access#review-opentelemetry-and-audit-coverage).

334 

239### Can unusual behavior, failures, or usage spikes be detected quickly?335### Can unusual behavior, failures, or usage spikes be detected quickly?

240 336 

241Workspace analytics, compliance logs, and connected monitoring tools help337Workspace analytics, compliance logs, and connected monitoring tools help


268 364 

269Governance spans three related but separate layers:365Governance spans three related but separate layers:

270 366 

271- **ChatGPT Work access controls** determine who can use ChatGPT Work on367- **ChatGPT Work access controls** determine who can use Work and whether local-thread sync is available.

272 each surface.368 

273- **Workspace Agent controls** determine who can build, publish, share,369- **Workspace Agent controls** determine who can build, publish, share, schedule, or configure reusable agents and shared connections, where available.

274 schedule, or configure reusable agents and shared connections, where370 

275 Workspace Agents are available.371- **Agent Security** holds the global cloud policy baseline for supported Work and Codex controls. For Work with local access and dots, supported Global policy applies to cloud orchestration when managed policy is enabled. Local execution requirements govern the connected computer; cloud computers use their own execution configuration and requirements. Codex retains its existing configuration behavior.

276- **Codex managed configuration** governs covered local Codex runtime behavior

277 and doesn't configure hosted ChatGPT Work.

278 372 

279Managed configuration constrains supported runtime behavior. It doesn't grant373[Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration) constrains supported runtime behavior. It doesn't grant workspace access, replace RBAC, or revoke a user's workspace access. These layers aren't one uniform ChatGPT Work policy surface. Analytics and compliance logs provide more visibility within their documented product and event scopes.

280workspace access, replace RBAC, or revoke a user's workspace access. These

281layers aren't one uniform ChatGPT Work policy surface. Analytics and compliance logs

282provide additional visibility within their documented product and event

283scopes.

284 374 

285For supported local Codex clients, enterprise administrators can apply375For supported local Codex clients, enterprise administrators can apply

286[managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration) and376[managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration) and


441 531 

442## Recommended admin actions532## Recommended admin actions

443 533 

444- **Confirm who should have access first.** Decide whether to restrict access to534- **Choose who needs ChatGPT Work.** Identify the users or groups and the tasks they need to complete, then grant access through the supported workspace and role settings.

445 ChatGPT Work, run a pilot, or roll it out broadly. Many organizations start535- **Set roles and permissions.** In **Permissions & roles**, grant ChatGPT Work access to the intended users or groups. Check all assigned roles to confirm their effective access.

446 with power users, champions, or teams with clear use cases.

447- **Review roles and permissions.** In **Permissions & roles**, confirm which

448 users or groups can access ChatGPT Work. Match access to business need, readiness,

449 and governance expectations.

450- **Review plugins and data sources.** ChatGPT Work is most useful with approved536- **Review plugins and data sources.** ChatGPT Work is most useful with approved

451 business context such as files, email, calendars, Slack, or CRM. Review537 business context such as files, email, calendars, Slack, or CRM. Review

452 enabled plugins, their audiences, and whether app policies still match how users538 enabled plugins, their audiences, and whether app policies still match how users


455 higher-value tasks such as research, synthesis, analysis, file creation,541 higher-value tasks such as research, synthesis, analysis, file creation,

456 workflow updates, and reusable outputs. Use Chat for quick questions,542 workflow updates, and reusable outputs. Use Chat for quick questions,

457 light rewrites, or brainstorming.543 light rewrites, or brainstorming.

458- **Review credit and usage controls.** Because ChatGPT Work can perform longer-running544- **Set credit and usage controls.** ChatGPT Work can use more credits than a standard Chat conversation because tasks can run longer. Configure workspace defaults, group defaults, and user overrides. Give users guidance on choosing the right model and effort for each task.

459 tasks, it can use more credits than a standard Chat conversation. Review

460 defaults, group defaults, user overrides, and internal guidance about

461 matching effort to business value.

462- **Identify your first high-value workflows.** Start with clear, reviewable545- **Identify your first high-value workflows.** Start with clear, reviewable

463 outcomes such as customer briefings, recurring reports, research synthesis,546 outcomes such as customer briefings, recurring reports, research synthesis,

464 tracker updates, or polished documents and slides.547 tracker updates, or polished documents and slides.

465- **Prepare champions and support teams.** Give champions, training leads,548- **Prepare champions and support teams.** Give champions, training leads,

466 and support teams rollout resources first so they can answer questions,549 and support teams rollout resources first so they can answer questions,

467 collect feedback, and model effective delegation.550 collect feedback, and model effective delegation.

468- **Communicate review and approval expectations.** Remind users that people551- **Explain review and approval expectations.** Tell users to check outputs and important claims before using or sharing them, and to approve consequential actions before they run.

469 remain responsible for reviewing outputs, validating important claims, and

470 approving consequential actions before they are shared or used.

471- **Monitor adoption and adjust.** Review usage, feedback, credit consumption,552- **Monitor adoption and adjust.** Review usage, feedback, credit consumption,

472 and delegated work after rollout. Use the findings to adjust access,553 and delegated work after rollout. Use the findings to adjust access,

473 guidance, training, and expansion.554 guidance, training, and expansion.

Details

26 26 

27## Set a clear starting experience for employees27## Set a clear starting experience for employees

28 28 

29Review [Models settings](https://help.openai.com/en/articles/8411955) for your29Configure [Models settings](https://help.openai.com/en/articles/8411955) for your

30workspace before inviting a pilot group. Workspace owners and admins can30workspace before granting access. Workspace owners and admins can

31configure separate starting defaults for Chat and for Work and Codex. Where31configure separate starting defaults for Chat and for Work and Codex. Where

32supported, choose a starting model, reasoning level, speed, and new-chat32supported, choose a starting model, reasoning level, speed, and new-chat

33behavior for Chat, Work, and local Codex surfaces.33behavior for Chat, Work, and local Codex surfaces.


52and confirm access on each client. Choosing a model in local configuration52and confirm access on each client. Choosing a model in local configuration

53doesn't override workspace controls.53doesn't override workspace controls.

54 54 

55## GPT-6.1 Sol in Enterprise

56 

57GPT-6.1 Sol has its own planned rollout. The plan keeps it off by default in

58Enterprise and Edu until an administrator enables it.

59Check your [workspace model settings](https://help.openai.com/en/articles/8411955)

60and the [Codex model rollout](https://learn.chatgpt.com/docs/models#gpt-61-sol) before changing a

61workspace default. Choosing a model in local configuration doesn't grant access.

62 

55## GPT-6 Astra in Enterprise63## GPT-6 Astra in Enterprise

56 64 

57During the initial rollout, your organization must have Daybreak access before65Astra is off by default at launch in eligible ChatGPT Enterprise and Edu

58an administrator can enable Astra. Astra is off by default for ChatGPT66workspaces. A workspace owner must enable access through workspace model

59Enterprise for the first two weeks after launch. Administrators in eligible67settings. Access does not automatically turn on after two weeks.

60workspaces can enable Astra for users or groups68Existing Early Model Access settings do not grant access to Astra.

61across Chat, Work, and Codex. Existing product eligibility still applies. Review your69Workspace owners can enable Astra for the workspace or specific roles across

70Chat, Work, and Codex. Existing product eligibility still applies. Review your

62[workspace model settings](https://help.openai.com/en/articles/8411955) and71[workspace model settings](https://help.openai.com/en/articles/8411955) and

63confirm availability on each client used by your pilot group.72confirm availability on each client your users rely on.

64 73 

65Enabling access and choosing a starting model are separate decisions. Check the74Enabling access and choosing a starting model are separate decisions. Check the

66applicable seat, role, and billing arrangement before setting Astra as a default.75applicable seat, role, and billing arrangement before setting Astra as a default.

Details

1# Cloud environments1# Codex Cloud (Legacy)

2 2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 4 

5**Codex Cloud (Legacy)** continues to support environments for Code Review and

6 the Linear and GitHub integrations.

7 

8For the current experience on desktop and web, see the [Cloud environments

9guide](https://learn.chatgpt.com/docs/environments/cloud-environments).

10 

5Use environments to control what Codex installs and runs during cloud chats. For example, you can add dependencies, install tools like linters and formatters, and set environment variables.11Use environments to control what Codex installs and runs during cloud chats. For example, you can add dependencies, install tools like linters and formatters, and set environment variables.

6 12 

7Configure environments in [Codex settings](https://chatgpt.com/codex/settings/environments).13Configure environments in [Codex settings](https://chatgpt.com/codex/settings/environments).


10 16 

11## How Codex cloud chats run17## How Codex cloud chats run

12 18 

13Here's what happens when you submit a prompt:19When you submit a task:

14 20 

151. Codex creates a container and checks out your repo at the selected branch or commit SHA.211. Codex creates a container and checks out your repo at the selected branch or commit SHA.

162. Codex runs your setup script, plus an optional maintenance script when a cached container is resumed.222. Codex runs your setup script, plus an optional maintenance script when a cached container is resumed.


85Internet access is available during the setup script phase to install dependencies. During the agent phase, internet access is off by default, but you can configure limited or unrestricted access. See [agent internet access](https://learn.chatgpt.com/docs/cloud/internet-access).91Internet access is available during the setup script phase to install dependencies. During the agent phase, internet access is off by default, but you can configure limited or unrestricted access. See [agent internet access](https://learn.chatgpt.com/docs/cloud/internet-access).

86 92 

87Environments run behind an HTTP/HTTPS network proxy for security and abuse prevention purposes. All outbound internet traffic passes through this proxy.93Environments run behind an HTTP/HTTPS network proxy for security and abuse prevention purposes. All outbound internet traffic passes through this proxy.

94 

95## Agent Security command-network requirements

96 

97On supported managed Codex Cloud execution paths, Agent Security requirements constrain command networking. Codex Cloud environment internet settings apply separately. An allowed domain in Agent Security does not override a restriction in the Cloud environment's internet settings. These command-network controls do not, by themselves, disable hosted web search, apps, or MCP. ChatGPT Work Cloud has separate capability permissions and does not inherit these Agent Security requirements.

98 

99A managed command allowlist applies to commands using the managed proxy. Where policy permits full sandbox escalation and it is approved, that execution can bypass the command proxy. A narrow network grant is different from full sandbox escalation. Configure enforced approval and sandbox requirements for the intended boundary, and test both ordinary and escalated commands. See [Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration#configure-network-access-requirements) for inheritance and proxy limits.

Details

1# Cloud environments

2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 

5Codex Cloud runs coding tasks in the cloud, so work can continue while your

6computer is asleep. Use it on the web, on mobile, or in the desktop app to edit

7code, run commands, and review results.

8 

9A **cloud environment** is the reusable setup that tasks use: repositories,

10dependencies, tools, and access settings. Codex inspects your repositories,

11prepares the setup, and tests it with you. Each new task gets its own isolated

12workspace from the published environment.

13 

14For an introduction, see the [Codex Cloud overview](https://learn.chatgpt.com/docs/cloud).

15 

16**Codex Cloud (Legacy)** continues to support Code Review and the Linear and

17 GitHub integrations. We plan to deprecate this experience. See the [legacy

18 guide](https://learn.chatgpt.com/docs/environments/cloud-environment) to create and manage

19 environments for these workflows.

20 

21## Start a task in Codex Cloud

22 

23On the web or in the [desktop app](https://learn.chatgpt.com/docs/app), choose **Work in** > **Cloud**

24and select a published environment. Describe what you want Codex to do and send

25the request. If you need a new setup, [create an environment](#create-and-publish-an-environment).

26 

27Enterprise admins can [review workspace access](https://learn.chatgpt.com/docs/enterprise/admin-setup#step-5-configure-codex-cloud)

28before rolling out Codex Cloud.

29 

30## Create and publish an environment

31 

32On the web or in the [desktop app](https://learn.chatgpt.com/docs/app), sign in with your ChatGPT account:

33 

341. In a new task, choose **Work in** > **Cloud**, open **Select environment**,

35 and select **Create environment**.

362. Select the GitHub repositories to check out. Connect GitHub if prompted.

373. Select **Get started**. Codex inspects the repositories, installs dependencies

38 and tools, and tests the workflow.

394. Supply missing access or information when asked. You can also request

40 specific versions, commands, or services.

415. Review the setup report, configuration, and files. Resolve unfinished work,

42 save changes, and select **Publish**.

436. After **Environment published** appears, select **Start a new task** and

44 describe what you want Codex to do.

45 

46You can also start from **Settings** > **Codex Cloud** > **Environments** >

47**Create environment**.

48 

49 

50 

51

52 

53> Illustration: Desktop app environment picker with Create environment and Manage environments below the saved environments

54 

55 

56 

57 

58 

59Saving stores configuration; some settings apply to the active setup

60 immediately. Publishing captures the prepared filesystem for new tasks.

61 Sharing controls who can use the environment.

62 

63<a id="default-universal-image"></a>

64<a id="automatic-setup"></a>

65<a id="manual-setup"></a>

66 

67## Customize installation and startup

68 

69Codex identifies runtimes, package versions, tools, and services from your

70repositories. Refine the setup in the conversation; you don't need to write an

71installation script yourself.

72 

73Codex can record the tested setup in two fields:

74 

75- **Install script:** commands to install dependencies and prepare development assets.

76- **Start skill:** instructions to start services and check that they're ready.

77 

78 

79 

80

81 

82> Illustration: Cloud environment setup conversation beside repository, script, network, secret, variable, privacy, and Advanced controls, with Save draft and Publish actions

83 

84 

85 

86 

87 

88<a id="container-caching"></a>

89 

90## Reuse and update saved state

91 

92- **New task:** starts from the published environment's prepared filesystem.

93- **Existing task:** continues with its own saved files, including uncommitted

94 changes and installed tools.

95- **Repository refresh:** runs automatically in the background, preserving

96 dependency caches without rerunning installation or startup commands.

97 

98To update the reusable setup, open **Settings** > **Codex Cloud** > **Environments**.

99From the environment's **…** menu, select **Edit**. Describe the change,

100let Codex prepare and test it, save changes, and select **Republish**. Start a

101new task to use the update; existing tasks retain their own state.

102 

103 

104 

105

106 

107> Illustration: Codex Cloud settings with Environments and Personal vault tabs and the Edit menu open for a published environment

108 

109 

110 

111 

112 

113Commit important work or save the output you need. Saved state doesn't replace

114source control.

115 

116<a id="give-setup-access-to-private-dependencies"></a>

117<a id="prepare-access-to-dependencies-and-services"></a>

118<a id="environment-variables-and-secrets"></a>

119 

120## Configure environment variables and network secrets

121 

122Codex identifies missing configuration and asks for values it can't infer.

123In the environment configuration, select **Manage** beside **Environment variables**

124or **Network secrets**. Choose how to supply each value:

125 

126| Configuration | Use it for | Delivery |

127| -------------------- | --------------------------------------------- | ---------------------------------------------------------------------------------------------- |

128| Environment variable | A value a program must read directly | Passed directly to programs in the environment. |

129| Network secret | A credential sent to a specific HTTPS service | Programs receive a placeholder; the proxy substitutes the real value for allowed destinations. |

130 

131For network secrets, set **Key**, **Value**, and **Allowed domains**. Use a

132different key from any direct variable. Substitution works for HTTPS on port 443,

133during setup and tasks; it doesn't put the raw credential in a local process or

134file.

135 

136Saving environment-owned network secrets adds their destinations to restricted

137internet access. Direct variables and personal values don't add destinations.

138Review the [saved network policy](#connect-to-services) before testing.

139For workspace requirements, see [Agent Security](#agent-security).

140 

141 

142 

143

144 

145> Illustration: Manage secrets dialog with a masked registry token, Environment ownership, and packages.example.com as its allowed destination

146 

147 

148 

149 

150 

151### Supply personal values

152 

153Use Personal vault to save your own environment variables and network secrets

154for cloud environments in your workspace.

155 

156A shared environment can request values that each person supplies from their

157own account. Sharing the environment shares these requirements, not your

158personal credentials.

159 

160When prompted, enter required values in **Add personal secrets** and select

161**Save and start**. Optional values can remain unset.

162 

163To manage values in advance:

164 

1651. Open **Settings** > **Codex Cloud**, then select the **Personal vault** tab.

1662. Select **Add**, choose **Environment variable** or **Network secret** under

167 **Type**, and enter the matching **Key** and your **Value**.

1683. Under **Applies to**, choose **All environments** or **Selected environments**,

169 then **Save**.

170 

171 

172 

173

174 

175> Illustration: Personal vault dialog adding the APP_MODE environment variable with the value development for all environments

176 

177 

178 

179 

180 

181Only requested values reach a task. A value for a specific environment takes

182precedence over a general default. Personal network secrets use the environment's

183allowed destinations and substitute placeholders in the same way.

184 

185<a id="share-an-environment-with-your-workspace"></a>

186 

187## Share within an Enterprise workspace

188 

189Share a prepared setup so colleagues can start their own tasks from it:

190 

1911. Open the environment's configuration.

1922. Under **Privacy** > **Who can use**, choose your workspace.

1933. Save the change. Publish the environment if you haven't already.

194 

195Choose **Only me** under **Who can use** to keep the environment private.

196Each task has separate working files; access to the setup doesn't grant access

197to someone else's task or permission to edit the environment.

198 

199Review prepared files and environment-owned credentials before sharing. Cloud

200identities and VPN connections can also provide shared service access.

201Repository access and personal connections depend on the account running the task.

202 

203**Use Codex in the cloud** controls task access. **Manage workspace environments**

204controls creating and editing environments shared with the workspace. See

205[Roles and workspace permissions](https://learn.chatgpt.com/docs/enterprise/roles-and-workspace-permissions#review-codex-cloud-access-and-environment-administration).

206 

207## Agent Security

208 

209The environment's [internet-access settings](#connect-to-services) define which

210domains its VM can reach. VPN settings connect that VM to services on a private

211network.

212 

213In Enterprise workspaces, admins use

214[Agent Security](https://learn.chatgpt.com/docs/enterprise/agent-security) to configure workspace

215requirements for agent behavior, managed execution networking, and supported

216tool use. These requirements apply alongside the domain settings saved with

217each environment. See Agent Security for Global policies and supported Codex

218Cloud overrides.

219 

220<a id="internet-access-and-network-proxy"></a>

221 

222## Connect to services

223 

224Configure access to the package registries, APIs, and other services your

225workflow needs:

226 

2271. In the environment configuration, turn on **Allow Codex to access internet**.

2282. Under **Allow domains**, choose **Package managers** or **Custom domains only**,

229 then add required hosts under **Additional allowed domains**. Use

230 **All (unrestricted)** when the workflow needs broader access.

2313. Save and test the services during setup. Publish or republish, then verify

232 access in a new task.

233 

234For workspace requirements, see [Agent Security](#agent-security). Allowing a

235destination doesn't supply credentials or grant permissions in that service.

236 

237 

238 

239### Domains included in the Package managers preset

240 

241 

242 

243The **Package managers** preset allows these registries, repositories, and

244download hosts:

245 

246- **npm and Yarn:** `registry.npmjs.org`, `registry.yarnpkg.com`

247- **PyPI and PyTorch:** `pypi.org`, `files.pythonhosted.org`, `download.pytorch.org`, `download-r2.pytorch.org`

248- **Rust:** `crates.io`, `index.crates.io`, `static.crates.io`, `static.rust-lang.org`

249- **Go:** `proxy.golang.org`, `sum.golang.org`

250- **Maven and Gradle:** `repo.maven.apache.org`, `repo1.maven.org`, `plugins.gradle.org`, `plugins-artifacts.gradle.org`, `services.gradle.org`, `downloads.gradle.org`

251- **Bazel:** `bcr.bazel.build`, `mirror.bazel.build`

252- **Buf:** `buf.build`

253- **CPAN:** `cpan.metacpan.org`

254- **Ubuntu and Debian repositories:** `archive.ubuntu.com`, `security.ubuntu.com`, `ports.ubuntu.com`, `ppa.launchpadcontent.net`, `deb.debian.org`, `security.debian.org`

255- **Vendor repositories:** `packages.microsoft.com`, `apt.buildkite.com`, `developer.download.nvidia.com`, `deb.nodesource.com`

256- **GitHub source, archives, releases, and LFS:** `github.com`, `codeload.github.com`, `github-cloud.githubusercontent.com`, `github-cloud.s3.amazonaws.com`, `release-assets.githubusercontent.com`

257- **Other downloads:** `dl.google.com`, `pkgconfig.freedesktop.org`

258 

259For registered root domains, Codex also allows the corresponding `www` hostname.

260Other subdomains require their own allowed-domain entries. Add any other hosts

261your dependencies require under **Additional allowed domains**.

262 

263 

264 

265 

266 

267For services reached over the public internet that filter connections by source IP, use the [agent egress IP feed](https://openai.com/chatgpt-agents.json).

268Allow every published range, check the feed daily, and update the service's

269allowlist when ranges change. These ranges are shared across customers; keep

270the service's authentication and authorization controls in place.

271 

272<a id="connect-to-private-services-with-tailscale"></a>

273 

274## Private networking (VPN)

275 

276Give cloud tasks access to internal APIs, package registries, and other HTTP or

277HTTPS services on your private network through a VPN connection.

278 

2791. Open the environment's **Advanced** > **VPN** settings and select **Add**.

2802. Enter the connection credentials from your VPN provider.

2813. Allow the required destinations in both your VPN's access rules and the

282 environment's [internet-access settings](#connect-to-services).

2834. Save, then publish or republish. Start a new task and test the service.

284 

285Tailscale is currently the supported VPN provider. When creating a Tailscale

286auth key, enable both **Reusable** and **Ephemeral**. A reusable key lets new

287cloud task VMs join your network. Tailscale automatically removes ephemeral

288devices after they go offline. Support for additional VPN providers is planned.

289 

290Use IPv4 addresses or host names that already resolve to IPv4. Private IPv4

291subnet routes are supported; the connection doesn't add private DNS or support

292for native database protocols or SSH.

293 

294Tasks in a shared environment use its configured VPN identity.

295 

296<a id="connect-a-cloud-identity"></a>

297<a id="configure-an-aws-role-connection"></a>

298<a id="attach-an-azure-connection"></a>

299 

300## Access cloud resources with OIDC

301 

302OpenID Connect (OIDC) lets a task obtain short-lived credentials for cloud

303resources. Your organization configures trust with the cloud provider and

304grants the identity the permissions the workflow needs.

305 

3061. Open the saved environment's **Advanced** > **OIDC** settings.

3072. Select **Add**, then choose an available connection or

308 **Create connection…** for a supported provider.

3093. For a new connection, enter the provider's identity details and create it.

310 In the provider, configure trust using the displayed **Issuer**, **Audience**,

311 and **Subject** or claim conditions, and grant resource permissions.

3124. Confirm the connection is attached and review its alias. Save, then publish

313 or republish the environment.

3145. Start a new task and test an allowed operation and a denied operation.

315 

316Provider setup varies, and only supported connections can be attached.

317The identity's permissions determine access; your personal provider permissions

318don't transfer to it. Allow the required provider endpoints and service

319destinations separately in the network policy.

320 

321Save attachment or alias changes to apply them during setup; publish or

322republish to use them in new tasks. Editing a shared identity connection can

323affect other environments that use it.

324 

325OIDC is available by request for Enterprise workspaces. Contact your OpenAI

326account team to enable it.

327 

328<a id="how-codex-cloud-tasks-run"></a>

329<a id="how-codex-cloud-chats-run"></a>

330 

331## Run and return to a task

332 

333Select a published environment and describe your goal. Codex uses its

334repositories and tools to edit files, run commands, and check its work.

335Review changes and test results before committing or opening a pull request.

336 

337### Continue on web or mobile

338 

339On the web, choose **Work in** > **Cloud** and select an environment. On mobile,

340open **Codex** and choose an available environment. Create and publish the

341environment on the web or in the desktop app first.

342 

343Reopen the same task to continue its work across devices. A new task starts

344separate work from the published setup. Tasks in Codex Cloud can keep working while

345your computer is asleep.

346 

347<a id="start-work-from-a-team-conversation"></a>

348 

349### Start tasks from Slack or Microsoft Teams

350 

351In an Enterprise workspace with Cloud delegation enabled, ask `@ChatGPT` in

352Slack or Microsoft Teams to work on a repository. Codex uses the conversation

353context to choose an environment shared with your workspace and available to

354the account running the task. You can name a preferred environment or add

355guidance in your prompt.

356 

357For Slack, workspaces with Codex Cloud role-based access control must grant

358Codex Cloud access to both the deployment's service account and the requesting

359user. See [Enable Codex Cloud for Slack](https://learn.chatgpt.com/docs/enterprise/chatgpt-slack-and-teams#enable-codex-cloud-for-slack)

360for admin setup.

361 

362Complete any connection and approval prompts, then review the result in the

363conversation. Follow up from the same connected account to continue the task;

364another participant's request doesn't automatically continue your task.

365 

366See [Manage ChatGPT in Slack and Teams](https://learn.chatgpt.com/docs/enterprise/chatgpt-slack-and-teams#before-you-start)

367for workspace setup and [Use ChatGPT in Slack](https://learn.chatgpt.com/docs/third-party/slack#review-approvals-and-results) for

368Slack task controls.

369 

370## VM specifications

371 

372Each cloud task runs in a VM with these default resources:

373 

374| ChatGPT plan | vCPUs | Memory | Disk space |

375| ------------------------- | ----: | -----: | ---------: |

376| Plus, Edu Plus | 2 | 8 GiB | 8 GiB |

377| Pro, Business, Enterprise | 4 | 16 GiB | 32 GiB |

378| Edu, Edu Pro | 4 | 16 GiB | 32 GiB |

379 

380By default, a task's saved VM state is recoverable for up to seven days after you

381last start a turn or resume the task.

382 

383Larger VMs and custom specifications are available for Enterprise. Contact your

384OpenAI account team for available configurations and pricing.

385 

386## Current limitations

387 

388The following capabilities aren't currently supported in cloud environments

389and are on our roadmap:

390 

391- Computer and browser use

392- GitLab and self-hosted GitHub Enterprise Server

393 

394Skills stored in your repository are available in cloud tasks. Personal skills

395from your local computer aren't synced to cloud environments.

396 

397## Troubleshoot setup and runtime access

398 

399### Setup fails or a required tool is missing

400 

401Check the setup conversation for the command that failed. Ask Codex to diagnose

402the error and rerun the command after fixing it. For example: "Install pnpm and

403run the project's tests."

404 

405- If initial setup fails, select **Try again** to retry with the repositories

406 already selected in that setup session.

407- If the fix requires changing source files, a package manifest, or a lockfile,

408 make that change in a coding task, then return to setup.

409 

410After Codex verifies the setup, publish or republish the environment.

411 

412### A package download or HTTPS request fails

413 

414Check the destination hostname and authentication separately:

415 

4161. Confirm the host is allowed by the environment's

417 [internet-access settings](#connect-to-services). For a private registry at

418 `packages.example.com`, check that exact hostname. If downloads also use

419 `downloads.example.com`, that host needs access too.

4202. Check the package manager or client's configured URL and credentials.

421 Allowing a domain doesn't grant access to the service.

4223. If authentication uses a network secret, check that its **Allowed domains**

423 include the destination and that the request uses HTTPS on port 443.

4244. In an Enterprise workspace, ask an admin to check the applicable

425 [Agent Security](https://learn.chatgpt.com/docs/enterprise/agent-security) requirements alongside

426 the environment's settings.

427 

428Save any configuration changes and test the request during setup. Publish or

429republish, then verify access in a new task.

430 

431### A required value is missing or isn't usable

432 

433Check that you added the value to the right place in the environment configuration:

434 

435- **Environment variables:** use these for values that programs need to read

436 directly, such as `APP_MODE=development`.

437- **Network secrets:** use these for credentials sent to an allowed HTTPS

438 service, such as a private registry token. Programs receive a placeholder;

439 the proxy substitutes the credential in matching requests. If the program

440 needs to read the raw value, add it under **Environment variables**.

441 

442For a personal value, check that its **Key** matches the environment's request

443and that **Applies to** includes that environment. A value for a specific

444environment takes precedence over a general default.

445 

446See [Environment variables and network secrets](#configure-environment-variables-and-network-secrets)

447for setup instructions.

448 

449### VPN connects, but an HTTP or HTTPS service is unreachable

450 

4511. Confirm the client uses the environment's configured HTTP/HTTPS proxy.

452 When testing with `curl`, omit `--noproxy` so the request uses that proxy.

4532. Check the destination against both the environment's allowed domains and

454 the VPN's access rules.

4553. Use an IPv4 address or a hostname that already resolves to IPv4. The VPN

456 connection doesn't configure private DNS.

457 

458See [Private networking](#private-networking-vpn) for connection setup.

459 

460### An environment or its updates aren't available for a task

461 

462Check the environment in **Settings** > **Codex Cloud** > **Environments**.

463If it has an **Unpublished** badge, finish setup and select **Publish** to make

464it available for tasks.

465 

466For changes to a published environment, open its **Edit** flow, let Codex prepare

467and test the changes, then select **Republish**. Start a new task from the updated

468environment to use the new setup. Existing tasks keep their own working state.

Details

7 7 

8- **Local**: work directly in your current project directory.8- **Local**: work directly in your current project directory.

9- **Worktree**: isolate changes in a Git worktree. [Learn more](https://learn.chatgpt.com/docs/environments/git-worktrees).9- **Worktree**: isolate changes in a Git worktree. [Learn more](https://learn.chatgpt.com/docs/environments/git-worktrees).

10- **Cloud**: run remotely in a configured cloud environment.10- **Cloud**: start a remote task in its own workspace from a published,

11 reusable environment. See [Cloud environments](https://learn.chatgpt.com/docs/environments/cloud-environments)

12 to prepare and publish the repositories, dependencies, and tools your tasks need.

11 13 

12Both **Local** and **Worktree** chats run on your computer.14Both **Local** and **Worktree** chats run on your computer.

15Use **Work in** to choose **This computer** or **Cloud**. For a local Git project,

16the separate **Worktree** control lets you isolate changes from your current checkout.

13 17 

14For the full glossary and concepts, explore the [concepts section](https://learn.chatgpt.com/docs/prompting).18A cloud task requires a published environment you can access. If none is available,

19create one on the web or in the desktop app, or ask a workspace admin for access

20to a shared environment. Selecting an environment is separate from creating or

21publishing it. Shared access lets you use the environment; it doesn't grant

22permission to edit it.

15 23 

24To create an environment, start a new task on the web or in the desktop app.

25Choose **Work in** > **Cloud**, open **Select environment**, then select

26**Create environment**. Codex inspects your selected repositories and helps

27prepare and test their setup before you publish it.

16 28 

29Each Cloud task has its own working files. File changes in a task don't update

30the reusable environment. To change the starting point for future tasks, update

31and republish the environment's setup.

17 32 

33A cloud task uses the files and services available in its cloud environment.

34Your computer's local files, running processes, browser sign-ins, and VPN access

35aren't automatically transferred to it.

18 36 

19> Illustration: New chat composer with Local, Worktree, and Cloud environment options37For more terms, see [Codex concepts](https://learn.chatgpt.com/docs/prompting).

38 

39 

40 

41

42 

43> Illustration: Desktop composer with the Work in menu open to This computer and Cloud, and a separate Worktree option

extend/mcp.md +19 −7

Details

62 62 

63## Use MCP-backed tools in ChatGPT web63## Use MCP-backed tools in ChatGPT web

64 64 

65Continuing a conversation using Local computer access with Work Cloud on another device doesn't install plugins or grant access to connected accounts.

66 

67In Local computer access with Work Cloud, the enterprise `mcp_servers` TOML requirement in Agent Security applies to local executors. Cloud containers retain Work Cloud policies. Local MCP servers and transports may not be available in the cloud; check connectivity and authentication separately.

68 

69For enterprise hooks in Local computer access with Work Cloud:

70 

71- **Enterprise hooks.** Where enabled for your workspace, Local computer access with Work Cloud supports admin-defined MCP hooks that run on the cloud coordinator (orchestrator) for supported lifecycle and tool events. Command hooks and hooks from local configuration or plugins are not supported with cloud orchestration, even when tools execute locally.

72- **Auditing.** Before relying on these hooks, test the callback connection, confirm the events it receives, and check how failures affect the task. MCP hooks do not provide a complete Compliance API audit trail.

73- **Limitations:** Command hooks and hooks from local configuration or plugins are not supported with cloud orchestration, even when tools execute locally. Consumers do not have hooks support in this feature. When both orchestration and execution are local, existing supported hooks continue to work in local-only Work and Codex threads. Admins can still configure supported managed hooks in Agent Security for those workflows.

74 

75See [Hooks](https://learn.chatgpt.com/docs/hooks) and the [Configuration Reference](https://learn.chatgpt.com/docs/config-file/config-reference) for support scope.

76 

65In a hosted ChatGPT Work chat, install a [plugin](https://learn.chatgpt.com/docs/plugins) to use its77In a hosted ChatGPT Work chat, install a [plugin](https://learn.chatgpt.com/docs/plugins) to use its

66bundled connectors and remote MCP tools. After installation, Chat and Work can78bundled connectors and remote MCP tools. After installation, Chat and Work can

67use those tools. Workspace administrators can control which plugins and tools79use those tools. Workspace administrators can control which plugins and tools


262configured URL with the server-specific callback ID appended. Always register274configured URL with the server-specific callback ID appended. Always register

263the exact callback displayed by `codex mcp add`.275the exact callback displayed by `codex mcp add`.

264 276 

265For portless `http://127.0.0.1` callbacks, Codex omits the listener port from277For `http://127.0.0.1` callbacks without an explicit port, Codex omits the listener port from

266the URL it displays and stores, then inserts the active listener port during278the URL it displays and stores, then inserts the active listener port during

267authorization. This substitution doesn't apply to `localhost`, IPv6 hosts,279authorization. This substitution doesn't apply to `localhost`, IPv6 hosts,

268HTTPS URLs, or callbacks that already include a port. Authorization servers280HTTPS URLs, or callbacks that already include a port. Authorization servers


272Set `mcp_oauth_callback_port` to choose a fixed global listener port, or set284Set `mcp_oauth_callback_port` to choose a fixed global listener port, or set

273`mcp_servers.<server-name>.oauth.callback_port` to override it for one server.285`mcp_servers.<server-name>.oauth.callback_port` to override it for one server.

274An explicit port in the callback URL doesn't configure the listener. For a286An explicit port in the callback URL doesn't configure the listener. For a

275direct loopback callback, use portless `http://127.0.0.1` or configure the same287direct loopback callback, use `http://127.0.0.1` without an explicit port or configure the same

276explicit port for both the callback URL and listener. A proxied callback can288explicit port for both the callback URL and listener. A proxied callback can

277intentionally use an external URL port that differs from the local listener289intentionally use an external URL port that differs from the local listener

278port. Local callback URLs bind to the local interface; non-local callback URLs290port. Local callback URLs bind to the local interface; non-local callback URLs


299loopback URL. Otherwise, Codex uses DCR when available. A configured OAuth client311loopback URL. Otherwise, Codex uses DCR when available. A configured OAuth client

300ID always takes precedence and skips client registration.312ID always takes precedence and skips client registration.

301 313 

302For CIMD, Codex uses a ChatGPT-hosted metadata document specific to the MCP314For CIMD without issuer-bound responses, Codex CLI uses a ChatGPT-hosted metadata

303server:315document specific to the MCP server:

304 316 

305```text317```text

306https://chatgpt.com/oauth/codex/<callback_id>/client.json318https://chatgpt.com/oauth/codex/<callback_id>/client.json


315callback hosts, paths, or query parameters require DCR or a configured OAuth327callback hosts, paths, or query parameters require DCR or a configured OAuth

316client ID.328client ID.

317 329 

318Support for a stable, shared CIMD document is in development and coming soon:330Codex CLI also supports a stable, shared CIMD document:

319 331 

320```text332```text

321https://chatgpt.com/oauth/codex/client.json333https://chatgpt.com/oauth/codex/client.json

322```334```

323 335 

324Codex will use the stable document with the shared `/callback` path when the336Codex CLI uses the stable document with the shared `/callback` path when the

325authorization server advertises337authorization server advertises

326`authorization_response_iss_parameter_supported: true`, provides a valid338`authorization_response_iss_parameter_supported: true`, provides a valid

327`issuer` in its metadata, and includes a matching `iss` in authorization339`issuer` in its metadata, and includes a matching `iss` in authorization

328responses. Servers without issuer-bound responses will continue using the340responses. Servers without issuer-bound responses use the

329callback-specific document.341callback-specific document.

330 342 

331To choose a registration method for one CLI login, use343To choose a registration method for one CLI login, use

features.md +88 −1

Details

13 hero={{13 hero={{

14 illustration: "features-menu",14 illustration: "features-menu",

15 backgroundImage: "/images/codex/codex-wallpaper-1.webp",15 backgroundImage: "/images/codex/codex-wallpaper-1.webp",

16 alt: "Codex sidebar and Add menu for chats, plugins, and content tools",16 alt: "Codex navigation and Add menu for chats, plugins, and content tools",

17 }}17 }}

18 sections={[18 sections={[

19 {19 {


121 href: "/codex/plugins",121 href: "/codex/plugins",

122 icon: "plugin",122 icon: "plugin",

123 },123 },

124 {

125 title: "Sign in with ChatGPT",

126 description:

127 "Use your ChatGPT account in other apps and choose how they use your plan.",

128 href: "/codex/sign-in-with-chatgpt",

129 icon: "connect",

130 },

124 {131 {

125 title: "Web search",132 title: "Web search",

126 description:133 description:


162 },169 },

163 ],170 ],

164 },171 },

172 {

173 title: "ChatGPT dots",

174 description: "Set up your dot and manage its ongoing work.",

175 pages: [

176 {

177 title: "Overview",

178 description: "Understand your dot and its connections.",

179 href: "/codex/dots",

180 icon: "robot",

181 },

182 {

183 title: "Getting started",

184 description: "Create your dot and give it a responsibility.",

185 href: "/codex/dots/getting-started",

186 icon: "chat",

187 },

188 {

189 title: "Messaging",

190 description: "Contact your dot in ChatGPT and connected channels.",

191 href: "/codex/dots/channels",

192 icon: "connect",

193 },

194 {

195 title: "Tasks and memory",

196 description: "Understand scheduled work, context, and research.",

197 href: "/codex/dots/tasks-and-memory",

198 icon: "calendar",

199 },

200 {

201 title: "Computers and apps",

202 description: "Connect tools and inspect computer work.",

203 href: "/codex/dots/computers-and-apps",

204 icon: "computerUse",

205 },

206 {

207 title: "Controls",

208 description: "Review activity, manage rules, and stop work.",

209 href: "/codex/dots/controls",

210 icon: "settings",

211 },

212 ],

213 },

214 {

215 title: "ChatGPT Space",

216 description:

217 "Develop shared work in Pages with ChatGPT and collaborators.",

218 pages: [

219 {

220 title: "Space overview",

221 description:

222 "Find files and Pages, and develop your work with ChatGPT.",

223 href: "/codex/space",

224 icon: "workspace",

225 },

226 {

227 title: "Getting started",

228 description: "Draft your first Page.",

229 href: "/codex/space/getting-started",

230 icon: "folder",

231 },

232 {

233 title: "Pages",

234 description: "Write, organize, and revise your work.",

235 href: "/codex/space/pages",

236 icon: "stack",

237 },

238 {

239 title: "Work with the agent",

240 description: "Give ChatGPT context, boundaries, and a clear task.",

241 href: "/codex/space/agents",

242 icon: "chat",

243 },

244 {

245 title: "Collaboration",

246 description: "Choose who can view, comment on, or edit your work.",

247 href: "/codex/space/collaboration",

248 icon: "connect",

249 },

250 ],

251 },

165 {252 {

166 title: "Reference",253 title: "Reference",

167 description: "Find commands and settings for the ChatGPT desktop app.",254 description: "Find commands and settings for the ChatGPT desktop app.",

Details

27ChatGPT Work instead. ChatGPT Work gives you the same core capabilities with27ChatGPT Work instead. ChatGPT Work gives you the same core capabilities with

28an experience designed for everyday work.28an experience designed for everyday work.

29 29 

30 

31 

32 {"For general usage and availability, see "}

33 [{"ChatGPT Work and Codex"}](https://help.openai.com/articles/20001275)

34 {" in the Help Center."}

35

36 

37 

30## What to try first38## What to try first

31 39 

32<VideoPlayer src="https://cdn.openai.com/devhub/videos-learn/selectnoonboarding.mp4" />40<VideoPlayer src="https://cdn.openai.com/devhub/videos-learn/selectnoonboarding.mp4" />


35Good tasks have a clear outcome, a few source materials, and an output you can43Good tasks have a clear outcome, a few source materials, and an output you can

36review.44review.

37 45 

38### Choose local or cloud work46### Continue Work across devices

47 

48When your workspace enables sync, tasks using Local computer access with Work Cloud use cloud coordination. For enterprises, the in-app Local/Cloud toggle and its default remain unchanged at launch. You can continue an eligible conversation across desktop, mobile, and web. Work can still use approved local resources through a connected computer.

49 

50For example, start a task with an approved folder on your laptop, then review results or send follow-up instructions from your phone. Keep the laptop online for steps that need its files or tools.

51 

52Start a new task after enabling sync. Existing tasks, including those in projects, stay local only or in the cloud without access to local files.

53 

54If your computer is unavailable when a new turn starts, an existing eligible task using Local computer access with Work Cloud can continue in a cloud container. The container cannot access that computer's files or tools or enforce its enterprise execution requirements. Work can't switch from local to cloud execution during a turn.

55 

56Without Local computer access with Work Cloud, use the desktop composer's local and cloud options. Choose local Work for resources on your computer, or cloud Work for tasks that don't depend on it. Cloud is useful for scheduled tasks that research or check websites because your computer doesn't need to be awake.

39 57 

40In the desktop app, open the composer control labeled **Work locally**. If58Turning off Local computer access with Work Cloud interrupts running turns. Send a new message in an existing cloud conversation to continue in Work Cloud without access to local files.

41**Cloud** appears as an option, choose it when you want ChatGPT Work to keep

42running after you close the app or turn off your computer, or when you want to

43continue the chat from the web or mobile app. Keep **Work locally** selected when

44the task needs files or apps on your computer.

45 59 

46Cloud is also useful for scheduled tasks that research or check websites over60Workspace admins can review [policy requirements and setup steps](https://learn.chatgpt.com/docs/enterprise/cloud-local-access#how-to-set-up-local-computer-access) before enabling sync.

47time because their runs don't depend on your computer being awake.

48 61 

49Here are three common use cases you can get started with:62Here are three common use cases you can get started with:

50 63 


119## Best practices for using ChatGPT Work132## Best practices for using ChatGPT Work

120 133 

121Use ChatGPT Work when you want ChatGPT to complete a task, create a file, or manage work134Use ChatGPT Work when you want ChatGPT to complete a task, create a file, or manage work

122over time. It is a good fit for tasks that:135over time. Use it for tasks that:

123 136 

124- Use multiple sources, plugins, tools, or steps.137- Use multiple sources, plugins, tools, or steps.

125- Would take meaningful time to complete manually.138- Would take meaningful time to complete manually.


156SharePoint, email, calendars, customer relationship management systems, and169SharePoint, email, calendars, customer relationship management systems, and

157project trackers.170project trackers.

158 171 

159- Select **Plugins** in the left sidebar to view the plugins library.172- Select **Customize**, then **Plugins**, in the left navigation to view the plugins library.

160- Install the plugins most relevant to your work.173- Install the plugins most relevant to your work.

161- To point ChatGPT to a specific tool, type `@` and the plugin name in your prompt.174- To point ChatGPT to a specific tool, type `@` and the plugin name in your prompt.

162 175 


168## Use ChatGPT Work efficiently181## Use ChatGPT Work efficiently

169 182 

170Choose [GPT-6 Astra](https://learn.chatgpt.com/docs/models#gpt-6-astra) for demanding work that needs183Choose [GPT-6 Astra](https://learn.chatgpt.com/docs/models#gpt-6-astra) for demanding work that needs

171careful reasoning, visual judgment, or a polished final file. For simpler tasks,184careful reasoning, visual judgment, or a polished final file. Consider

172consider Sol or Luna. Select from the models185[GPT-6.1 Sol](https://learn.chatgpt.com/docs/models#gpt-61-sol) for complex work at a lower cost than

173available in your model selector and check [plan usage](https://learn.chatgpt.com/docs/pricing)186Astra, or Luna for simpler tasks. Select from the models available in your

174before starting a large task.187model selector and check [plan usage](https://learn.chatgpt.com/docs/pricing) before starting a large

188task.

175 189 

176ChatGPT Work is best for substantial tasks that involve multiple steps, sources, or190ChatGPT Work is best for substantial tasks that involve multiple steps, sources, or

177tools, or require a completed deliverable. Longer or more complex tasks may use191tools, or require a completed deliverable. Longer or more complex tasks may use

glossary.md +13 −39

Details

127 "Opt-in macOS feature that builds memories and a timeline from interaction events across allowed apps and websites.",127 "Opt-in macOS feature that builds memories and a timeline from interaction events across allowed apps and websites.",

128 },128 },

129 {129 {

130 key: "Cloud",130 key: "Codex Cloud",

131 href: "/codex/cloud",131 href: "/codex/cloud",

132 appliesTo: "Desktop app, IDE extension, Web",132 appliesTo: "Desktop app, IDE extension, Web",

133 description:133 description:

134 "Mode where Codex works remotely in an OpenAI-managed environment.",134 "Coding tasks that run in the cloud with their own workspaces, repositories, and tools.",

135 },135 },

136 {136 {

137 key: "Cloud environment",137 key: "Cloud environment",

138 href: "/codex/environments/cloud-environment",138 href: "/codex/environments/cloud-environments",

139 appliesTo: "Cloud",139 appliesTo: "Cloud",

140 description: "Configured container setup used for Codex cloud chats.",140 description:

141 "Reusable repositories, dependencies, tools, and access settings for tasks in Codex Cloud.",

141 },142 },

142 {143 {

143 key: "Cloud chat",144 key: "Cloud chat",

144 href: "/codex/environments/cloud-environment#how-codex-cloud-tasks-run",145 href: "/codex/environments/cloud-environments#how-codex-cloud-tasks-run",

145 appliesTo: "Cloud",146 appliesTo: "Cloud",

146 description: "A Codex chat that runs remotely in a cloud environment.",147 description: "A Codex chat that runs remotely in a cloud environment.",

147 },148 },


172 description:173 description:

173 "Terminal client for running Codex interactively or in scripts.",174 "Terminal client for running Codex interactively or in scripts.",

174 },175 },

175 {

176 key: "Codex cloud",

177 href: "/codex/cloud",

178 appliesTo: "Web, Desktop app, IDE extension",

179 description:

180 "OpenAI-managed execution environment where Codex can work on repository tasks remotely.",

181 },

182 {176 {

183 key: "codex exec",177 key: "codex exec",

184 href: "/codex/non-interactive-mode",178 href: "/codex/non-interactive-mode",


254 description:248 description:

255 "The ongoing exchange of messages and shared context between a person and ChatGPT or Codex within a chat.",249 "The ongoing exchange of messages and shared context between a person and ChatGPT or Codex within a chat.",

256 },250 },

257 {

258 key: "Container cache",

259 href: "/codex/environments/cloud-environment#container-caching",

260 appliesTo: "Cloud",

261 description:

262 "Saved cloud container state reused to speed up future cloud chats.",

263 },

264 {251 {

265 key: "Context",252 key: "Context",

266 href: "/codex/prompting#context",253 href: "/codex/prompting#context",


298 },285 },

299 {286 {

300 key: "Domain allowlist",287 key: "Domain allowlist",

301 href: "/codex/cloud/internet-access#domain-allowlist",288 href: "/codex/environments/cloud-environments#connect-to-services",

302 appliesTo: "Cloud",289 appliesTo: "Cloud",

303 description:290 description:

304 "Set of domains Codex cloud can reach when agent internet access is enabled.",291 "Set of domains allowed by a Codex Cloud environment’s network policy.",

305 },292 },

306 {293 {

307 key: "Environment (local)",294 key: "Environment (local)",


312 },299 },

313 {300 {

314 key: "Environment variable",301 key: "Environment variable",

315 href: "/codex/environments/cloud-environment#environment-variables-and-secrets",302 href: "/codex/environments/cloud-environments#environment-variables-and-secrets",

316 appliesTo: "Cloud, CLI, IDE extension",303 appliesTo: "Cloud, CLI, IDE extension",

317 description:304 description:

318 "Runtime configuration value available during task execution.",305 "Runtime configuration value available during task execution.",


414 appliesTo: "Desktop app, CLI, IDE extension",401 appliesTo: "Desktop app, CLI, IDE extension",

415 description: "A ChatGPT or Codex chat that runs on the user's machine.",402 description: "A ChatGPT or Codex chat that runs on the user's machine.",

416 },403 },

417 {

418 key: "Maintenance script",

419 href: "/codex/environments/cloud-environment#container-caching",

420 appliesTo: "Cloud",

421 description: "Optional script run when a cached cloud container resumes.",

422 },

423 {404 {

424 key: "Managed configuration",405 key: "Managed configuration",

425 href: "/codex/enterprise/managed-configuration",406 href: "/codex/enterprise/managed-configuration",


646 description: "The timing rule for a scheduled task.",627 description: "The timing rule for a scheduled task.",

647 },628 },

648 {629 {

649 key: "Secret",630 key: "Network secret",

650 href: "/codex/environments/cloud-environment#environment-variables-and-secrets",631 href: "/codex/environments/cloud-environments#environment-variables-and-secrets",

651 appliesTo: "Cloud",632 appliesTo: "Codex Cloud",

652 description:633 description:

653 "Encrypted value available to setup scripts but removed before the agent phase.",634 "A credential for a specific HTTPS service. Programs receive a placeholder; the proxy substitutes the credential for allowed destinations during setup and tasks.",

654 },635 },

655 {636 {

656 key: "Setup script",637 key: "Setup script",


754 description:735 description:

755 "One exchange in a chat, usually a user prompt plus the agent's response and actions.",736 "One exchange in a chat, usually a user prompt plus the agent's response and actions.",

756 },737 },

757 {

758 key: "Universal image",

759 href: "/codex/environments/cloud-environment#default-universal-image",

760 appliesTo: "Cloud",

761 description:

762 "Default Codex cloud container image with common tools preinstalled.",

763 },

764 {738 {

765 key: "Web search cache",739 key: "Web search cache",

766 href: "/codex/config-file/config-basic#web-search-mode",740 href: "/codex/config-file/config-basic#web-search-mode",

hooks.md +12 −5

Details

11- Run a custom validation check when a chat turn stops, enforcing standards11- Run a custom validation check when a chat turn stops, enforcing standards

12- Customize prompting when in a certain directory12- Customize prompting when in a certain directory

13 13 

14Runtime behavior to keep in mind:14How hooks run:

15 15 

16- Matching hooks from multiple files all run.16- Matching hooks from multiple files all run.

17- Multiple matching command hooks for the same event are launched concurrently,17- Multiple matching command hooks for the same event are launched concurrently,


318hooks = false318hooks = false

319```319```

320 320 

321Use `hooks` as the canonical feature key. `codex_hooks` still works as a321Use `hooks` as the feature key. `codex_hooks` still works as a

322deprecated alias. Admins can force hooks off the same way in322deprecated alias. Admins can force hooks off the same way in

323`requirements.toml` with `[features].hooks = false`.323`requirements.toml` with `[features].hooks = false`.

324 324 

325## Managed hooks from `requirements.toml`325## Managed hooks from `requirements.toml`

326 326 

327Enterprise-managed requirements can also define hooks inline under `[hooks]`.327When managed policy and remote hooks are enabled, Work Cloud with local access and dots use admin-managed remote MCP hooks on the cloud orchestrator. Configure `mcp_tool` handlers in Global `requirements.toml`. Work Cloud without local access and personal accounts do not use these enterprise hooks. Command/shell, prompt, and agent handlers; hooks from local configuration, plugins, or local directories; environment-scoped hooks; and `SessionEnd` MCP hooks are not supported with cloud orchestration, even when tools execute locally. When both orchestration and execution are local, existing supported hooks continue to work in local-only Work and Codex threads. Admins can still configure supported managed hooks in Agent Security for those workflows.

328 

329Before relying on these hooks, test callback connectivity, required events, and failure behavior. An explicit supported denial can block an action, but a `PreToolUse` callback error, timeout, or malformed response can fail the hook without blocking the tool. MCP hooks do not provide a complete Compliance API audit trail.

330 

331The Codex instructions in this section still apply to supported Codex workflows. Before enabling Local computer access with Work Cloud, review any compatibility warning in the sync setting and **Agent Security**. See [Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration).

332 

333In Codex, enterprise-managed requirements can define hooks inline under `[hooks]`.

334The command-hook example below applies only to Codex.

328This is useful when admins want to enforce the hook configuration while335This is useful when admins want to enforce the hook configuration while

329delivering the actual scripts through MDM or another device-management system.336delivering the actual scripts through MDM or another device-management system.

330To enforce managed hooks even for users who disabled hooks locally, pin337To enforce managed hooks even for users who disabled hooks locally, pin


650 657 

651Plain text on `stdout` is added as extra developer context.658Plain text on `stdout` is added as extra developer context.

652 659 

653JSON on `stdout` supports [Common output fields](#common-output-fields) and this660JSON on `stdout` supports [Common output fields](#common-output-fields) and

654hook-specific shape:661this hook-specific shape:

655 662 

656```json663```json

657{664{

Details

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 4 

5Each chat in the ChatGPT desktop app includes a terminal scoped to its current project or5Each chat in the ChatGPT desktop app includes a terminal scoped to its current project or

6worktree. Open it from the terminal icon in the top-right corner of the app, or6worktree. Select **New tab**, then **Terminal**, or press <kbd>Ctrl</kbd>+<kbd>`</kbd>.

7press <kbd>Ctrl</kbd>+<kbd>`</kbd>.

8 7 

9 8 

10 9

Details

19 19 

20Make sure you have:20Make sure you have:

21 21 

22- [Codex cloud](https://learn.chatgpt.com/docs/cloud) set up for the repository you want to review.22- A GitHub repository connected to Codex. For legacy integration setup, see [Codex Cloud (Legacy)](https://learn.chatgpt.com/docs/environments/cloud-environment).

23- Access to [Codex code review settings](https://chatgpt.com/codex/settings/code-review).23- Access to [Codex code review settings](https://app.chatgpt.com/settings/code-review).

24- An `AGENTS.md` file if you want Codex to follow repository-specific review guidance.24- An `AGENTS.md` file if you want Codex to follow repository-specific review guidance.

25 25 

26## Set up Codex code review26## Set up Codex code review


28To configure automatic reviews, you need a connected GitHub repository and28To configure automatic reviews, you need a connected GitHub repository and

29GitHub push or admin permission for its settings.29GitHub push or admin permission for its settings.

30 30 

311. Set up [Codex cloud](https://learn.chatgpt.com/docs/cloud).311. Connect your GitHub repository to Codex.

322. Go to [Codex settings](https://chatgpt.com/codex/settings/code-review).322. Go to [Codex settings](https://app.chatgpt.com/settings/code-review).

333. Turn on **Code review** for your repository.333. Choose your repository, then turn on **Automatic review** under **Review code**.

34 34 

35 35 

36 36 

37 37

38 38

39 39 

40> Illustration: Codex settings showing the Code review toggle40> Illustration: Codex settings showing repositories and the personal Automatic review toggle

41 41 

42 42 

43 43


85 85 

86## Enable automatic reviews86## Enable automatic reviews

87 87 

88If you want Codex to review every pull request automatically, turn on88To enable automatic reviews for your pull requests, turn on **Automatic review**

89**Automatic reviews** in [Codex settings](https://chatgpt.com/codex/settings/code-review).89under **Personal preferences** in [Codex settings](https://app.chatgpt.com/settings/code-review).

90Codex will post a review whenever someone opens a new PR for review, without90Choose when reviews run with **Review trigger**. This applies to repositories

91needing an `@codex review` comment.91with code review enabled and doesn't require an `@codex review` comment.

92 92 

93## Customize what Codex reviews93## Customize what Codex reviews

94 94 


154For more detailed setup instructions and configuration options, see [Security154For more detailed setup instructions and configuration options, see [Security

155Review](https://learn.chatgpt.com/docs/security/security-review).155Review](https://learn.chatgpt.com/docs/security/security-review).

156 156 

1571. Set up [Codex cloud](https://learn.chatgpt.com/docs/cloud).1571. Connect your GitHub repository to Codex.

1582. Go to [Codex settings](https://chatgpt.com/codex/settings/code-review).1582. Go to [Codex settings](https://app.chatgpt.com/settings/code-review).

1593. Under **Repository preferences**, choose which pull requests get Security1593. Choose your repository. Under **Review security vulnerabilities**, turn on

160 Review and when it runs. Select **Whenever code review runs** to run it160 **Auto security review** and choose whose pull requests receive reviews with

161 **Review**. Set **Trigger** to **Whenever code review runs** to run it

161 alongside Code Review.162 alongside Code Review.

162 163 

163### Request a Security Review164### Request a Security Review


179@codex fix the P1 issue180@codex fix the P1 issue

180```181```

181 182 

182Codex starts a cloud chat with the pull request as context and can push a fix183Codex starts a [legacy cloud chat](https://learn.chatgpt.com/docs/environments/cloud-environment) with the pull request as context and can push a fix

183back to the branch when it has permission to do so.184back to the branch when it has permission to do so.

184 185 

185## Give Codex other tasks186## Give Codex other tasks

186 187 

187If you mention `@codex` in a comment with anything other than `review`, Codex starts a [cloud chat](https://learn.chatgpt.com/docs/cloud) using your pull request as context.188If you mention `@codex` in a comment with anything other than `review`, Codex starts a [legacy cloud chat](https://learn.chatgpt.com/docs/environments/cloud-environment) using your pull request as context.

188 189 

189```md190```md

190@codex fix the CI failures191@codex fix the CI failures


194 195 

195If Codex doesn't react or post a review:196If Codex doesn't react or post a review:

196 197 

197- Confirm you turned on **Code review** for the repository in [Codex settings](https://chatgpt.com/codex/settings/code-review).198- Confirm you turned on code review for the repository in [Codex settings](https://app.chatgpt.com/settings/code-review).

198- Confirm the pull request belongs to a repository with [Codex cloud](https://learn.chatgpt.com/docs/cloud) set up.199- Confirm the pull request belongs to a GitHub repository connected to Codex.

199- Use the exact trigger `@codex review` in a pull request comment.200- Use the exact trigger `@codex review` in a pull request comment.

200- For automatic reviews, check that you turned on **Automatic reviews** and that201- For automatic reviews, check **Automatic review** under the repository

201 the pull request event matches your review trigger settings.202 settings and **Personal preferences** in [Codex settings](https://app.chatgpt.com/settings/code-review). Confirm the pull request event matches your review trigger settings.

Details

1# Use Codex in Slack1# Use ChatGPT in Slack

2 2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 4 

5Use Codex in Slack to kick off coding work from channels and threads. Mention `@Codex` with a prompt, and Codex creates a cloud chat and replies with the results.5Mention `@ChatGPT` in a Slack channel to start a request. If your workspace has

6 6Cloud delegation enabled, ChatGPT can send repository work to a separate

7 7[Codex Cloud](https://learn.chatgpt.com/docs/cloud) task and return the result to the thread.

8 

9

10

11 

12> Illustration: Codex Slack integration in action

13 

14 

15

16 

17 

18 

19 

20 8 

9**For workspace admins:** See [Set up and manage @ChatGPT in Slack and Microsoft Teams](https://learn.chatgpt.com/docs/enterprise/chatgpt-slack-and-teams) for app setup, workspace connections, and access controls.

21 10 

22## Set up the Slack app11## Set up the Slack app

23 12 

241. Set up [Codex cloud chats](https://learn.chatgpt.com/docs/cloud). You need a Plus, Pro, Business, Enterprise, or Edu plan (see [ChatGPT pricing](https://chatgpt.com/pricing)), a connected GitHub account, and at least one [environment](https://learn.chatgpt.com/docs/environments/cloud-environment).13A ChatGPT workspace owner or admin sets up the workspace's Slack deployment.

252. Go to [Codex settings](https://chatgpt.com/codex/settings/connectors) and install the Slack app for your workspace. Depending on your Slack workspace policies, an admin may need to approve the install.14The available controls depend on your workspace's enabled features.

263. Add `@Codex` to a channel. If you haven't added it yet, Slack prompts you when you mention it.

27 

28<a id="start-a-task"></a>

29 

30## Start a chat

31 

321. In a channel or thread, mention `@Codex` and include your prompt. Codex can reference earlier messages in the thread, so you often don't need to restate context.

332. (Optional) Specify an environment or repository in your prompt, for example: `@Codex fix the above in openai/codex`.

343. Wait for Codex to react (👀) and reply with a link to the chat. When it finishes, Codex posts the result and, depending on your settings, an answer in the thread.

35 

36### How Codex chooses an environment and repo

37 15 

38- Codex reviews the environments you have access to and selects the one that best matches your request. If the request is ambiguous, it falls back to the environment you used most recently.16If you don't see these controls, ask your ChatGPT workspace admin whether Slack

39- The chat runs against the default branch of the first repository listed in that environment’s repo map. Update the repo map in Codex if you need a different default or more repositories.17deployments are available. Your Slack workspace's app policies also apply.

40- If no suitable environment or repository is available, Codex will reply in Slack with instructions on how to fix the issue before retrying.

41 18 

42### Enterprise data controls19Cloud delegation must be available in your workspace and requires a published

20environment shared with the workspace. Ask your admin to

21[enable Codex Cloud for Slack](https://learn.chatgpt.com/docs/enterprise/chatgpt-slack-and-teams#enable-codex-cloud-for-slack).

22Where Codex Cloud role-based access control is enabled, both the deployment's

23service account and your account need Codex Cloud access.

43 24 

44By default, Codex replies in the thread with an answer, which can include information from the environment it ran in.25### Connect your account when prompted

45To prevent this, an Enterprise admin can clear **Allow Codex Slack app to post answers on task completion** in [ChatGPT workspace settings](https://chatgpt.com/admin/settings). When an admin turns off answers, Codex replies only with a link to the chat.

46 26 

47### Data usage, privacy, and security27Workspace setup and your personal account connection are separate. If ChatGPT

28asks you to connect your account before continuing:

48 29 

49When you mention `@Codex`, Codex receives your message and thread history to understand your request and create a chat.301. Select the connection link in the Slack message and sign in if prompted.

50Data handling follows OpenAI's [Privacy Policy](https://openai.com/privacy), [Terms of Use](https://openai.com/terms/), and other applicable [policies](https://openai.com/policies).312. Connect Slack for the same workspace where you made the request.

51For more on security, see the Codex [security documentation](https://learn.chatgpt.com/docs/agent-approvals-security).323. Return to the original Slack thread and mention `@ChatGPT` to retry.

52 33 

53Codex uses large language models that can make mistakes. Always review answers and diffs.34<a id="start-a-task"></a>

54 35<a id="start-a-chat"></a>

55### Tips and troubleshooting

56 36 

57- **Missing connections**: If Codex can't confirm your Slack or GitHub connection, it replies with a link to reconnect.37## Start a request

58- **Unexpected environment choice**: Reply in the thread with the environment you want (for example, `Please run this in openai/openai (applied)`), then mention `@Codex` again.38 

59- **Long or complex threads**: Summarize key details in your latest message so Codex doesn't miss context buried earlier in the thread.391. In a channel where the app is enabled, mention `@ChatGPT` and describe the

60- **Workspace posting**: Some Enterprise workspaces restrict posting final answers. In those cases, open the chat link to view progress and results.40 result you want. For coding work, include the repository and relevant context

61- **More help**: See the [OpenAI Help Center](https://help.openai.com/).41 from the thread.

422. Complete any account-connection or approval prompts. Review the requested work

43 and access before you approve.

443. Continue related requests in the same thread, mentioning `@ChatGPT` again.

45 

46For example:

47 

48```text

49@ChatGPT investigate the failing checkout tests in acme/storefront and propose a fix.

50```

51 

52Then follow up in that thread:

53 

54```text

55@ChatGPT add a regression test for the fix and summarize the checks you ran.

56```

57 

58Use an enabled public or private channel in your workspace. Slack Connect

59channels shared with another organization aren't supported by this flow.

60 

61<a id="how-codex-chooses-an-environment-and-repo"></a>

62 

63## Run repository work in Codex Cloud

64 

65Cloud delegation requires an eligible workspace-shared environment with a

66published version. For an Enterprise workspace, prepare and publish a tested

67setup using the [cloud environment guide](https://learn.chatgpt.com/docs/environments/cloud-environments)

68and follow the guidance to [share it within your Enterprise

69workspace](https://learn.chatgpt.com/docs/environments/cloud-environments#share-within-an-enterprise-workspace).

70Confirm that the environment is available for the requested repository.

71 

72- **Environment selection**: ChatGPT selects from accessible workspace-shared Cloud

73 environments. When using your account, it checks that you can access the

74 environment before starting. Personal Cloud environments aren't included. Name

75 the repository or shared environment in your request to help ChatGPT choose.

76- **Separate coding task**: Repository work runs in a separate task using your

77 account. You need access to the selected environment and to any repositories

78 that require authentication.

79- **Follow-up work**: Related requests in the same Slack thread can continue the

80 coding task and environment when they use the same account to run it. A

81 request using another account may start a separate coding task. Start a new

82 conversation when you need a different environment.

83 

84Sharing an environment doesn't grant repository access or share your personal

85credential values. Review its [environment-owned values and prepared

86files](https://learn.chatgpt.com/docs/environments/cloud-environments#share-within-an-enterprise-workspace)

87before sharing, because those can be available to people who use the environment.

88 

89If no eligible shared environment is available, resolve the environment or

90access issue before retrying. For service access, see

91[Connect to services](https://learn.chatgpt.com/docs/environments/cloud-environments#connect-to-services)

92and [Environment variables and network secrets](https://learn.chatgpt.com/docs/environments/cloud-environments#configure-environment-variables-and-network-secrets).

93 

94<a id="enterprise-data-controls"></a>

95 

96## Review approvals and results

97 

98When a request needs your authorization, ChatGPT can show a private approval

99card with **Allow** and **Deny** controls. Review the assignment and any

100available environment choice before deciding.

101 

102ChatGPT can post a message in the original thread when the task starts. When the

103**Follow along** and **Cancel** controls are available, they appear for the

104requester. Use **Follow along** to open the task and inspect its work; the

105channel reply doesn't give every channel member access to the underlying task.

106 

107ChatGPT returns the result to the thread. Review the answer, changes, and

108reported checks before using or merging it.

109Mention `@ChatGPT` in the thread to request a correction or follow-up.

110 

111## Data usage, privacy, and security

112 

113A response posted to a Slack channel can be read by people with access to that

114channel. Ask ChatGPT to share only information appropriate for that audience. A

115private approval card doesn't make the resulting channel reply private.

116 

117Keep secrets out of Slack prompts and use the environment's credential controls

118for repository work. Review [Agent Security](https://learn.chatgpt.com/docs/environments/cloud-environments#agent-security)

119and the [deployment access

120boundaries](https://learn.chatgpt.com/docs/enterprise/chatgpt-slack-and-teams#security-faq), and follow your

121workspace's data and app policies.

122 

123## Move to the ChatGPT app

124 

125If you previously used `@Codex`, start new requests with `@ChatGPT` after your

126admin enables the ChatGPT app. Follow any connection and approval prompts.

127 

128## Tips and troubleshooting

129 

130- **No response**: Confirm that ChatGPT is enabled for the channel and mention

131 `@ChatGPT` explicitly. Use a channel within your organization rather than a

132 Slack Connect channel.

133- **Account connection requested again**: Check that you connected ChatGPT to

134 the Slack workspace where you're making the request, then retry in the same

135 thread.

136- **No eligible Cloud environment**: Check that the environment is published and

137 shared with the workspace, and that the account running the task has the

138 required access. A personal Cloud environment won't appear in this flow.

139- **A coding task won't start**: Ask your admin to confirm that Cloud delegation

140 is available and Codex Cloud is enabled for your workspace. Where Codex Cloud

141 role-based access control is enabled, check that both the deployment's

142 service account and your account have Codex Cloud access. Also check your

143 access to the selected environment and its repositories.

144- **Different environment needed**: Start a new conversation and name the

145 repository or shared environment you want to use.

146- **Task controls unavailable**: The **Follow along** and **Cancel** controls

147 depend on the deployment's configuration and are intended for the requester.

148- **Long threads**: Summarize the relevant issue, expected outcome, and repository

149 in your latest request so the task has enough context.

mcp.md +19 −7

Details

62 62 

63## Use MCP-backed tools in ChatGPT web63## Use MCP-backed tools in ChatGPT web

64 64 

65Continuing a conversation using Local computer access with Work Cloud on another device doesn't install plugins or grant access to connected accounts.

66 

67In Local computer access with Work Cloud, the enterprise `mcp_servers` TOML requirement in Agent Security applies to local executors. Cloud containers retain Work Cloud policies. Local MCP servers and transports may not be available in the cloud; check connectivity and authentication separately.

68 

69For enterprise hooks in Local computer access with Work Cloud:

70 

71- **Enterprise hooks.** Where enabled for your workspace, Local computer access with Work Cloud supports admin-defined MCP hooks that run on the cloud coordinator (orchestrator) for supported lifecycle and tool events. Command hooks and hooks from local configuration or plugins are not supported with cloud orchestration, even when tools execute locally.

72- **Auditing.** Before relying on these hooks, test the callback connection, confirm the events it receives, and check how failures affect the task. MCP hooks do not provide a complete Compliance API audit trail.

73- **Limitations:** Command hooks and hooks from local configuration or plugins are not supported with cloud orchestration, even when tools execute locally. Consumers do not have hooks support in this feature. When both orchestration and execution are local, existing supported hooks continue to work in local-only Work and Codex threads. Admins can still configure supported managed hooks in Agent Security for those workflows.

74 

75See [Hooks](https://learn.chatgpt.com/docs/hooks) and the [Configuration Reference](https://learn.chatgpt.com/docs/config-file/config-reference) for support scope.

76 

65In a hosted ChatGPT Work chat, install a [plugin](https://learn.chatgpt.com/docs/plugins) to use its77In a hosted ChatGPT Work chat, install a [plugin](https://learn.chatgpt.com/docs/plugins) to use its

66bundled connectors and remote MCP tools. After installation, Chat and Work can78bundled connectors and remote MCP tools. After installation, Chat and Work can

67use those tools. Workspace administrators can control which plugins and tools79use those tools. Workspace administrators can control which plugins and tools


262configured URL with the server-specific callback ID appended. Always register274configured URL with the server-specific callback ID appended. Always register

263the exact callback displayed by `codex mcp add`.275the exact callback displayed by `codex mcp add`.

264 276 

265For portless `http://127.0.0.1` callbacks, Codex omits the listener port from277For `http://127.0.0.1` callbacks without an explicit port, Codex omits the listener port from

266the URL it displays and stores, then inserts the active listener port during278the URL it displays and stores, then inserts the active listener port during

267authorization. This substitution doesn't apply to `localhost`, IPv6 hosts,279authorization. This substitution doesn't apply to `localhost`, IPv6 hosts,

268HTTPS URLs, or callbacks that already include a port. Authorization servers280HTTPS URLs, or callbacks that already include a port. Authorization servers


272Set `mcp_oauth_callback_port` to choose a fixed global listener port, or set284Set `mcp_oauth_callback_port` to choose a fixed global listener port, or set

273`mcp_servers.<server-name>.oauth.callback_port` to override it for one server.285`mcp_servers.<server-name>.oauth.callback_port` to override it for one server.

274An explicit port in the callback URL doesn't configure the listener. For a286An explicit port in the callback URL doesn't configure the listener. For a

275direct loopback callback, use portless `http://127.0.0.1` or configure the same287direct loopback callback, use `http://127.0.0.1` without an explicit port or configure the same

276explicit port for both the callback URL and listener. A proxied callback can288explicit port for both the callback URL and listener. A proxied callback can

277intentionally use an external URL port that differs from the local listener289intentionally use an external URL port that differs from the local listener

278port. Local callback URLs bind to the local interface; non-local callback URLs290port. Local callback URLs bind to the local interface; non-local callback URLs


299loopback URL. Otherwise, Codex uses DCR when available. A configured OAuth client311loopback URL. Otherwise, Codex uses DCR when available. A configured OAuth client

300ID always takes precedence and skips client registration.312ID always takes precedence and skips client registration.

301 313 

302For CIMD, Codex uses a ChatGPT-hosted metadata document specific to the MCP314For CIMD without issuer-bound responses, Codex CLI uses a ChatGPT-hosted metadata

303server:315document specific to the MCP server:

304 316 

305```text317```text

306https://chatgpt.com/oauth/codex/<callback_id>/client.json318https://chatgpt.com/oauth/codex/<callback_id>/client.json


315callback hosts, paths, or query parameters require DCR or a configured OAuth327callback hosts, paths, or query parameters require DCR or a configured OAuth

316client ID.328client ID.

317 329 

318Support for a stable, shared CIMD document is in development and coming soon:330Codex CLI also supports a stable, shared CIMD document:

319 331 

320```text332```text

321https://chatgpt.com/oauth/codex/client.json333https://chatgpt.com/oauth/codex/client.json

322```334```

323 335 

324Codex will use the stable document with the shared `/callback` path when the336Codex CLI uses the stable document with the shared `/callback` path when the

325authorization server advertises337authorization server advertises

326`authorization_response_iss_parameter_supported: true`, provides a valid338`authorization_response_iss_parameter_supported: true`, provides a valid

327`issuer` in its metadata, and includes a matching `iss` in authorization339`issuer` in its metadata, and includes a matching `iss` in authorization

328responses. Servers without issuer-bound responses will continue using the340responses. Servers without issuer-bound responses use the

329callback-specific document.341callback-specific document.

330 342 

331To choose a registration method for one CLI login, use343To choose a registration method for one CLI login, use

Details

380 **380 **

381 Follow the migration steps, then review and install your plugin.381 Follow the migration steps, then review and install your plugin.

382 **382 **

383

384 

385 This video shows an earlier app interface. In the current app, select

386 **Customize**, then **Plugins**, in the left

387 navigation to find your plugins.

388

389 

383 </figcaption>390 </figcaption>

384</figure>391</figure>

385 392 

model-selection.md +19 −16

Details

16 16 

17<ModelRecommender client:load />17<ModelRecommender client:load />

18 18 

19### When to consider GPT-6.1 Sol

20 

21Consider GPT-6.1 Sol for complex projects where cost matters, such as

22creating a board presentation from financial results or building a website

23from a product brief. Compare it with Astra on the same task to assess the

24tradeoff between quality and cost.

25 

26See the [API model page](https://developers.openai.com/api/docs/models/gpt-6.1-sol) for specifications

27and API pricing, or [Codex and ChatGPT Work availability](https://learn.chatgpt.com/docs/models#gpt-6.1-sol)

28for access through your ChatGPT plan.

29 

19## How to think about models and reasoning effort30## How to think about models and reasoning effort

20 31 

21 32 


33 44 

34 Fine-grained edits, well-scoped problem-solving, and simple data extraction.45 Fine-grained edits, well-scoped problem-solving, and simple data extraction.

35 46 

362. **Luna · Medium**472. **Luna · Extra high**

37 

38 Creating from clear briefs and making coordinated updates to existing work.

39 

403. **Luna · Extra high**

41 48 

42 Finding current context across multiple apps, prioritizing work, and solving problems with clear constraints.49 Finding current context across multiple apps, prioritizing work, and solving problems with clear constraints.

43 50 

444. **Sol · Low**513. **GPT-6.1 Sol · Medium**

45 

46 Focused writing and editing, fact-checking, and straightforward work in apps.

47 

485. **Sol · Medium**

49 52 

50 Everyday coding, research, and workflows that need judgment and completeness.53 Complex technical work and coordinated deliverables you expect to revise.

51 54 

526. **Sol · Extra high**554. **GPT-6.1 Sol · Extra high**

53 56 

54 Deeper analysis, thorough verification, and careful review of documents, data, and code.57 Polished deliverables, connected visual systems, and decisions built from conflicting evidence.

55 58 

567. **Astra · Low**595. **Astra · Low**

57 60 

58 Concise writing and content adaptation that preserve facts and nuance.61 Concise writing and content adaptation that preserve facts and nuance.

59 62 

608. **Astra · Medium**636. **Astra · Medium**

61 64 

62 Ambitious projects that need broad context, reliable interactions, and complete results.65 Ambitious projects that need broad context, reliable interactions, and complete results.

63 66 

649. **Astra · Extra high**677. **Astra · Extra high**

65 68 

66 Demanding analysis and complex deliverables with exacting requirements.69 Demanding analysis and complex deliverables with exacting requirements.

67 70 

models.md +78 −130

Details

95`--model` or its `-m` alias:90`--model` or its `-m` alias:

96 91 

97```bash92```bash

98codex --model gpt-6-sol93codex --model gpt-6.1-sol

99```94```

100 95 

101 96 

102The same option works with non-interactive runs. For example:97The same option works with non-interactive runs. For example:

103 98 

104```bash99```bash

105codex exec -m gpt-6-sol "Review the current changes"100codex exec -m gpt-6.1-sol "Review the current changes"

106```101```

107 102 

108 103 


115[subagents](https://learn.chatgpt.com/docs/agent-configuration/subagents) to accelerate complex work,110[subagents](https://learn.chatgpt.com/docs/agent-configuration/subagents) to accelerate complex work,

116making it useful for larger tasks that can be split across subagents.111making it useful for larger tasks that can be split across subagents.

117 112 

118

119 

120 <CodexReasoningLevelTerminal

121 client:load

122 className="lg:mt-7 lg:justify-self-end"

123 />

124 

125 

126 

127</ContentModeSwitch>113</ContentModeSwitch>

128 114 

129<ContentModeSwitch group="codex-surface" id="ide">115<ContentModeSwitch group="codex-surface" id="ide">


166 152 

167## Recommended models153## Recommended models

168 154 

169GPT-6 Sol and GPT-6 Luna bring improved coding, factual reliability, and155For complex coding and agentic workflows, use GPT-6.1 Sol when available to your

170communication to lower-cost models. Use Sol for complex coding and agentic156account and client. Use Luna for focused, repeatable tasks. Select `gpt-6.1-sol`

171workflows, and Luna for focused, repeatable tasks. Select `gpt-6-sol` or157or `gpt-6-luna` in your model picker or saved configuration when available.

172`gpt-6-luna` in your model picker or saved configuration when available.158 

159GPT-6.1 Sol offers near-Astra performance for complex work at a lower cost

160than Astra. See [GPT-6.1 Sol](#gpt-61-sol) for its separate rollout.

173 161 

174In ChatGPT, GPT-6 Sol and GPT-6 Luna are available in Work and Codex. They162In ChatGPT, GPT-6.1 Sol, GPT-6 Sol, and GPT-6 Luna are available in Work and

175aren't available in Chat.163Codex. They aren't available in Chat.

176 164 

177GPT-5.6 Sol, GPT-5.6 Terra, and GPT-5.6 Luna remain available during the rollout. Selecting a165GPT-5.6 Sol, GPT-5.6 Terra, and GPT-5.6 Luna remain available during the rollout. Selecting a

178new model doesn't change workspace permissions or grant access to it.166new model doesn't change workspace permissions or grant access to it.

179 167 

168For Astra Ultrafast availability and credit usage on Pro $500 and eligible

169Enterprise and Edu plans, see [Speed](https://learn.chatgpt.com/docs/agent-configuration/speed#ultrafast-mode).

170 

180<a id="app-compare-models"></a>171<a id="app-compare-models"></a>

181 172 

182 173 


210 { title: "ChatGPT web", value: true },201 { title: "ChatGPT web", value: true },

211 { title: "Codex CLI", value: true },202 { title: "Codex CLI", value: true },

212 { title: "Codex IDE extension", value: true },203 { title: "Codex IDE extension", value: true },

213 { title: "Codex cloud", value: false },

214 { title: "ChatGPT Credits", value: true },204 { title: "ChatGPT Credits", value: true },

215 { title: "API Access", value: true },205 { title: "API Access", value: true },

216 ],206 ],


219 209 

220<ModelDetails210<ModelDetails

221 client:load211 client:load

222 name="gpt-6-sol"212 name="gpt-6.1-sol"

223 slug="gpt-6-sol"213 slug="gpt-6.1-sol"

224 imageLabel="6 Sol"214 imageLabel="6.1 Sol"

225 wallpaperUrl="/images/api/models/gpt-5.6-sol.webp"215 wallpaperUrl="/images/api/models/gpt-6.1-sol-texture.webp"

226 description="Built for complex coding and agentic workflows, with stronger factual reliability and clearer communication than GPT-5.6 Sol."216 description="Near-Astra performance for complex work at a lower cost than Astra. Consider it for repeated, long-running work across code, apps, and documents."

227 data={{217 data={{

228 features: [218 features: [

229 {219 {


240 {230 {

241 title: "Speed",231 title: "Speed",

242 value: "",232 value: "",

243 icons: ["openai.Flash", "openai.Flash"],233 icons: ["openai.Flash", "openai.Flash", "openai.Flash"],

244 },234 },

245 { title: "Work and Codex in the desktop app", value: true },235 { title: "Work and Codex in the desktop app", value: true },

246 { title: "ChatGPT Work on the web", value: true },236 { title: "ChatGPT Work on the web", value: true },


279 { title: "ChatGPT Work on the web", value: true },269 { title: "ChatGPT Work on the web", value: true },

280 { title: "Codex CLI", value: true },270 { title: "Codex CLI", value: true },

281 { title: "Codex IDE extension", value: true },271 { title: "Codex IDE extension", value: true },

282 { title: "Codex cloud", value: false },

283 { title: "ChatGPT Credits", value: true },272 { title: "ChatGPT Credits", value: true },

284 { title: "API Access", value: true },273 { title: "API Access", value: true },

285 ],274 ],


294[workspace model availability](https://learn.chatgpt.com/docs/enterprise/workspace-model-availability)283[workspace model availability](https://learn.chatgpt.com/docs/enterprise/workspace-model-availability)

295for Enterprise access.284for Enterprise access.

296 285 

297Start with the default Power setting available to your account. Move toward286</ContentModeSwitch>

298 **Smarter** for deeper reasoning or **Faster** for faster, lower-cost work.

299 Open **Advanced** to choose a specific model, reasoning effort, or speed.

300 287 

301<ContentModeSwitch group="codex-surface" ids="app,web">288<a id="gpt-6.1-sol"></a>

302 289 

303The six Power presets shown are Luna High, Sol Light (the starting290### GPT-6.1 Sol

304preset), Sol Medium, Astra Light, Astra Medium, and Astra Extra High. Some paid plans omit

305Astra Extra High. Advanced controls are illustrative; available options

306and defaults vary by plan, client, workspace settings, and rollout.

307 291 

308</ContentModeSwitch>292The GPT-6.1 Sol launch rollout includes Plus, Pro, Business, Enterprise, and Edu

293in Codex in the desktop app and CLI, and ChatGPT Work on the web and mobile.

294For Enterprise and Edu, the plan keeps GPT-6.1 Sol off by default until an

295administrator enables it.

296Free and Go are not included at launch.

309 297 

310<ContentModeSwitch group="codex-surface" ids="app,cli,ide">298Standard and Fast modes are available at launch. Ultrafast support for

299GPT-6.1 Sol is coming later.

311 300 

312### Experimental context management301Use `gpt-6.1-sol`. Available controls depend on your plan, client, and workspace

302settings.

303Reasoning effort ranges from Light to Ultra. Max and Ultra depend on your settings.

313 304 

314On supported Codex clients, users signed in with ChatGPT Plus or Pro can opt305See [pricing](https://learn.chatgpt.com/docs/pricing) for credit usage and

315in to experimental context management. Astra keeps notes across context306[model selection](https://developers.openai.com/api/docs/guides/model-selection#when-to-consider-gpt-61-sol)

316windows and can search earlier messages and tool results from the same task.307for guidance on comparing it with Astra and Luna. To see how its API

317This experiment is off by default and isn't available with Business, Enterprise, or308specifications differ from the previous Sol model, [compare GPT-6.1 Sol and

318API-key sign-in at launch.309GPT-6 Sol](https://developers.openai.com/api/docs/models/compare?model=gpt-6.1-sol&model2=gpt-6-sol).

319 310 

320To opt in, set `features.context_management.experimental_mode = true` in your311In the ChatGPT desktop app and ChatGPT Work on the web, start with the default

321`config.toml`, then start a new task. See the [configuration reference](https://learn.chatgpt.com/docs/config-file/config-reference)312 Power setting available to your account. Move toward **Smarter** for deeper

322for the setting and [configuration basics](https://learn.chatgpt.com/docs/config-file/config-basic)313 reasoning or **Faster** for faster, lower-cost work. Open **Advanced** to

323for the file location. Workspace requirements still apply.314 choose a specific model, reasoning effort, or speed.

315 

316<ContentModeSwitch group="codex-surface" ids="app,web,cli,ide">

317 

318<ContentModeSwitch group="codex-surface" ids="app,web">

319 

320The six Power presets shown are Luna High, GPT-6 Sol Light (selected

321in this example), GPT-6 Sol Medium, Astra Light, Astra Medium, and Astra Extra

322High. Some paid plans omit Astra Extra High. Advanced controls are illustrative;

323available options and defaults vary by plan, client, workspace settings, and rollout.

324 324 

325</ContentModeSwitch>325</ContentModeSwitch>

326 326 

327<a id="choosing-sol-terra-and-luna"></a>327<a id="choosing-sol-terra-and-luna"></a>

328 328 

329## Choosing Astra, Sol, and Luna329<a id="choosing-astra-sol-and-luna"></a>

330<a id="app-choosing-astra-sol-and-luna"></a>

331<a id="web-choosing-astra-sol-and-luna"></a>

332<a id="cli-choosing-astra-sol-and-luna"></a>

333<a id="ide-choosing-astra-sol-and-luna"></a>

334 

335## Choosing a model

330 336 

331Choose **Astra** when a task needs the strongest capability across multiple337Choose **Astra** when a task needs the strongest capability across steps and

332steps and tools. **Sol** suits everyday work and complex coding,338tools. **GPT-6.1 Sol** offers near-Astra performance at a lower cost

333and **Luna** suits clear, repeatable tasks.339than Astra. Use **GPT-6.1 Sol** when available to your account and client, and

340**Luna** for clear, repeatable tasks.

334 341 

335### Where each model shines342### Where each model shines

336 343 


339 Give it the sources, templates, constraints, and checks that define a useful346 Give it the sources, templates, constraints, and checks that define a useful

340 result. Astra is better at asking focused questions and incorporating your347 result. Astra is better at asking focused questions and incorporating your

341 guidance while keeping the original goal and constraints in view.348 guidance while keeping the original goal and constraints in view.

342- **Sol, for everyday and complex work.** Choose Sol for ambiguous, difficult, or349- **GPT-6.1 Sol, for repeated, long-running work.** Consider GPT-6.1 Sol for

343 high-value tasks that need extra analysis, judgment, or polish, such as350 work across code, apps, and documents when cost matters. Keep Astra for your

344 complex code changes, deep research, or polished documents. For narrower351 most demanding work.

345 tasks, define what done looks like to keep the work focused.

346- **Luna, for clear, repeatable tasks.** Choose Luna for specific, high-volume352- **Luna, for clear, repeatable tasks.** Choose Luna for specific, high-volume

347 tasks when you know what a good result looks like, such as extraction,353 tasks when you know what a good result looks like, such as extraction,

348 classification, transformation, and structured summaries.354 classification, transformation, and structured summaries.

349 355 

350### Pick a reasoning effort356### Pick a reasoning effort

351 357 

352Start with **Medium** for Sol, **High** for Luna, or **Light** for Astra.358For GPT-6.1 Sol, start with the reasoning effort available by default in your

359client and adjust based on the task. Start with **High** for Luna or **Light**

360for Astra.

353In configuration, Astra's Light setting is `low`. Increase the effort for tasks361In configuration, Astra's Light setting is `low`. Increase the effort for tasks

354that need more planning, analysis, or checking.362that need more planning, analysis, or checking.

355 363 


366 374 

367**Max** gives the selected model more time to reason about a single task. Use it375**Max** gives the selected model more time to reason about a single task. Use it

368for the hardest problems, when depth matters more than speed or usage. If you376for the hardest problems, when depth matters more than speed or usage. If you

369don't see Max in your options, you'll have to enable it in your app settings.377don't see Max in the ChatGPT desktop app, check your app settings.

370 378 

371**Ultra** uses [subagents](https://learn.chatgpt.com/docs/agent-configuration/subagents) to handle379**Ultra** uses [subagents](https://learn.chatgpt.com/docs/agent-configuration/subagents) to handle

372separate parts of a complex task in parallel. Choose it when you can divide the380separate parts of a complex task in parallel. Choose it when you can divide the


374 382 

375GPT-6 Luna supports reasoning efforts up to **Max**, but not **Ultra**.383GPT-6 Luna supports reasoning efforts up to **Max**, but not **Ultra**.

376 384 

385In the CLI, use `/model`, choose a model, then select **More reasoning…**

386to see its supported Max or Ultra options.

387 

377If your model supports Ultra but it doesn't appear in the desktop app's model388If your model supports Ultra but it doesn't appear in the desktop app's model

378slider, go to **Settings** > **Configuration**, then turn on389slider, go to **Settings** > **Configuration**, then turn on

379**Ultra in model picker slider**.390**Ultra in model picker slider**.


417 { title: "ChatGPT web", value: true },428 { title: "ChatGPT web", value: true },

418 { title: "Codex CLI", value: true },429 { title: "Codex CLI", value: true },

419 { title: "Codex IDE extension", value: true },430 { title: "Codex IDE extension", value: true },

420 { title: "Codex cloud", value: false },

421 { title: "ChatGPT Credits", value: true },

422 { title: "API Access", value: true },

423 ],

424 }}

425 />

426 

427 <ModelDetails

428 client:load

429 name="gpt-5.4"

430 slug="gpt-5.4"

431 imageLabel="5.4"

432 wallpaperUrl="/images/api/models/gpt-5.4.jpg"

433 description="Flagship model for professional work with strong coding, reasoning, tool use, and agentic workflow capabilities."

434 data={{

435 features: [

436 {

437 title: "Capability",

438 value: "",

439 icons: [

440 "openai.SparklesFilled",

441 "openai.SparklesFilled",

442 "openai.SparklesFilled",

443 ],

444 },

445 {

446 title: "Speed",

447 value: "",

448 icons: ["openai.Flash", "openai.Flash", "openai.Flash"],

449 },

450 { title: "ChatGPT desktop app", value: true },

451 { title: "ChatGPT web", value: true },

452 { title: "Codex CLI", value: true },

453 { title: "Codex IDE extension", value: true },

454 { title: "Codex cloud", value: false },

455 { title: "ChatGPT Credits", value: true },

456 { title: "API Access", value: true },

457 ],

458 }}

459 />

460 

461 <ModelDetails

462 client:load

463 name="gpt-5.4-mini"

464 slug="gpt-5.4-mini"

465 imageLabel="5.4 Mini"

466 wallpaperUrl="/images/api/models/gpt-5-mini.jpg"

467 description="Fast, efficient mini model for responsive coding tasks and subagents."

468 data={{

469 features: [

470 {

471 title: "Capability",

472 value: "",

473 icons: ["openai.SparklesFilled", "openai.SparklesFilled"],

474 },

475 {

476 title: "Speed",

477 value: "",

478 icons: [

479 "openai.Flash",

480 "openai.Flash",

481 "openai.Flash",

482 "openai.Flash",

483 ],

484 },

485 { title: "ChatGPT desktop app", value: true },

486 { title: "ChatGPT web", value: true },

487 { title: "Codex CLI", value: true },

488 { title: "Codex IDE extension", value: true },

489 { title: "Codex cloud", value: false },

490 { title: "ChatGPT Credits", value: true },431 { title: "ChatGPT Credits", value: true },

491 { title: "API Access", value: true },432 { title: "API Access", value: true },

492 ],433 ],


504 445 

505## Deprecated Codex models446## Deprecated Codex models

506 447 

448GPT-5.3-Codex-Spark retired on September 14, 2026, and is no longer available

449in the ChatGPT desktop app, Codex CLI, or IDE extension. Update saved

450configurations, custom agents, and scripts that select `gpt-5.3-codex-spark`

451to use an [available model](https://learn.chatgpt.com/docs/models#recommended-models). See the

452[Spark retirement notice](https://learn.chatgpt.com/docs/changelog#codex-2026-09-14-codex-spark-deprecation).

453 

507GPT-5.5 retires from Codex with ChatGPT sign-in on October 14, 2026. Replace454GPT-5.5 retires from Codex with ChatGPT sign-in on October 14, 2026. Replace

508`gpt-5.5` with a model available to your account and client. See455`gpt-5.5` with a model available to your account and client. See

509[GPT-5.5 retirement](https://learn.chatgpt.com/docs/models#gpt-55-retirement) for plan-specific456[GPT-5.5 retirement](https://learn.chatgpt.com/docs/models#gpt-55-retirement) for plan-specific


532ChatGPT desktop app, Codex CLI, or IDE extension uses a recommended model.479ChatGPT desktop app, Codex CLI, or IDE extension uses a recommended model.

533 480 

534```toml481```toml

535model = "gpt-6-sol"482model = "gpt-6.1-sol"

536```483```

537 484 

538 485 

539## Choose a model for cloud chats

540 

541Currently, you can't change the default model for Codex cloud chats.

542 

543</ContentModeSwitch>486</ContentModeSwitch>

permissions.md +28 −13

Details

38Windows. See [Scope and enforcement](#scope-and-enforcement) for platform-specific38Windows. See [Scope and enforcement](#scope-and-enforcement) for platform-specific

39details and caveats.39details and caveats.

40 40 

41For Codex cloud network settings, see [Internet Access](https://learn.chatgpt.com/docs/cloud/internet-access).41For current Codex Cloud network settings, see [Connect to services](https://learn.chatgpt.com/docs/environments/cloud-environments#connect-to-services). For Codex Cloud (Legacy), see [Internet access](https://learn.chatgpt.com/docs/cloud/internet-access).

42 42 

43## Define and select a profile43## Define and select a profile

44 44 


177| `permissions.<name>.description` | String | None | Provides a human-readable description for the profile. A profile does not inherit its parent's description through `extends`. |177| `permissions.<name>.description` | String | None | Provides a human-readable description for the profile. A profile does not inherit its parent's description through `extends`. |

178| `permissions.<name>.extends` | String profile name | None | Starts this profile from another named profile or the built-in `:read-only` or `:workspace` profile. Codex rejects `:danger-full-access`, unknown parents, and inheritance cycles. |178| `permissions.<name>.extends` | String profile name | None | Starts this profile from another named profile or the built-in `:read-only` or `:workspace` profile. Codex rejects `:danger-full-access`, unknown parents, and inheritance cycles. |

179| `[permissions.<name>.workspace_roots]` | Table | None | Adds profile-defined workspace roots that receive `:workspace_roots` filesystem rules alongside the current session's runtime workspace roots. |179| `[permissions.<name>.workspace_roots]` | Table | None | Adds profile-defined workspace roots that receive `:workspace_roots` filesystem rules alongside the current session's runtime workspace roots. |

180| `permissions.<name>.workspace_roots."<path>"` | Boolean | `false` | Adds the path to the profile's workspace root set when `true`. Entries set to `false` remain inactive. |180| `permissions.<name>.workspace_roots."<path>"` | boolean | `false` | Adds the path to the profile's workspace root set when `true`. Entries set to `false` remain inactive. |

181| `[permissions.<name>.filesystem]` | Table | None | Maps filesystem paths to access values or scoped subpath maps. Missing or empty filesystem tables keep filesystem access restricted and emit a startup warning. |181| `[permissions.<name>.filesystem]` | Table | None | Maps filesystem paths to access values or scoped subpath maps. Missing or empty filesystem tables keep filesystem access restricted and emit a startup warning. |

182| `permissions.<name>.filesystem.glob_scan_max_depth` | Number | None | Limits deny-read glob expansion on Linux, WSL, and native Windows when Codex snapshots matches before sandbox startup. Larger values can increase startup scanning work. Use a value of at least `1` when an unbounded `**` pattern needs bounded pre-expansion. |182| `permissions.<name>.filesystem.glob_scan_max_depth` | Number | None | Limits deny-read glob expansion on Linux, WSL, and native Windows when Codex snapshots matches before sandbox startup. Larger values can increase startup scanning work. Use a value of at least `1` when an unbounded `**` pattern needs bounded pre-expansion. |

183| `[permissions.<name>.filesystem]."<path>"` | `read`, `write`, or `deny` | None | Grants direct access for a supported path. `deny` denies access and wins over equally specific `write` or `read` entries. Codex rejects direct write rules that the active runtime cannot enforce. |183| `[permissions.<name>.filesystem]."<path>"` | `read`, `write`, or `deny` | None | Grants direct access for a supported path. `deny` denies access and wins over equally specific `write` or `read` entries. Codex rejects direct write rules that the active runtime cannot enforce. |

184| `[permissions.<name>.filesystem."<path>"]."<subpath>"` | `read`, `write`, or `deny` | None | Grants access to a descendant of `<path>`. Use `.` for the base path. Other subpaths must be relative descendants and cannot contain `.` or `..` components. |184| `[permissions.<name>.filesystem."<path>"]."<subpath>"` | `read`, `write`, or `deny` | None | Grants access to a descendant of `<path>`. Use `.` for the base path. Other subpaths must be relative descendants and cannot contain `.` or `..` components. |

185| `[permissions.<name>.network]` | Table | None | Configures command network access and the policy that an active network proxy enforces. Enable `features.network_proxy` unless administrator-managed network requirements start the proxy. |185| `[permissions.<name>.network]` | Table | None | Configures command network access and the policy that an active network proxy enforces. Enable `features.network_proxy` unless administrator-managed network requirements start the proxy. |

186| `permissions.<name>.network.enabled` | Boolean | `false` | Enables network access for commands in the profile. It does not start the network proxy; without an active proxy, commands can connect directly without domain restrictions. |186| `permissions.<name>.network.enabled` | boolean | `false` | Enables network access for commands in the profile. It does not start the network proxy; without an active proxy, commands can connect directly without domain restrictions. |

187| `[permissions.<name>.network.domains]` | Table | None | Maps host patterns to `allow` or `deny`. Rules apply only when the network proxy is active. The active proxy blocks domain requests if there are no `allow` entries, and deny entries override allow entries. |187| `[permissions.<name>.network.domains]` | Table | None | Maps host patterns to `allow` or `deny`. Rules apply only when the network proxy is active. The active proxy blocks domain requests if there are no `allow` entries, and deny entries override allow entries. |

188| `permissions.<name>.network.domains."<pattern>"` | `allow` or `deny` | None | Supports exact hosts, `*.example.com` for subdomains, `**.example.com` for apex plus subdomains, and `*` as an allow-only global wildcard. Host patterns are normalized by trimming, lowercasing, stripping a trailing dot, and stripping simple ports or brackets. |188| `permissions.<name>.network.domains."<pattern>"` | `allow` or `deny` | None | Supports exact hosts, `*.example.com` for subdomains, `**.example.com` for apex plus subdomains, and `*` as an allow-only global wildcard. Host patterns are normalized by trimming, converting to lowercase, stripping a trailing dot, and stripping port numbers or brackets. |

189| `[permissions.<name>.network.unix_sockets]` | Table | None | Maps Unix socket allowlist overrides. Use only for local integrations such as Docker. |189| `[permissions.<name>.network.unix_sockets]` | Table | None | Maps Unix socket allowlist overrides. Use only for local integrations such as Docker. |

190| `permissions.<name>.network.unix_sockets."<path>"` | `allow` or `deny` | None | Adds an absolute Unix socket path to the effective allowlist with `allow`, or rejects it with `deny`. Denied entries are omitted from the effective allowlist. |190| `permissions.<name>.network.unix_sockets."<path>"` | `allow` or `deny` | None | Adds an absolute Unix socket path to the effective allowlist with `allow`, or rejects it with `deny`. Denied entries are omitted from the effective allowlist. |

191| `permissions.<name>.network.proxy_url` | URL string | `http://127.0.0.1:3128` | HTTP proxy listener used for `HTTP_PROXY`, `HTTPS_PROXY`, websocket proxy variables, and related tool proxy environment variables. |191| `permissions.<name>.network.proxy_url` | URL string | `http://127.0.0.1:3128` | HTTP proxy listener used for `HTTP_PROXY`, `HTTPS_PROXY`, WebSocket proxy variables, and related tool proxy environment variables. |

192| `permissions.<name>.network.enable_socks5` | Boolean | `true` | Enables the SOCKS5 listener used for `ALL_PROXY` and FTP proxy variables. |192| `permissions.<name>.network.enable_socks5` | boolean | `true` | Enables the SOCKS5 listener used for `ALL_PROXY` and FTP proxy variables. |

193| `permissions.<name>.network.socks_url` | URL string | `http://127.0.0.1:8081` | SOCKS5 listener address. |193| `permissions.<name>.network.socks_url` | URL string | `http://127.0.0.1:8081` | SOCKS5 listener address. |

194| `permissions.<name>.network.enable_socks5_udp` | Boolean | `true` | Enables SOCKS5 UDP support when the SOCKS5 listener is enabled. |194| `permissions.<name>.network.enable_socks5_udp` | boolean | `true` | Enables SOCKS5 UDP support when the SOCKS5 listener is enabled. |

195| `permissions.<name>.network.allow_upstream_proxy` | Boolean | `true` | Allows the network sandbox proxy to respect upstream `HTTP(S)_PROXY` and `ALL_PROXY` settings for outbound requests. |195| `permissions.<name>.network.allow_upstream_proxy` | boolean | `true` | Allows the network sandbox proxy to respect upstream `HTTP(S)_PROXY` and `ALL_PROXY` settings for outbound requests. |

196| `permissions.<name>.network.allow_local_binding` | Boolean | `false` | Disables the local/private-network guard when `true`. When `false`, exact local literals such as `localhost` or `127.0.0.1` must be explicitly allowlisted, and hostnames that resolve to local or private IPs remain blocked. |196| `permissions.<name>.network.allow_local_binding` | boolean | `false` | Disables the local/private-network guard when `true`. When `false`, exact local literals such as `localhost` or `127.0.0.1` must be explicitly allowlisted, and hostnames that resolve to local or private IPs remain blocked. |

197| `permissions.<name>.network.dangerously_allow_non_loopback_proxy` | Boolean | `false` | Allows proxy listeners to bind non-loopback addresses. Leave unset for ordinary local development. |197| `permissions.<name>.network.dangerously_allow_non_loopback_proxy` | boolean | `false` | Allows proxy listeners to bind non-loopback addresses. Leave unset for ordinary local development. |

198| `permissions.<name>.network.dangerously_allow_all_unix_sockets` | Boolean | `false` | Bypasses the Unix socket allowlist where Unix socket proxying is supported. This is a broad local escape hatch. |198| `permissions.<name>.network.dangerously_allow_all_unix_sockets` | boolean | `false` | Bypasses the Unix socket allowlist where Unix socket proxying is supported. This is a broad local escape hatch. |

199 199 

200## Filesystem permissions200## Filesystem permissions

201 201 


309 309 

310`glob_scan_max_depth` must be at least `1`. Higher values scan deeper before310`glob_scan_max_depth` must be at least `1`. Higher values scan deeper before

311sandbox startup, which can add startup work on Linux, WSL, and native Windows.311sandbox startup, which can add startup work on Linux, WSL, and native Windows.

312If you prefer not to use bounded expansion, enumerate explicit depths such as312If you prefer not to use bounded expansion, list explicit depths such as

313`*.env`, `*/*.env`, and `*/*/*.env`.313`*.env`, `*/*.env`, and `*/*/*.env`.

314 314 

315Add reusable workspace roots to the profile when the same rules should apply to315Add reusable workspace roots to the profile when the same rules should apply to


444 444 

445## Scope and enforcement445## Scope and enforcement

446 446 

447<a id="synced-work-and-environment-policy"></a>

448 

449### Local computer access with Work Cloud and environment policy

450 

451Review the policy for each environment where Local computer access with Work Cloud runs:

452 

453- **Enterprise requirements:** For Work with local access and dots, supported Global policy governs the shared cloud orchestrator when managed policy is enabled; applicable local execution requirements govern the connected computer.

454- **Cloud execution:** Work cloud containers use existing Work Cloud policies.

455- **Local policy order:** MDM and legacy managed-device requirements rank above Agent Security. The device's system requirements file ranks below Agent Security.

456- **Policy priority:** A higher-priority policy wins even if a lower-priority policy is more specific. Within one policy, OS-specific environment overrides take priority over all-OS environment overrides, followed by Global.

457 

458Some requirements have field-specific merge rules. See [Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration) and the [Configuration Reference](https://learn.chatgpt.com/docs/config-file/config-reference) for supported fields and runtime limits. Don't assume Work Cloud supports the Codex permission profiles shown here.

459 

447Permission profiles define the boundaries for local sandboxed command460Permission profiles define the boundaries for local sandboxed command

448execution. Use them together with approval policies and the separate controls461execution. Use them together with approval policies and the separate controls

449for web search, connectors, MCP servers, the built-in browser, Computer Use,462for web search, connectors, MCP servers, the built-in browser, Computer Use,


485 use their own feature and approval controls.498 use their own feature and approval controls.

486- **Codex service traffic:** Model, authentication, and other client service499- **Codex service traffic:** Model, authentication, and other client service

487 requests use the client's separate HTTP and system-proxy settings.500 requests use the client's separate HTTP and system-proxy settings.

488- **Codex cloud:** These tasks use their environment's own501- **Codex Cloud:** These tasks use their environment's own

502 [network settings](https://learn.chatgpt.com/docs/environments/cloud-environments#connect-to-services).

503 Codex Cloud (Legacy) has separate

489 [internet access settings](https://learn.chatgpt.com/docs/cloud/internet-access).504 [internet access settings](https://learn.chatgpt.com/docs/cloud/internet-access).

490 505 

491To limit these surfaces, configure each capability directly. A command network506To limit these surfaces, configure each capability directly. A command network

plugins.md +36 −71

Details

15 15 

16On mobile, you can use plugins available to your account in Chat or Work.16On mobile, you can use plugins available to your account in Chat or Work.

17 17 

18**For workspace admins:** See [Workspace connections](https://learn.chatgpt.com/docs/enterprise/shared-connections) to configure company-managed app accounts and control who can use them. The authentication method determines which external identity and permissions a request uses.

19 

18Plugins marked **Desktop only** require the ChatGPT desktop app. You can discover these plugins on the web,20Plugins marked **Desktop only** require the ChatGPT desktop app. You can discover these plugins on the web,

19but you must open the ChatGPT desktop app to install and use them. They aren't21but you must open the ChatGPT desktop app to install and use them. They aren't

20available on mobile.22available on mobile.

21 23 

24 

25 

26 {"For help installing and using plugins, see "}

27 [{"Plugins in ChatGPT and Codex"}](https://help.openai.com/articles/20001256)

28 {" in the Help Center."}

29

30 

31 

22<ContentModeSwitch group="codex-surface" id="app">32<ContentModeSwitch group="codex-surface" id="app">

23 33 

24Open the **Plugins** tab to browse and install plugins. After installation, you34Open the **Plugins** tab to browse and install plugins. After installation, you


75- **Browser extensions:** browser capabilities that a plugin needs for its85- **Browser extensions:** browser capabilities that a plugin needs for its

76 workflow.86 workflow.

77- **Hooks:** commands that run at configured lifecycle points in the Codex87- **Hooks:** commands that run at configured lifecycle points in the Codex

78 runtime, including ChatGPT Work and Codex. Hook scripts must be88 runtime. Plugin hooks are not supported in cloud-orchestrated ChatGPT Work.

79 available in the execution environment; installing a plugin on the web doesn't89 Synced Work supports only admin-defined MCP hooks configured in Agent Security;

90 see [Work thread sync compatibility](https://learn.chatgpt.com/docs/enterprise/cloud-local-access#check-compatibility-and-data-requirements).

91 Hook scripts must be available in the execution environment; installing a

92 plugin on the web doesn't

80 deploy those scripts. Enterprise admins can deploy required scripts through93 deploy those scripts. Enterprise admins can deploy required scripts through

81 mobile device management (MDM). Review and trust plugin hooks before they run.94 mobile device management (MDM). Review and trust plugin hooks before they run.

82 See [Hooks](https://learn.chatgpt.com/docs/hooks) for setup and managed-hook policies.95 See [Hooks](https://learn.chatgpt.com/docs/hooks) for setup and managed-hook policies.


101ChatGPT and Codex use the same public plugin catalog. On the web or in the114ChatGPT and Codex use the same public plugin catalog. On the web or in the

102ChatGPT desktop app, open the **Plugins** tab to browse and install plugins.115ChatGPT desktop app, open the **Plugins** tab to browse and install plugins.

103 116 

104</ContentModeSwitch>

105 

106<ContentModeSwitch group="codex-surface" id="app">

107 

108 

109

110 

111> Illustration: Plugins Directory in the ChatGPT desktop app

112 

113 

114 

115 

116</ContentModeSwitch>117</ContentModeSwitch>

117 118 

118<ContentModeSwitch group="codex-surface" ids="app,web">119<ContentModeSwitch group="codex-surface" ids="app,web">


160 161 

161After you install a plugin, you can use it directly in the prompt window:162After you install a plugin, you can use it directly in the prompt window:

162 163 

163</ContentModeSwitch>

164 

165<ContentModeSwitch group="codex-surface" id="app">

166 

167 

168

169 

170> Illustration: Installed plugin on the Plugins page

171 

172 

173 

174 

175</ContentModeSwitch>164</ContentModeSwitch>

176 165 

177<ContentModeSwitch group="codex-surface" ids="app,web">166<ContentModeSwitch group="codex-surface" ids="app,web">

178 167 

168#### Describe the task directly

179 169 

170Ask for the outcome you want, such as "Summarize unread Gmail threads

171from today" or "Pull the latest launch notes from Google Drive."

180 172 

173Use this when you want ChatGPT to choose the right installed tools for the

174task.

181 175 

176#### Choose a specific plugin

182 177 

178Type `@` to invoke the plugin or one of its bundled skills explicitly.

183 179 

184Describe the task directly180Use this when you want to be specific about which plugin or skill ChatGPT

185 181should use. See [Skills & Plugins](https://learn.chatgpt.com/docs/skills-and-plugins).

186

187 

188 Ask for the outcome you want, such as "Summarize unread Gmail threads

189 from today" or "Pull the latest launch notes from Google Drive."

190

191 

192

193 

194 Use this when you want ChatGPT to choose the right installed tools for the

195 task.

196

197 

198

199 

200 

201

202 

203

204Choose a specific plugin

205 

206

207 

208 Type `@` to invoke the plugin or one of its bundled skills

209 explicitly.

210

211 

212

213 

214 Use this when you want to be specific about which plugin or skill ChatGPT

215 should use. See [Skills & Plugins](https://learn.chatgpt.com/docs/skills-and-plugins).

216

217 

218

219 182 

183</ContentModeSwitch>

220 184 

185<a id="bring-your-own-plugins-in-sites"></a>

221 186 

187### Plugins in Sites

222 188 

223</ContentModeSwitch>189Use plugins in Sites to build a Site that uses each

190visitor's own connected accounts and permissions. See [Bring user data to your Site

191with plugins](https://learn.chatgpt.com/docs/sites#bring-user-data-to-your-site-with-plugins) for setup and visitor

192access requirements.

224 193 

225<ContentModeSwitch group="codex-surface" id="app">194<ContentModeSwitch group="codex-surface" id="app">

226 195 


284/plugins253/plugins

285```254```

286 255 

287 

288

289 

290> Illustration: Plugins list in Codex CLI

291 

292 

293 

294 

295The CLI plugin browser groups plugins by marketplace. Use the marketplace tabs256The CLI plugin browser groups plugins by marketplace. Use the marketplace tabs

296to switch sources, open a plugin to inspect details, install or uninstall257to switch sources, open a plugin to inspect details, install or uninstall

297marketplace entries, and press <kbd>Space</kbd> on an installed plugin to turn it258marketplace entries, and press <kbd>Space</kbd> on an installed plugin to turn it


319<ContentModeSwitch group="codex-surface" id="web">280<ContentModeSwitch group="codex-surface" id="web">

320 281 

321In ChatGPT on the web, Chat and Work use the workspace permissions and tools282In ChatGPT on the web, Chat and Work use the workspace permissions and tools

322available to that chat. MCP servers still require their own sign-in and access.283available to that chat. MCP servers still require authorization and access to

284the connected service. A personal connection uses your own account. A supported

285experience can reuse an authorized shared-account connection without requiring

286you to enter that account's credentials each time. Some methods also require

287a verified requester. Check which identity the connection will use.

323 288 

324</ContentModeSwitch>289</ContentModeSwitch>

325 290 

Details

87- **Purpose:** Name the recurring task and when you’ll use the plugin.87- **Purpose:** Name the recurring task and when you’ll use the plugin.

88- **Inputs:** Describe the information you’ll provide and how it should use each attached file.88- **Inputs:** Describe the information you’ll provide and how it should use each attached file.

89- **Output:** Say who the result is for, and specify its format, length, and tone. Include an example if you have one.89- **Output:** Say who the result is for, and specify its format, length, and tone. Include an example if you have one.

90- **Rules:** Explain any required steps, what needs your review, and how to handle missing information—for example, ask a question or mark a field “not specified.”90- **Rules:** Explain required steps, what needs your review, and how to handle missing information. For example, ask a question or mark a field “not specified.”

91 91 

92Ask for instructions you can reuse with new inputs. Keep the details of an individual task, such as a particular document, labeled as an example for testing.92Ask for instructions you can reuse with new inputs. Keep the details of an individual task, such as a particular document, labeled as an example for testing.

93 93 


226 226 

227## Continue with the builder documentation227## Continue with the builder documentation

228 228 

229For custom integrations or development with plugin files, see [Package your plugin](https://developers.openai.com/plugins/build/plugins). The [developer documentation](https://developers.openai.com/plugins/) covers building skills and MCP servers, testing, and public submission.229For custom integrations or development with plugin files, see [Package your plugin](https://developers.openai.com/plugins/build/plugins). The [developer documentation](https://developers.openai.com/plugins/) covers building skills and MCP servers, [extensions](https://developers.openai.com/plugins/build/extensions), testing, and public submission.

230 230 

231For workspace distribution through GitHub, see [Plugin management](https://learn.chatgpt.com/docs/enterprise/plugin-management).231For workspace distribution through GitHub, see [Plugin management](https://learn.chatgpt.com/docs/enterprise/plugin-management).

projects.md +14 −3

Details

186 186 

187## Use local projects for folders and codebases187## Use local projects for folders and codebases

188 188 

189When sync is on, the cloud coordinates new tasks using Local computer access with Work Cloud, and you can continue them across supported desktop, mobile, and web experiences. For enterprises, the in-app Local/Cloud toggle and its default remain unchanged at launch. Existing tasks, including those in projects, stay local only or in the cloud without access to local files. Start a new task to use this feature.

190 

191If your computer is unavailable when a new turn starts, an existing eligible task using Local computer access with Work Cloud can continue in a cloud container. The container can't access the computer's files or tools or enforce its enterprise execution requirements. Work can't switch from local to cloud execution during a turn.

192 

193Conversation sync and project-file access are separate:

194 

195- Syncing a conversation doesn't upload the entire local folder or make it available to another computer.

196- When you continue a task, review the sources and tools it can access.

197- Work conversation history remains separate from Codex history.

198 

189Add a local project when ChatGPT needs to read or change files on your computer.199Add a local project when ChatGPT needs to read or change files on your computer.

190Projects don’t need a folder, but you can attach folders as needed.200Projects don’t need a folder, but you can attach folders as needed.

191 201 


226 236 

227## Start a chat without a project237## Start a chat without a project

228 238 

229Select **New chat** when the work is self-contained and doesn't need shared239In Codex, select **New chat** beside **Recents** to start without a project.

230project files, instructions, or folder access. Create a project first when240Use this for self-contained work that doesn't need shared project files,

231several chats will depend on the same context.241instructions, or folder access. Create a project first when several chats will

242depend on the same context.

232 243 

233</ContentModeSwitch>244</ContentModeSwitch>

234 245 

quickstart.md +7 −2

Details

15 15 

16 16 

17If you're a developer and want to use Codex in your terminal or code editor,17If you're a developer and want to use Codex in your terminal or code editor,

18 try [Codex CLI](https://learn.chatgpt.com/docs/codex/cli) or the [Codex IDE extension](https://learn.chatgpt.com/docs/codex/ide).18 try [Codex CLI](https://learn.chatgpt.com/docs/codex/cli) or the [Codex IDE extension](https://learn.chatgpt.com/docs/codex/ide). For remote

19 coding work, create a reusable [Codex Cloud

20 environment](https://learn.chatgpt.com/docs/environments/cloud-environments) on the web or in the

21 desktop app. In a new task, choose **Work in** > **Cloud**, open **Select

22 environment**, then select **Create environment**. Codex inspects your

23 repositories and helps prepare and test the setup before you publish it.

19 24 

20## Setup25## Setup

21 26 


120<WorkflowSteps variant="headings">125<WorkflowSteps variant="headings">

1211. <h3 id="setup-web-sign-in">Open ChatGPT and sign in</h3>1261. <h3 id="setup-web-sign-in">Open ChatGPT and sign in</h3>

122 127 

123Go to [chatgpt.com](https://chatgpt.com) and sign in with your ChatGPT account.128Go to [ChatGPT](https://chatgpt.com) and sign in with your ChatGPT account.

124 129 

1252. <h3 id="setup-web-start-task">Start a chat</h3>1302. <h3 id="setup-web-start-task">Start a chat</h3>

126 131 

Details

20 20 

21### Remove a project from the sidebar21### Remove a project from the sidebar

22 22 

23To remove a project from the sidebar, hover over the name of your project, click23To remove a project from the sidebar, hover over the name of your project, select

24the three dots and choose "Remove." To restore it, re-add the24the three dots, and choose **Remove**. To restore it, re-add the

25project using the **Add new project** button next to **Chats** or using25project using the **Add new project** button next to **Chats** or using

26 26 

27<kbd>Cmd</kbd>+<kbd>O</kbd>.27<kbd>Cmd</kbd>+<kbd>O</kbd>.


34Archived chats can be found in [Settings](codex://settings). When you unarchive34Archived chats can be found in [Settings](codex://settings). When you unarchive

35a chat, it reappears in its original sidebar location.35a chat, it reappears in its original sidebar location.

36 36 

37### A Work conversation does not appear on another device

38 

39- Confirm that you are signed in with ChatGPT to the same account and workspace on each device.

40- Ask your workspace owner to check that Work Cloud and **Allow local computer access** are enabled. If `enforce_residency` is enabled in any cloud policy, **Allow local computer access** is disabled for both Work and dots. This safeguard does not configure workspace residency or, by itself, disable Work Cloud or dots.

41- Check when the task was created. Sync applies to new tasks created after it is enabled. Existing tasks, including tasks in projects, are not migrated and keep their original local-only or cloud-without-local-files behavior.

42 

43For enterprises, the in-app Local/Cloud toggle and its default remain unchanged at launch. A particular toggle or default mode does not by itself confirm whether a conversation can sync. Keep Codex history separate when looking for a Work conversation. See [Local computer access for Work Cloud and dots](https://learn.chatgpt.com/docs/enterprise/cloud-local-access) for setup and the [Work admin FAQ](https://learn.chatgpt.com/docs/enterprise/work-admin-faq) for common questions.

44 

45### A synced task cannot use the computer's files or tools

46 

47Keep the computer online and connected. If it's unavailable when a new turn starts, an eligible synced task can continue in a cloud container without access to the computer's files or tools. A running turn doesn't automatically move from the computer to the cloud.

48 

49<a id="a-turn-stopped-after-local-computer-access-was-turned-off"></a>

50 

51### A turn stopped after Local computer access with Work Cloud was turned off

52 

53Turning off Local computer access with Work Cloud interrupts running turns. If you still have Work access, send a new message to start another turn. In an existing cloud conversation, that turn automatically uses Work Cloud without access to local files.

54 

55### Automated policy updates are missing

56 

57Use the policy API to manage Global settings. To manage Local or Codex Cloud settings, use the Agent Security UI. Existing Global API workflows remain available after migration. Test your scripts and Terraform integrations, and confirm that policy assignments and ordering are unchanged.

58 

37<a id="only-some-threads-appear-in-the-sidebar"></a>59<a id="only-some-threads-appear-in-the-sidebar"></a>

38<a id="only-some-tasks-appear-in-the-sidebar"></a>60<a id="only-some-tasks-appear-in-the-sidebar"></a>

39 61 


51project, you might have to run setup scripts on your worktree using a73project, you might have to run setup scripts on your worktree using a

52[local environment](https://learn.chatgpt.com/docs/environments/local-environment) or copy ignored setup files74[local environment](https://learn.chatgpt.com/docs/environments/local-environment) or copy ignored setup files

53with [`.worktreeinclude`](https://learn.chatgpt.com/docs/environments/git-worktrees#copy-ignored-local-files-into-managed-worktrees).75with [`.worktreeinclude`](https://learn.chatgpt.com/docs/environments/git-worktrees#copy-ignored-local-files-into-managed-worktrees).

54Alternatively, you can check out the changes in your regular local project. See76You can also check out the changes in your regular local project. See

55the [worktrees documentation](https://learn.chatgpt.com/docs/environments/git-worktrees) to learn more.77the [worktrees documentation](https://learn.chatgpt.com/docs/environments/git-worktrees) to learn more.

56 78 

57### App doesn't pick up a teammate's shared local environment79### App doesn't pick up a teammate's shared local environment


1392. Reopen it with <kbd>Ctrl</kbd>+<kbd>`</kbd>.1612. Reopen it with <kbd>Ctrl</kbd>+<kbd>`</kbd>.

1403. Re-run a basic command like `pwd` or `git status`.1623. Re-run a basic command like `pwd` or `git status`.

141 163 

142If commands behave differently than expected, validate the current directory and164If commands behave differently than expected, check the current directory and

143branch in the terminal first.165branch in the terminal first.

144 166 

145If it continues to be stuck, wait until your active chats are complete and restart the app.167If it continues to be stuck, wait until your active chats are complete and restart the app.


147**Fonts aren't rendering correctly**169**Fonts aren't rendering correctly**

148 170 

149Codex uses the same font for the review pane, integrated terminal and any other code displayed inside the app. You can configure the font inside the [Settings](codex://settings) pane as **Code font**.171Codex uses the same font for the review pane, integrated terminal and any other code displayed inside the app. You can configure the font inside the [Settings](codex://settings) pane as **Code font**.

172 

173## An environment allows network access but the action is blocked

174 

175Check policy priority before comparing individual settings. A higher-priority policy wins over a lower-priority policy, even if the lower-priority policy is more specific. Within one policy, OS-specific environment overrides take priority over all-OS environment overrides, followed by Global.

176 

177Some network requirements have field-specific merge rules and runtime limits. Managed HTTP/SOCKS listener ports and non-loopback proxy listeners are unsupported by the cloud runtime; socket-rule support depends on the execution path. Local-execution merge behavior is separate.

178 

179Compare the effective policies and test the intended allowed and blocked actions. See [Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration) for the detailed cases. Do not broaden the global baseline to work around a failed test.

remote.md +1 −1

Details

28 28 

291. **Start setup on your computer.** Open the ChatGPT desktop app on your Mac or Windows PC. Go to **Settings** > **Connections** > **Control this Mac or PC** and select **Set up** or **Add**. Approve remote access and complete any requested verification.291. **Start setup on your computer.** Open the ChatGPT desktop app on your Mac or Windows PC. Go to **Settings** > **Connections** > **Control this Mac or PC** and select **Set up** or **Add**. Approve remote access and complete any requested verification.

302. **Scan the QR code.** Scan the code with your phone, sign in to the same ChatGPT account and workspace, and approve the connection. Only connect devices you own and trust.302. **Scan the QR code.** Scan the code with your phone, sign in to the same ChatGPT account and workspace, and approve the connection. Only connect devices you own and trust.

313. **Start working from your phone.** Open **Remote** in the ChatGPT mobile app, choose your connected computer, and start a new task or continue an existing one. Keep your computer awake and online.313. **Start working from your phone.** In the ChatGPT mobile app for iOS, open **Codex** to choose your connected computer and start or continue a task. If your mobile app still shows Remote, open it instead. Keep your computer awake and online.

32 32 

33## Keep work moving from anywhere33## Keep work moving from anywhere

34 34 

Details

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 4 

5Remote connections let you access work running on another device or machine.5Remote connections let you access work running on another device or machine.

6In the ChatGPT mobile app, open **Remote** to work with ChatGPT or Codex chats on6In the ChatGPT mobile app for iOS, open **Codex** to work with ChatGPT or Codex

7a connected Mac or Windows device. You can also continue work from another7chats on a connected Mac or Windows device. If your mobile app still shows

8supported device running the ChatGPT desktop app or connect the app to projects8**Remote**, open it instead. You can also continue work from another supported

9on an SSH host.9device running the ChatGPT desktop app or connect the app to projects on an SSH

10host.

10 11 

11Remote access uses the connected host's projects, chats, files, credentials,12Remote access uses the connected host's projects, chats, files, credentials,

12permissions, plugins, Computer Use, browser setup, and local tools.13permissions, plugins, Computer Use, browser setup, and local tools.

13 14 

15<span

16 id="local-computer-access-and-remote-connections"

17 data-localization-body-anchor

18/>

19 

20## Local computer access with Work Cloud and Remote connections

21 

22When your workspace enables Local computer access with Work Cloud, eligible ChatGPT Work conversations can continue across desktop, mobile, and web. OpenAI's cloud coordinates the task, and an online, connected computer can execute steps that need its local resources.

23 

24Use the Local computer access with Work Cloud guidance for conversations using this feature. The Remote and SSH instructions below apply to the existing supported host-connection workflows. The setup required to view a conversation using this feature may differ from the setup for a Codex host connection.

25 

26Local computer access with Work Cloud applies only to tasks created after you enable sync. Existing tasks, including tasks in projects, keep their original mode: locally only, or in the cloud without access to local files. Start a new task to use this feature.

27 

28If the computer is unavailable when a new turn starts, an existing eligible task using local computer access with Work Cloud can continue in a cloud container. The cloud container cannot access files or tools on the unavailable computer. It also does not enforce enterprise requirements from local execution. A task cannot switch from local execution to the cloud during a turn. This feature does not change Codex Remote behavior.

29 

14## What you can do remotely30## What you can do remotely

15 31 

16- Start new chats in projects on the host, or continue existing ones.32- Start new chats in projects on the host, or continue existing ones.


20- Get notified when ChatGPT completes a task or needs your attention.36- Get notified when ChatGPT completes a task or needs your attention.

21- Switch between connected hosts and chats.37- Switch between connected hosts and chats.

22 38 

23The next sections cover opening **Remote** in the ChatGPT mobile app to access a39The next sections cover using the ChatGPT mobile app to access a desktop host.

24desktop host. To connect Codex to a project on an SSH host, see40To connect Codex to a project on an SSH host, see

25[connect to an SSH host](#connect-to-an-ssh-host).41[connect to an SSH host](#connect-to-an-ssh-host).

26 42 

27 43 


48Make sure you have:64Make sure you have:

49 65 

50- Codex access in the ChatGPT account and workspace you want to use.66- Codex access in the ChatGPT account and workspace you want to use.

51- The latest ChatGPT mobile app on an iOS or Android device. If **Remote**67- The latest ChatGPT mobile app on an iOS or Android device. If you don't see

52 doesn't appear in the app, update ChatGPT first.68 **Codex** on iOS or **Remote** in an app that still uses that label, update

69 ChatGPT first.

53- The latest ChatGPT desktop app for macOS or Windows running on a host that's awake,70- The latest ChatGPT desktop app for macOS or Windows running on a host that's awake,

54 online, and signed in to the same account and workspace. Mobile setup starts71 online, and signed in to the same account and workspace. Mobile setup starts

55 from the app; you can't set it up from the Codex CLI or IDE extension.72 from the app; you can't set it up from the Codex CLI or IDE extension.


88 105 

893. Finish setup in ChatGPT.1063. Finish setup in ChatGPT.

90 107 

91 ChatGPT opens the Remote setup flow. Confirm the same ChatGPT account108 ChatGPT opens the connection setup flow. Confirm the same ChatGPT account

92 and workspace, then complete any required multi-factor authentication, SSO,109 and workspace, then complete any required multi-factor authentication, SSO,

93 or passkey steps. After setup succeeds, the host appears in Remote on your110 or passkey steps. After setup succeeds, the host appears in **Codex** on iOS,

94 phone.111 or **Remote** if your mobile app still shows that label.

95 112 

964. Review host settings.1134. Review host settings.

97 114 


219 236 

220<WorkflowSteps variant="headings">237<WorkflowSteps variant="headings">

221 238 

2221. Add the host to your SSH config so Codex can auto-discover it.2391. Add the host to your SSH config so Codex can discover it automatically.

223 240 

224```text241```text

225 Host devbox242 Host devbox


314 331 

315### The approval request doesn't appear332### The approval request doesn't appear

316 333 

317In the ChatGPT mobile app, open **Remote**. Confirm that the phone and host use334In the ChatGPT mobile app for iOS, open **Codex**. If your mobile app still

318the same ChatGPT account and workspace, then scan the QR code again or restart335shows **Remote**, open it instead. Confirm that the phone and host use the same

319setup from the host. If you use a ChatGPT workspace, ask your admin to confirm336ChatGPT account and workspace, then scan the QR code again or restart setup from

320that they've enabled Remote Control access.337the host. If you use a ChatGPT workspace, ask your admin to confirm that they've

338enabled Remote Control access.

321 339 

322### The remote session disconnects340### The remote session disconnects

323 341 

rules.md +7 −3

Details

8 8 

9## Create a rules file9## Create a rules file

10 10 

11For Local computer access with Work Cloud, configure supported managed command rules with the `rules` TOML field in Agent Security. These rules apply to local executors; Work cloud containers use existing Work Cloud policies.

12 

13These local `.rules` instructions apply to Codex; don't assume Local computer access with Work Cloud reads local rule files. See [Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration) and the [Configuration Reference](https://learn.chatgpt.com/docs/config-file/config-reference) for managed Work requirements.

14 

111. Create a `.rules` file under a `rules/` folder next to an active config layer (for example, `~/.codex/rules/default.rules`).151. Create a `.rules` file under a `rules/` folder next to an active config layer (for example, `~/.codex/rules/default.rules`).

122. Add a rule. This example prompts before allowing `gh pr view` to run outside the sandbox.162. Add a rule. This example prompts before allowing `gh pr view` to run outside the sandbox.

13 17 


74["bash", "-lc", "git add . && rm -rf /"]78["bash", "-lc", "git add . && rm -rf /"]

75```79```

76 80 

77Because this kind of command can hide multiple actions inside one string, Codex treats `bash -lc`, `bash -c`, and their `zsh` / `sh` equivalents specially.81Because this kind of command can hide more than one action inside one string, Codex treats `bash -lc`, `bash -c`, and their `zsh` / `sh` equivalents specially.

78 82 

79### When Codex can safely split the script83### When Codex can safely split the script

80 84 


92 96 

93Codex then evaluates each command against your rules, and the most restrictive result wins.97Codex then evaluates each command against your rules, and the most restrictive result wins.

94 98 

95Even if you allow `pattern=["git", "add"]`, Codex won't auto allow `git add . && rm -rf /`, because the `rm -rf /` portion is evaluated separately and prevents the whole invocation from being auto allowed.99Even if you allow `pattern=["git", "add"]`, Codex won't automatically allow `git add . && rm -rf /` because it evaluates `rm -rf /` separately.

96 100 

97This prevents dangerous commands from being smuggled in alongside safe ones.101This prevents dangerous commands from being smuggled in alongside safe ones.

98 102 


132 136 

133## Understand the rules language137## Understand the rules language

134 138 

135The `.rules` file format uses `Starlark` (see the [language spec](https://github.com/bazelbuild/starlark/blob/master/spec.md)). Its syntax is like Python, but it's designed to be safe to run: the rules engine can run it without side effects (for example, touching the filesystem).139The `.rules` file format uses `Starlark` (see the [language specification](https://github.com/bazelbuild/starlark/blob/master/spec.md)). Its syntax is like Python, but it's designed to be safe to run: the rules engine can run it without side effects (for example, touching the filesystem).

sandboxing.md +19 −0

Details

127 127 

128</ContentModeSwitch>128</ContentModeSwitch>

129 129 

130<ContentModeSwitch group="codex-surface" ids="app,web">

131 

132<a id="synced-chatgpt-work"></a>

133 

134#### Local computer access with Work Cloud

135 

136For tasks using Local computer access with Work Cloud, OpenAI's cloud coordinates the conversation. Sandbox restrictions depend on where each step runs:

137 

138- **Cloud execution:** Work cloud containers use existing Work Cloud policies. Desktop browser site rules do not automatically apply to cloud browsers.

139- **Local execution:** Supported local execution requirements govern steps on a connected computer.

140 

141For Work with local access and dots, supported Global policy applies to the shared cloud orchestrator when managed policy is enabled. Work cloud containers and dots cloud computers use their own execution configuration and requirements. Test local and cloud execution separately to confirm which controls apply in each environment. A policy for one environment doesn't grant access to another.

142 

143Within a policy, the order from highest to lowest is OS-specific environment override → all-OS environment override → Global. A higher-priority policy wins even when a lower-priority policy is more specific. For local execution, MDM and legacy managed-device requirements take precedence over Agent Security, which takes precedence over the device's system requirements file.

144 

145Review [Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration) for field-specific merge rules and runtime limits, and check the effective file and network restrictions in [Work local security](https://learn.chatgpt.com/docs/enterprise/chatgpt-work-local-security) and [Work cloud security](https://learn.chatgpt.com/docs/enterprise/chatgpt-work-cloud-security).

146 

147</ContentModeSwitch>

148 

130## How permissions work149## How permissions work

131 150 

132<ContentModeSwitch group="codex-surface" ids="app,cli,ide">151<ContentModeSwitch group="codex-surface" ids="app,cli,ide">

sdk.md +5 −9

Details

88 88 

89### Usage89### Usage

90 90 

91Start Codex, create a thread, and run a prompt:91Start Codex, create a thread, and run a prompt. The examples use GPT-6.1 Sol,

92which must be available to your signed-in account. Otherwise, omit `model` to

93use your configured default. See [GPT-6.1 Sol availability by plan](https://learn.chatgpt.com/docs/models#gpt-6.1-sol).

92 94 

93```python95```python

94from openai_codex import Codex, Sandbox96from openai_codex import Codex, Sandbox

95 

96with Codex() as codex:97with Codex() as codex:

97 thread = codex.thread_start(98 thread = codex.thread_start(

98 model="gpt-6-sol",99 model="gpt-6.1-sol",

99 sandbox=Sandbox.workspace_write,100 sandbox=Sandbox.workspace_write,

100 )101 )

101 result = thread.run("Make a plan to diagnose and fix the CI failures")102 result = thread.run("Make a plan to diagnose and fix the CI failures")


106 108 

107```python109```python

108import asyncio110import asyncio

109 

110from openai_codex import AsyncCodex111from openai_codex import AsyncCodex

111 

112 

113async def main() -> None:112async def main() -> None:

114 async with AsyncCodex() as codex:113 async with AsyncCodex() as codex:

115 thread = await codex.thread_start(model="gpt-6-sol")114 thread = await codex.thread_start(model="gpt-6.1-sol")

116 result = await thread.run("Implement the plan")115 result = await thread.run("Implement the plan")

117 print(result.final_response)116 print(result.final_response)

118 

119 

120asyncio.run(main())117asyncio.run(main())

121```118```

122 119 

security.md +31 −25

Details

9 9 

10<CtaPillLink10<CtaPillLink

11 href="https://chatgpt.com/plugins/share/676aca3811d54fa7bcdef5255236b3c4"11 href="https://chatgpt.com/plugins/share/676aca3811d54fa7bcdef5255236b3c4"

12 label="Install plugin in ChatGPT"12 label="Install local Security plugin"

13 icon="external"13 icon="external"

14 class="mb-8 mt-2"14 class="mb-8 mt-2"

15/>15/>

16 16 

17For a prescriptive first local scan, start with the [Codex Security plugin17For your first local scan, start with the [Codex Security plugin

18quickstart](https://learn.chatgpt.com/docs/security/plugin).18quickstart](https://learn.chatgpt.com/docs/security/plugin).

19 19 

20## Use Codex Security in the desktop app20## Use Codex Security in the desktop app


44- [See what's new](https://learn.chatgpt.com/docs/security/plugin/changelog) in the Codex Security plugin.44- [See what's new](https://learn.chatgpt.com/docs/security/plugin/changelog) in the Codex Security plugin.

45 45 

46The desktop Security workbench and Codex CLI use the Codex Security plugin.46The desktop Security workbench and Codex CLI use the Codex Security plugin.

47 Codex Security cloud scans connected GitHub repositories through Codex cloud.47 The separate Codex Security Cloud plugin scans connected GitHub repositories

48 For Codex sandboxing, approvals, network controls, and admin settings, see48 in Codex cloud. For Codex sandboxing, approvals, network controls, and admin

49 [Agent approvals & security](https://learn.chatgpt.com/docs/agent-approvals-security).49 settings, see [Agent approvals & security](https://learn.chatgpt.com/docs/agent-approvals-security).

50 50 

51## Codex Security CLI and SDK51## Codex Security CLI and SDK

52 52 


81- [Integrate the TypeScript SDK](https://learn.chatgpt.com/docs/security/sdk) to select targets,81- [Integrate the TypeScript SDK](https://learn.chatgpt.com/docs/security/sdk) to select targets,

82 inspect results, track progress, and cancel scans from code.82 inspect results, track progress, and cancel scans from code.

83 83 

84## Codex Security cloud84## Codex Security Cloud

85 85 

86Codex Security cloud is currently in research preview. It scans connected86Codex Security Cloud is a plugin for scanning connected GitHub repositories

87GitHub repositories for likely security issues.87in Codex cloud. It's available in research preview on the web and in the

88desktop app.

88 89 

89It helps teams:90Open **Plugins** to find and install **Codex Security Cloud**. Follow

91[Cloud setup](https://learn.chatgpt.com/docs/security/setup) to connect GitHub and start your first scan.

90 92 

911. **Find likely vulnerabilities** by using a repo-specific threat model and real code context.93<CtaPillLink

922. **Reduce noise** by validating findings before you review them.94 href="https://chatgpt.com/plugins"

933. **Move findings toward fixes** with ranked results, evidence, and suggested patch options.95 label="Find Codex Security Cloud"

96 icon="external"

97 class="my-8"

98/>

94 99 

95## How Codex Security cloud works100## How Codex Security Cloud works

96 101 

97Codex Security scans connected repositories commit by commit.102Choose a **Repository** scan to review a repository once, or **Commit changes**

98It builds scan context from your repo, checks likely vulnerabilities against that context, and validates high-signal issues in an isolated environment before surfacing them.103to monitor new commits. Codex uses repository context to identify likely

104vulnerabilities and validates issues in an isolated environment when possible.

99 105 

100You get a workflow focused on:106Use **Scans** to follow progress, **Findings** to review issues, and

107**Repositories** to manage monitoring. Review proposed patches before

108creating a pull request.

101 109 

102- repo-specific context instead of generic signatures110## Codex Security Cloud access and prerequisites

103- validation evidence that helps reduce false positives

104- suggested fixes you can review in GitHub

105 111 

106## Codex Security cloud access and prerequisites112Use a workspace with Codex Security Cloud access, a connected GitHub

113repository, and a compatible Codex cloud environment. You can connect GitHub

114and create an environment during scan setup.

107 115 

108Codex Security cloud works with connected GitHub repositories through Codex116If access is unavailable, check with your workspace administrator.

109cloud. If a repository isn't visible, confirm the repository is available in your

110Codex cloud workspace or contact your OpenAI account team.

111 117 

112## Related docs118## Related docs

113 119 


117- [Run bulk security scans](https://learn.chatgpt.com/docs/security/cli/bulk-scans) explains GitHub discovery, CSV inventories, campaign results, and resume behavior.123- [Run bulk security scans](https://learn.chatgpt.com/docs/security/cli/bulk-scans) explains GitHub discovery, CSV inventories, campaign results, and resume behavior.

118- [Codex Security CLI FAQ](https://learn.chatgpt.com/docs/security/cli/faq) answers common questions about scans, findings, coverage, and costs.124- [Codex Security CLI FAQ](https://learn.chatgpt.com/docs/security/cli/faq) answers common questions about scans, findings, coverage, and costs.

119- [Codex Security TypeScript SDK](https://learn.chatgpt.com/docs/security/sdk) explains how to run scans from an application or developer tool.125- [Codex Security TypeScript SDK](https://learn.chatgpt.com/docs/security/sdk) explains how to run scans from an application or developer tool.

120- [Codex Security cloud setup](https://learn.chatgpt.com/docs/security/setup) details setup, scanning, and findings review.126- [Codex Security Cloud setup](https://learn.chatgpt.com/docs/security/setup) details setup, scanning, and findings review.

121- [Security Review](https://learn.chatgpt.com/docs/security/security-review) explains how to run in-depth security reviews on GitHub pull requests.127- [Security Review](https://learn.chatgpt.com/docs/security/security-review) explains how to run in-depth security reviews on GitHub pull requests.

122- [Improving the threat model](https://learn.chatgpt.com/docs/security/threat-model) explains how to tune scope, entry points, and criticality assumptions.128- [Improving the threat model](https://learn.chatgpt.com/docs/security/threat-model) explains how to tune scope, entry points, and criticality assumptions.

123- [Codex Security cloud FAQ](https://learn.chatgpt.com/docs/security/faq) covers common cloud product questions.129- [Codex Security Cloud FAQ](https://learn.chatgpt.com/docs/security/faq) covers common cloud product questions.

Details

89 icon: "code",89 icon: "code",

90 },90 },

91 {91 {

92 title: "Codex Security cloud setup",92 title: "Codex Security Cloud setup",

93 description:93 description:

94 "Connect repositories and configure cloud security scans.",94 "Install the Cloud plugin, connect GitHub, and start a security scan.",

95 href: "/codex/security/setup",95 href: "/codex/security/setup",

96 icon: "storage",96 icon: "storage",

97 },97 },


108 icon: "webSearch",108 icon: "webSearch",

109 },109 },

110 {110 {

111 title: "Codex Security cloud FAQ",111 title: "Codex Security Cloud FAQ",

112 description:112 description:

113 "Get answers about cloud scans, findings, privacy, and access.",113 "Get answers about cloud scans, findings, privacy, and access.",

114 href: "/codex/security/faq",114 href: "/codex/security/faq",

security/cli.md +7 −4

Details

162## Choose a model and reasoning effort162## Choose a model and reasoning effort

163 163 

164Scans use `gpt-5.6-sol` with `xhigh` reasoning effort by default. Select a164Scans use `gpt-5.6-sol` with `xhigh` reasoning effort by default. Select a

165different model and effort when the task requires them:165different model and effort when the task requires them. Choose a model your

166credentials can access. If you use ChatGPT sign-in, check [GPT-6.1 Sol

167availability](https://learn.chatgpt.com/docs/models#gpt-6.1-sol) before using this example:

166 168 

167```bash169```bash

168npx @openai/codex-security scan "$REPOSITORY" \170npx @openai/codex-security scan "$REPOSITORY" \

169 --model gpt-6-sol \171 --model gpt-6.1-sol \

170 --effort medium172 --effort medium

171```173```

172 174 

173Supported effort levels are `minimal`, `low`, `medium`, `high`, `xhigh`, and175 

174`max`.176Available effort levels depend on the selected model. The CLI supports `minimal`,

177`low`, `medium`, `high`, `xhigh`, and `max`; GPT-6.1 Sol requires at least `low`.

175 178 

176## Review the results179## Review the results

177 180 

Details

146## Choose a model and reasoning effort146## Choose a model and reasoning effort

147 147 

148Bulk scans use `gpt-5.6-sol` with `xhigh` reasoning effort by default. To148Bulk scans use `gpt-5.6-sol` with `xhigh` reasoning effort by default. To

149choose another model and effort for a CSV campaign:149choose another model and effort for a CSV campaign, use a model your credentials

150can access. If you use ChatGPT sign-in, check [GPT-6.1 Sol

151availability](https://learn.chatgpt.com/docs/models#gpt-6.1-sol) before using this example:

150 152 

151```bash153```bash

152npx @openai/codex-security bulk-scan repositories.csv \154npx @openai/codex-security bulk-scan repositories.csv \

153 --output-dir /path/outside/repositories/security-scans \155 --output-dir /path/outside/repositories/security-scans \

154 --workers 4 \156 --workers 4 \

155 --model gpt-6-sol \157 --model gpt-6.1-sol \

156 --effort medium158 --effort medium

157```159```

158 160 


159The same options work during interactive repository discovery:162The same options work during interactive repository discovery:

160 163 

161```bash164```bash

162npx @openai/codex-security bulk-scan --model gpt-6-sol --effort medium165npx @openai/codex-security bulk-scan --model gpt-6.1-sol --effort medium

163```166```

164 167 

165Supported effort levels are `minimal`, `low`, `medium`, `high`, and `xhigh`.168 

169Available effort levels depend on the selected model. Bulk scans support

170`minimal`, `low`, `medium`, `high`, `xhigh`, and `max`; GPT-6.1 Sol requires at

171least `low`.

166 172 

167To use OpenRouter or Fireworks, set `OPENROUTER_API_KEY` or `FIREWORKS_API_KEY`,173To use OpenRouter or Fireworks, set `OPENROUTER_API_KEY` or `FIREWORKS_API_KEY`,

168respectively, and specify `--provider` and `--model`. For credentials and174respectively, and specify `--provider` and `--model`. For credentials and

Details

185```bash185```bash

186npx @openai/codex-security scan . \186npx @openai/codex-security scan . \

187 --provider amazon-bedrock \187 --provider amazon-bedrock \

188 --model openai.gpt-5.6-sol188 --model openai.gpt-5.6-terra

189```189```

190 190 

191Set `AWS_REGION` and authenticate with `AWS_BEARER_TOKEN_BEDROCK`, standard AWS191Set `AWS_REGION` and authenticate with `AWS_BEARER_TOKEN_BEDROCK`, standard AWS


416| `--python PATH` | Select the Python interpreter for the plugin runtime. |416| `--python PATH` | Select the Python interpreter for the plugin runtime. |

417| `--codex KEY=VALUE` | Override an isolated Codex configuration value. Values use TOML syntax. Repeat the flag for more values. |417| `--codex KEY=VALUE` | Override an isolated Codex configuration value. Values use TOML syntax. Repeat the flag for more values. |

418 418 

419To select a different model and reasoning effort without writing TOML:419To select a different model and reasoning effort without writing TOML, choose a

420model your credentials can access. If you use ChatGPT sign-in, check [GPT-6.1

421Sol availability](https://learn.chatgpt.com/docs/models#gpt-6.1-sol) before using these examples:

420 422 

421```bash423```bash

422npx @openai/codex-security scan . --model gpt-6-sol --effort medium424npx @openai/codex-security scan . --model gpt-6.1-sol --effort medium

423```425```

424 426 

427 

425Quote string values passed through `--codex` so the TOML parser receives a428Quote string values passed through `--codex` so the TOML parser receives a

426string:429string:

427 430 

428```bash431```bash

429npx @openai/codex-security scan . --codex 'model="gpt-6-sol"'432npx @openai/codex-security scan . --codex 'model="gpt-6.1-sol"'

430```433```

431 434 

435 

432## `codex-security install-hook`436## `codex-security install-hook`

433 437 

434Install a Git pre-commit security check for the current repository:438Install a Git pre-commit security check for the current repository:


471Run `npx @openai/codex-security bulk-scan` without arguments to select475Run `npx @openai/codex-security bulk-scan` without arguments to select

472repositories interactively. This flow requires a GitHub CLI sign-in.476repositories interactively. This flow requires a GitHub CLI sign-in.

473 477 

474To choose a model and reasoning effort during interactive discovery:478To choose a model and reasoning effort during interactive discovery, use a model

479your credentials can access. See [GPT-6.1 Sol availability with ChatGPT

480sign-in](https://learn.chatgpt.com/docs/models#gpt-6.1-sol):

475 481 

476```bash482```bash

477npx @openai/codex-security bulk-scan --model gpt-6-sol --effort medium483npx @openai/codex-security bulk-scan --model gpt-6.1-sol --effort medium

478```484```

479 485 

486 

480For a prepared repository list, provide a CSV and `--output-dir`:487For a prepared repository list, provide a CSV and `--output-dir`:

481 488 

482```bash489```bash

security/faq.md +39 −25

Details

1# Codex Security cloud FAQ1# Codex Security Cloud FAQ

2 2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 4 

5This FAQ covers Codex Security cloud. For local scans and workflows that run in5This FAQ covers the Codex Security Cloud plugin. For local scans and workflows that run in

6a Codex task, see the [Codex Security plugin quickstart](https://learn.chatgpt.com/docs/security/plugin).6a Codex task, see the [Codex Security plugin quickstart](https://learn.chatgpt.com/docs/security/plugin).

7 7 

8{/* vale Microsoft.Auto = NO */}8{/* vale Microsoft.Auto = NO */}


10 10 

11## Getting started11## Getting started

12 12 

13### What is Codex Security?13### What is Codex Security Cloud?

14 14 

15Software security remains one of the hardest and most important problems in engineering. Codex Security is an LLM-driven security analysis toolkit that inspects source code and returns structured, ranked vulnerability findings with proposed patches. It helps developers and security teams discover and fix security issues at scale.15Codex Security Cloud scans connected GitHub repositories, validates likely

16vulnerabilities, and presents findings with evidence and remediation guidance.

17Use its plugin on the web or in the desktop app to run repository scans and

18monitor new commits.

16 19 

17### Why does it matter?20### How do I open Codex Security Cloud?

18 21 

19Software is foundational to modern industry and society, and vulnerabilities create systemic risk. Codex Security supports a defender-first workflow by continuously identifying likely issues, validating them when possible, and proposing fixes. That helps teams improve security without slowing development.22Open **Plugins** to find and install **Codex Security Cloud**, then open it.

23See [Cloud setup](https://learn.chatgpt.com/docs/security/setup) for the full workflow.

20 24 

21### What business problem does Codex Security solve?25### Is this the same plugin as local Codex Security?

22 26 

23Codex Security shortens the path from a suspected issue to a confirmed, reproducible finding with evidence and a proposed patch. That reduces triage load and cuts false positives compared with traditional scanners alone.27No. The Codex Security Cloud plugin scans connected GitHub repositories in

28Codex cloud. The [Codex Security plugin](https://learn.chatgpt.com/docs/security/plugin) runs local

29scans in a Codex task.

30 

31### What if access is unavailable?

32 

33Check with your workspace administrator.

24 34 

25### How does Codex Security work?35### How does Codex Security work?

26 36 

27Codex Security runs analysis in an ephemeral, isolated container and temporarily clones the target repository. It performs code-level analysis and returns structured findings with a description, file and location, criticality, root cause, and a suggested remediation.37Codex Security runs analysis in an ephemeral, isolated container and temporarily clones the target repository. It performs code-level analysis and returns structured findings with a description, file and location, criticality, root cause, and a suggested remediation.

28 38 

29For findings that include verification steps, the system executes proposed commands or tests in the same sandbox, records success or failure, exit codes, stdout, stderr, test results, and any generated diffs or artifacts, and attaches that output as evidence for review.39For findings with verification steps, it runs commands or tests in the sandbox and attaches the results as evidence.

30 40 

31### Does it replace SAST?41### Does it replace SAST?

32 42 


36 46 

37### What is the analysis pipeline?47### What is the analysis pipeline?

38 48 

39Codex Security follows a staged pipeline:

40 

411. **Analysis** builds a threat model for the repository.491. **Analysis** builds a threat model for the repository.

422. **Commit scanning** reviews merged commits and repository history for likely issues.502. **Scanning** reviews the repository once or monitors commit changes for likely issues.

433. **Validation** tries to reproduce likely vulnerabilities in a sandbox to reduce false positives.513. **Validation** tries to reproduce likely vulnerabilities in a sandbox to reduce false positives.

444. **Patching** integrates with Codex to propose patches that reviewers can inspect before opening a PR.524. **Remediation** provides guidance and, where available, proposed patches to review before opening a PR.

45 

46It works alongside engineers in GitHub, Codex, and standard review workflows.

47 53 

48### What languages are supported?54### What languages are supported?

49 55 


51 57 

52### What outputs do I get after the scan completes?58### What outputs do I get after the scan completes?

53 59 

54You get ranked findings with criticality, validation status, and a proposed patch when one is available. Findings can also include crash output, reproduction evidence, call-path context, and related annotations.60You get ranked findings with criticality, validation evidence, remediation guidance, and a proposed patch when one is available.

55 61 

56### How is customer code isolated?62### How is customer code isolated?

57 63 


59 65 

60### Does Codex Security auto-apply patches?66### Does Codex Security auto-apply patches?

61 67 

62No. The proposed patch is a recommended remediation. Users can review it and push it as a PR to GitHub from the findings UI, but Codex Security does not auto-apply changes to the repository.68No. When a finding has a proposed patch, review it before selecting **Create draft pull request**.

63 69 

64### Does the project need to be built for scanning?70### Does the project need to be built for scanning?

65 71 


69 75 

70Codex Security uses two stages. First, the model ranks likely issues. Then auto-validation tries to reproduce each issue in a clean container. Findings that successfully reproduce are marked as validated, which helps reduce false positives before human review.76Codex Security uses two stages. First, the model ranks likely issues. Then auto-validation tries to reproduce each issue in a clean container. Findings that successfully reproduce are marked as validated, which helps reduce false positives before human review.

71 77 

72### How long do initial scans take, and what happens after that?78### How do repository scans and commit monitoring differ?

79 

80A **Repository** scan runs once across the repository. **Commit changes**

81monitors new commits and can review existing commit history. See

82[Monitor new commits](https://learn.chatgpt.com/docs/security/setup#5-monitor-new-commits).

73 83 

74Initial scan time depends on repository size, build time, and how many findings proceed to validation. For some repositories, scans can take several hours. For larger repositories, they can take multiple days. Later scans are usually faster because they focus on new commits and incremental changes.84### How long do scans take?

85 

86Scan time varies with repository size and validation work. Check **Scans** for

87progress and status.

88 

89### Can I pause commit monitoring?

90 

91Yes. Open **Repositories**, select the repository, and open **Monitoring

92settings**. Set monitoring to **Paused** and select **Save**.

75 93 

76### What is a threat model?94### What is a threat model?

77 95 


79 97 

80### How is a threat model generated?98### How is a threat model generated?

81 99 

82Codex Security prompts the model to summarize the repository architecture and security entry points, classify the repository type, run specialized extractors, and merge the results into a project overview or threat model artifact used throughout the scan.100Codex Security analyzes the repository's code to summarize its architecture and security entry points.

83 101 

84### Does it replace manual security review?102### Does it replace manual security review?

85 103 


87 105 

88### Can I edit the threat model?106### Can I edit the threat model?

89 107 

90Yes. Codex Security creates the initial threat model, and you can update it as the architecture, risks, and business context change. For the editing workflow, see [Improving the threat model](https://learn.chatgpt.com/docs/security/threat-model).108For a monitored repository, Codex Security creates the initial threat model. Open the repository's **Monitoring settings** to update it as the architecture, risks, and business context change. For the editing workflow, see [Improving the threat model](https://learn.chatgpt.com/docs/security/threat-model).

91 

92### Do I need to configure a scan before using threat modeling?

93 

94Yes. Threat-model guidance is tied to how and what you scan, so you need to configure the repository first. See [Codex Security setup](https://learn.chatgpt.com/docs/security/setup).

95 109 

96### What does the proposed patch contain?110### What does the proposed patch contain?

97 111 

Details

11of a local repository in Codex.11of a local repository in Codex.

12 12 

13This page covers the Codex Security plugin in the desktop app or Codex CLI. To13This page covers the Codex Security plugin in the desktop app or Codex CLI. To

14 scan a connected GitHub repository in Codex cloud, see [Codex Security cloud14 scan a connected GitHub repository in Codex cloud, install the separate

15 **Codex Security Cloud** plugin from the plugin marketplace. See [Cloud

15 setup](https://learn.chatgpt.com/docs/security/setup).16 setup](https://learn.chatgpt.com/docs/security/setup).

16 17 

17## Install the plugin18## Install the plugin

security/sdk.md +5 −3

Details

415## Configure the runtime and credentials415## Configure the runtime and credentials

416 416 

417Pass runtime configuration when you need a specific plugin, interpreter, or417Pass runtime configuration when you need a specific plugin, interpreter, or

418Codex setting:418Codex setting. Choose a model your credentials can access. If you use ChatGPT

419sign-in, check [GPT-6.1 Sol availability](https://learn.chatgpt.com/docs/models#gpt-6.1-sol) before

420using this example:

419 421 

420```ts422```typescript

421const security = new CodexSecurity({423const security = new CodexSecurity({

422 pluginPath: "/path/to/codex-security-plugin",424 pluginPath: "/path/to/codex-security-plugin",

423 pythonPath: "/path/to/python",425 pythonPath: "/path/to/python",

424 codexOverrides: {426 codexOverrides: {

425 model: "gpt-6-sol",427 model: "gpt-6.1-sol",

426 model_reasoning_effort: "medium",428 model_reasoning_effort: "medium",

427 },429 },

428});430});

Details

2 2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 4 

5Codex Security Review is available in research preview.5Codex Security Review is available to ChatGPT Enterprise, Business, Edu, and

6It is available to ChatGPT Enterprise, Business, Edu, and Pro customers; it is6Pro customers; it is not available on Plus. Security reviews consume included

7not available on Plus. During the introductory period, Codex Security Review does7Codex allowance or ChatGPT credits.

8not consume ChatGPT credits. Usage limits may apply.

9 8 

10Codex Security Review is an additional review for customers that want to9Codex Security Review is an additional review for customers that want to

11pay particular attention to security issues in pull requests.10pay particular attention to security issues in pull requests.


20 19 

21To configure automatic Codex Security Review, you need:20To configure automatic Codex Security Review, you need:

22 21 

23- Codex Security Review research preview access for your workspace22- Codex Security Review access for your workspace

24- [Codex cloud](https://learn.chatgpt.com/docs/cloud) set up with a connected GitHub repository23- [Codex cloud](https://learn.chatgpt.com/docs/cloud) set up with a connected GitHub repository

25- GitHub push or admin permission for the repository settings24- GitHub push or admin permission for the repository settings

26 25 


30 29 

31## Configure Codex Security Review30## Configure Codex Security Review

32 31 

331. Go to [Codex settings](https://chatgpt.com/codex/settings/code-review).321. Go to [Codex settings](https://app.chatgpt.com/settings/code-review) and choose a repository.

342. Under **Repository preferences**, choose which pull requests get Codex332. Under **Review security vulnerabilities**, turn on **Auto security review**.

35 Security Review:343. Use **Review** to choose which pull requests get Codex Security Review:

36 - **Follow personal** lets each contributor opt in with their personal35 - **Follow personal preferences** lets each contributor opt in with their personal

37 Codex Security Review settings.36 Codex Security Review settings.

38 - **Review all PRs** applies to every pull request in the repository.37 - **All PRs** applies to every pull request in the repository.

39 - **Review team PRs**, when available, applies to pull requests opened by38 - **Team PRs**, when available, applies to pull requests opened by

40 members of your ChatGPT workspace, not members of a GitHub team.39 members of your ChatGPT workspace, not members of a GitHub team.

413. Choose when Codex Security Review runs:404. Use **Trigger** to choose when Codex Security Review runs:

42 - **On PR open** runs independently when a pull request is opened.41 - **On PR open** runs independently when a pull request is opened.

43 - **Every push** runs independently after new commits are pushed.42 - **On every push** runs independently after new commits are pushed.

44 - **Whenever code review runs** requires Code Review and runs Codex Security43 - **Whenever code review runs** requires Code Review and runs Codex Security

45 Review alongside it.44 Review alongside it.

46 45 

security/setup.md +46 −131

Details

1# Codex Security cloud setup1# Codex Security Cloud setup

2 2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 4 

5This page walks you from initial access to reviewed findings and remediation5Use the Codex Security Cloud plugin to scan connected GitHub repositories,

6pull requests in Codex Security cloud.6review findings, and monitor new commits.

7 7 

8Confirm you've set up Codex cloud first. If not, see [Codex8Codex Security Cloud runs scans in [Codex cloud](https://learn.chatgpt.com/docs/cloud). For scans of a

9 cloud](https://learn.chatgpt.com/docs/cloud) to get started.9 local repository in the desktop app or CLI, use the separate [Codex Security

10 plugin](https://learn.chatgpt.com/docs/security/plugin).

10 11 

11## 1. Access and environment12## 1. Install and open the plugin

12 13 

13Codex Security cloud scans GitHub repositories connected through141. Open **Plugins** in ChatGPT on the web or in the desktop app.

14[Codex cloud](https://learn.chatgpt.com/docs/cloud).152. Search the plugin marketplace for **Codex Security Cloud**.

15 163. Install and enable the plugin, then open **Security Cloud** from your

16- Confirm your workspace has access to Codex Security cloud.17 installed plugins or sidebar.

17- Confirm the repository you want to scan is available in Codex cloud.

18 

19Go to [Codex environments](https://chatgpt.com/codex/settings/environments) and check whether the repository already has an environment. If it doesn't, create one there before continuing.

20 

21<CtaPillLink

22 href="https://chatgpt.com/codex/settings/environments"

23 label="Open environments"

24 icon="external"

25 class="my-8"

26/>

27 

28 

29 

30

31

32 

33> Illustration: Codex environments

34 

35 

36

37 

38 

39 

40## 2. New security scan

41 

42After the environment exists, go to [Create a security scan](https://chatgpt.com/codex/security/scans/new) and choose the repository you just connected.

43 18 

44<CtaPillLink19<CtaPillLink

45 href="https://chatgpt.com/codex/security/scans/new"20 href="https://chatgpt.com/plugins"

46 label="Create a security scan"21 label="Open plugin marketplace"

47 icon="external"22 icon="external"

48 class="my-8"23 class="my-8"

49/>24/>

50 25 

51Codex Security scans repositories from newest commits backward first. It uses this to build and refresh scan context as new commits come in.26If access is unavailable, check with your workspace administrator.

52 

53To configure a repository:

54 

551. Select the GitHub organization.

562. Select the repository.

573. Select the branch you want to scan.

584. Select the environment.

595. Choose a **history window**. Longer windows provide more context, but backfill takes longer.

606. Click **Create**.

61 

62 

63 

64

65 27 

28## 2. Connect GitHub

66 29 

67> Illustration: Create a security scan30Confirm that [Codex cloud](https://learn.chatgpt.com/docs/cloud) is set up for your workspace. In the

31plugin, select **New scan**. If prompted, select **Connect GitHub** and grant

32access to the repositories you want to scan.

68 33 

34If a repository is missing, check its GitHub connection and permissions.

69 35 

36## 3. Start a repository scan

70 37 

381. In **New scan**, choose the repository.

392. Select a compatible **Cloud environment**. If none exists, select

40 **Create environment** to configure one. See [Codex cloud

41 environments](https://learn.chatgpt.com/docs/environments/cloud-environment) for setup details.

423. Under **What to scan**, select **Repository**, the default.

434. Select **Start scan**.

71 44 

45Open the scan in **Scans** to follow its progress and review its findings and

46artifacts.

72 47 

48## 4. Review findings and available fixes

73 49 

74## 3. Initial scans can take a while50Open **Findings** and select an issue to review its affected code, validation

75 51evidence, and remediation guidance.

76When you create the scan, Codex Security first runs a commit-level security pass across the selected history window.

77The initial backfill can take a few hours, especially for larger repositories or longer windows.

78If findings aren't visible right away, this is expected. Wait for the initial scan to finish before opening a ticket or troubleshooting.

79 

80Initial scan setup is automatic and thorough. This can take a few hours. Don’t

81 be alarmed if the first set of findings is delayed.

82 

83## 4. Review scans and improve the threat model

84 

85<CtaPillLink

86 href="https://chatgpt.com/codex/security/scans"

87 label="Review scans"

88 icon="external"

89 class="my-8"

90/>

91 52 

53When a finding offers **Fix with Codex**, select it to generate a proposed

54patch. Review the patch before selecting **Create draft pull request**.

92 55 

56## 5. Monitor new commits

93 57 

58To review changes as new commits arrive:

94 59 

601. Select **New scan**, then choose the repository and Cloud environment.

612. Under **What to scan**, select **Commit changes**.

623. Select **Create**.

95 63 

64To adjust monitoring, open **Repositories**, select the repository, and open

65**Monitoring settings**. You can change the Cloud environment, choose how

66many days of history to review, and pause or enable monitoring.

67Select **Save** to apply changes.

96 68 

97> Illustration: Threat model editor in Codex Security69Review and edit the generated threat model under **Project context**, then

98 70select **Save**. See [Improving the threat model](https://learn.chatgpt.com/docs/security/threat-model)

99 71for guidance.

100

101 

102 

103 

104When the initial scan finishes, open the scan and review the threat model that was generated.

105After initial findings appear, update the threat model so it matches your architecture, trust boundaries, and business context.

106This helps Codex Security rank issues for your team.

107 

108If you want scan results to change, you can edit the threat model with your

109 updated scope, priorities, and assumptions.

110 

111After initial findings appear, revisit the model so scan guidance stays aligned with current priorities.

112Keeping it current helps Codex Security produce better suggestions.

113 

114For a deeper explanation of threat models and how they affect criticality and triage, see [Improving the threat model](https://learn.chatgpt.com/docs/security/threat-model).

115 

116## 5. Review findings and patch

117 

118After the initial backfill completes, review findings from the **Findings** view.

119 

120<CtaPillLink

121 href="https://chatgpt.com/codex/security/findings"

122 label="Open findings"

123 icon="external"

124 class="my-8"

125/>

126 

127You can use two views:

128 

129- **Recommended Findings**: an evolving top 10 list of the most critical issues in the repo

130- **All Findings**: a sortable, filterable table of findings across the repository

131 

132 

133

134 

135> Illustration: Recommended findings view

136 

137 

138 

139 

140Click a finding to open its detail page, which includes:

141 

142- a concise description of the issue

143- key metadata such as commit details and file paths

144- contextual reasoning about impact

145- relevant code excerpts

146- call-path or data-flow context when available

147- validation steps and validation output

148 

149You can review each finding and create a PR directly from the finding detail page.

150 

151<CtaPillLink

152 href="https://chatgpt.com/codex/security/findings"

153 label="Review findings and create a PR"

154 icon="external"

155 class="my-8"

156/>

157 72 

158## Related docs73## Related docs

159 74 

160- [Codex Security](https://learn.chatgpt.com/docs/security) gives the product overview.75- [Codex Security](https://learn.chatgpt.com/docs/security) gives the product overview.

161- [Codex Security cloud FAQ](https://learn.chatgpt.com/docs/security/faq) covers common cloud questions.76- [Codex Security Cloud FAQ](https://learn.chatgpt.com/docs/security/faq) covers common Cloud questions.

162- [Improving the threat model](https://learn.chatgpt.com/docs/security/threat-model) explains how to improve scan context and finding prioritization.77- [Improving the threat model](https://learn.chatgpt.com/docs/security/threat-model) explains how to improve scan context and finding prioritization.

Details

2 2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 4 

5Learn what a threat model is and how editing it improves Codex Security's suggestions.5Review and update the threat model for a repository monitored by Codex Security Cloud.

6 6 

7## What a threat model is7## What a threat model is

8 8 

9A threat model is a short security summary of how your repository works. In Codex Security, you edit it as a `project overview`, and the system uses it as scan context for future scans, prioritization, and review.9A threat model is a short security summary of how your repository works. Codex Security creates the first draft from the code and uses it to guide future commit scans and prioritize findings.

10 

11Codex Security creates the first draft from the code. If the findings feel off, this is the first thing to edit.

12 10 

13A useful threat model calls out:11A useful threat model calls out:

14 12 


21 19 

22> Public API for account changes. Accepts JSON requests and file uploads. Uses an internal auth service for identity checks and writes billing changes through an internal service. Focus review on auth checks, upload parsing, and service-to-service trust boundaries.20> Public API for account changes. Accepts JSON requests and file uploads. Uses an internal auth service for identity checks and writes billing changes through an internal service. Focus review on auth checks, upload parsing, and service-to-service trust boundaries.

23 21 

24That gives Codex Security a better starting point for future scans and finding prioritization.

25 

26## Improving and revisiting the threat model22## Improving and revisiting the threat model

27 23 

28If you want to improve the results, edit the threat model first. Use it when findings are missing the areas you care about or showing up in places you don't expect. The threat model changes future scan context.24Update the threat model when your architecture or priorities change, or when findings miss the areas you care about.

29 

30Some users copy the current threat model into Codex, use a chat to improve it

31 based on the areas they want reviewed more closely, and then paste the updated

32 version back into the web UI.

33 25 

34### Where to edit26### Where to edit

35 27 

36To review or update the threat model, go to [Codex Security scans](https://chatgpt.com/codex/security/scans), open the repository, and click **Edit**.281. Open the Codex Security Cloud plugin. See [Cloud setup](https://learn.chatgpt.com/docs/security/setup)

29 if you haven't installed it or configured commit monitoring.

302. Open **Repositories** and select the monitored repository.

313. Open **Monitoring settings**.

324. Under **Project context**, edit **Threat model**, then select **Save**.

33 

34Changes apply to future scans.

37 35 

38## Related docs36## Related docs

39 37 

40- [Codex Security cloud setup](https://learn.chatgpt.com/docs/security/setup) covers repository setup and findings review.38- [Codex Security Cloud setup](https://learn.chatgpt.com/docs/security/setup) covers repository setup and findings review.

41- [Codex Security](https://learn.chatgpt.com/docs/security) gives the product overview.39- [Codex Security](https://learn.chatgpt.com/docs/security) gives the product overview.

42- [Codex Security cloud FAQ](https://learn.chatgpt.com/docs/security/faq) covers common cloud questions.40- [Codex Security Cloud FAQ](https://learn.chatgpt.com/docs/security/faq) covers common cloud questions.

sign-in-with-chatgpt.md +229 −0 created

Details

1# Sign in with ChatGPT

2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 

5Sign in with ChatGPT lets you sign in to participating apps and sites with your

6ChatGPT account. In supported apps, eligible ChatGPT Plus and Pro subscribers can

7also choose to use their ChatGPT plan for AI requests.

8 

9Signing in and using your plan are separate permissions. You review what an app

10can access before you connect it.

11 

12## Partners

13 

14 

15 

16

17 

18

19Apps with ChatGPT plan usage:

20 

21 <ul className="m-0 grid list-none grid-cols-2 gap-3 p-0 sm:grid-cols-3 [&>li>a]:block [&>li>a]:rounded-xl [&>li>a]:border [&>li>a]:border-default [&>li>a]:bg-surface-secondary [&>li>a]:px-4 [&>li>a]:py-4 [&>li>a]:text-center [&>li>a]:font-medium [&>li>a:hover]:underline">

22 <li>

23 [

24Amp Code

25](https://ampcode.com/auth/sign-in)

26 </li>

27 <li>

28 [

29Conductor

30](https://app.conductor.build/users/log_in)

31 </li>

32 <li>

33 [

34Dactyl

35](https://dactyl.dev/)

36 </li>

37 <li>

38 [

39Devin

40](https://app.devin.ai/login)

41 </li>

42 <li>

43 [

44Hermes Agent

45](https://portal.nousresearch.com/login)

46 </li>

47 <li>

48 [

49Hyperagent

50](https://hyperagent.com/login)

51 </li>

52 <li>

53 [

54Kilo Code

55](https://app.kilo.ai/users/sign_in)

56 </li>

57 <li>

58 [

59Lovable (coming soon)

60](https://lovable.dev/login)

61 </li>

62 <li>

63 [

64Notion

65](https://app.notion.com/login)

66 </li>

67 <li>

68 [

69Vercel

70](https://vercel.com/login)

71 </li>

72 <li>

73 [

74Vorflux

75](https://us1.vorflux.com/login)

76 </li>

77 <li>

78 [

79Warp

80](https://app.warp.dev/login)

81 </li>

82 </ul>

83

84 

85

86 

87

88Apps with sign-in only:

89 

90

91 

92 {

93 "These apps let you sign in with ChatGPT without using your ChatGPT plan."

94 }

95

96 

97 <ul className="m-0 grid list-none grid-cols-2 gap-3 p-0 sm:grid-cols-3 [&>li>a]:block [&>li>a]:rounded-xl [&>li>a]:border [&>li>a]:border-default [&>li>a]:bg-surface-secondary [&>li>a]:px-4 [&>li>a]:py-4 [&>li>a]:text-center [&>li>a]:font-medium [&>li>a:hover]:underline">

98 <li>

99 [

100Airtable

101](https://airtable.com/login)

102 </li>

103 <li>

104 [

105Canva

106](https://www.canva.com/login/)

107 </li>

108 <li>

109 [

110GitLab

111](https://gitlab.com/users/sign_in)

112 </li>

113 <li>

114 [

115HubSpot

116](https://app.hubspot.com/login)

117 </li>

118 <li>

119 [

120Supabase

121](https://supabase.com/dashboard/sign-in)

122 </li>

123 </ul>

124

125 

126

127 

128

129Open-source integrations:

130 

131 <ul className="m-0 grid list-none grid-cols-2 gap-3 p-0 sm:grid-cols-4 [&>li>a]:block [&>li>a]:rounded-xl [&>li>a]:border [&>li>a]:border-default [&>li>a]:bg-surface-secondary [&>li>a]:px-4 [&>li>a]:py-4 [&>li>a]:text-center [&>li>a]:font-medium [&>li>a:hover]:underline">

132 <li>

133 [

134OpenClaw

135](https://github.com/openclaw/openclaw)

136 </li>

137 <li>

138 [

139OpenCode

140](https://github.com/anomalyco/opencode)

141 </li>

142 <li>

143 [

144Pi

145](https://github.com/earendil-works/pi)

146 </li>

147 <li>

148 [

149T3

150](https://github.com/pingdotgg/t3code)

151 </li>

152 </ul>

153

154 

155 

156 

157 

158## Sign in with ChatGPT

159 

1601. In a participating app or site, select **Continue with ChatGPT**.

1612. Sign in to the ChatGPT account you want to use.

1623. Review the account information the app is requesting, such as your name, email

163 address, and profile picture.

1644. Continue to finish signing in. If you already have an account with the app using

165 the same email address, follow the app's prompts to confirm and link the accounts.

166 

167You can also link ChatGPT to an existing account in a participating app. Sign in

168to the app, then look for the ChatGPT option in its account or billing settings.

169 

170 

171 

172> Illustration: An app's Connect your ChatGPT plan panel with a Continue with ChatGPT button.

173 

174 

175 

176## Use your ChatGPT plan

177 

178Some apps also let you use your ChatGPT plan for eligible AI requests. It uses your

179Codex / ChatGPT work usage included in your plan.

180 

181When an app asks to use your plan, review the **Use your ChatGPT plan** permission

182and choose whether to allow it. Select **Continue** to proceed.

183 

184 

185 

186> Illustration: ChatGPT consent screen for an app, with Use your ChatGPT plan enabled, Continue and Cancel controls, and a reminder that the connection can be managed in ChatGPT settings.

187 

188 

189 

190App usage counts toward your existing plan limits. Connecting an app does not add

191a new allowance, and the app may have its own fees.

192 

193Using your plan does not give the app access to your ChatGPT conversations or

194memories. Review any other permissions the app requests separately.

195 

196 

197 

198> Illustration: An app's model menu showing Using ChatGPT plan and a Manage usage button.

199 

200 

201 

202## See and manage usage

203 

204In ChatGPT, open **Settings > Usage** to see how connected apps use your plan.

205 

206To set a limit for an app:

207 

2081. Under **App limits**, open the percentage menu next to the app.

2092. Set its weekly limit as a percentage of your overall weekly plan usage.

2103. Select **Save**.

211 

212An app's limit is a cap, not a separate allowance or a reserved portion of your

213plan.

214 

215 

216 

217> Illustration: ChatGPT App limits settings with a percentage menu for Pate Perfect and a Save button.

218 

219 

220 

221To completely disconnect access for an external partner tool, go to **ChatGPT

222Settings > Security and login > Sign in with ChatGPT**, select the app, and select

223**Disconnect**.

224 

225For help with Sign in with ChatGPT, visit the [OpenAI Help Center](https://help.openai.com/en/articles/20001542).

226 

227## For developers

228 

229To add Sign in with ChatGPT to your app, start with the [Sign in with ChatGPT developer documentation](https://developers.openai.com/siwc).

sites.md +102 −13

Details

24 24 

25Use Sites in ChatGPT on the web to create and manage hosted sites. Select25Use Sites in ChatGPT on the web to create and manage hosted sites. Select

26**More** > **Sites**, or go directly to26**More** > **Sites**, or go directly to

27[chatgpt.com/sites](https://chatgpt.com/sites), to find Sites you've created.27[Sites in ChatGPT](https://chatgpt.com/sites), to find Sites you've created.

28 28 

29</ContentModeSwitch>29</ContentModeSwitch>

30 30 


85 85 

86</ContentModeSwitch>86</ContentModeSwitch>

87 87 

88 

89 

90 {"For help creating and managing Sites, see "}

91 [{"Creating and managing ChatGPT Sites"}](https://help.openai.com/articles/20001339)

92 {" in the Help Center."}

93

94 

95 

88## Prompt Sites for common tasks96## Prompt Sites for common tasks

89 97 

90For a new website, dashboard, or internal tool, include the audience, core98For a new website, dashboard, or internal tool, include the audience, core

91experience, and required information:99experience, and required information:

92 100 

101 

102 

103**Prompt:**

104 

93```text105```text

94Build a project request dashboard for my operations team. Let team members106Build a project request dashboard for my operations team. Let team members submit requests, see who owns each one, update the status, and filter the list. Require people to sign in with their workspace account, and keep the request data saved between visits.

95submit requests, see who owns each one, update the status, and filter the list.

96Require people to sign in with their workspace account, and keep the request

97data saved between visits.

98```107```

99 108 

100<ContentModeSwitch group="codex-surface" ids="app,cli,ide">109<ContentModeSwitch group="codex-surface" ids="app,cli,ide">

101 110 

102For an existing project, ask Sites to prepare and publish the current app:111For an existing project, ask Sites to prepare and publish the current app:

103 112 

113 

114 

115**Prompt:**

116 

104```text117```text

105Deploy this project with Sites. Check whether it is compatible, make any118Deploy this project with Sites. Check whether it is compatible, make any required changes, and give me the deployment URL.

106required changes, and give me the deployment URL.

107```119```

108 120 

109</ContentModeSwitch>121</ContentModeSwitch>


111When a site needs durable application data or uploaded files, say so in the123When a site needs durable application data or uploaded files, say so in the

112request:124request:

113 125 

126 

127 

128**Prompt:**

129 

114```text130```text

115Add player scores and avatar uploads to this game. Keep the scores and uploaded131Add player scores and avatar uploads to this game. Keep the scores and uploaded avatars between visits.

116avatars between visits.

117```132```

118 133 

119Browse the [Sites showcase](https://developers.openai.com/showcase) for deployed internal apps and the full134Browse the [Sites showcase](https://developers.openai.com/showcase) for deployed internal apps and the full


134 149 

135<ContentModeSwitch group="codex-surface" id="web">150<ContentModeSwitch group="codex-surface" id="web">

136 151 

137Go to [chatgpt.com/sites](https://chatgpt.com/sites), find the Site, then select152Go to [Sites in ChatGPT](https://chatgpt.com/sites), find the Site, then select

138**More actions** > **Analytics**.153**More actions** > **Analytics**.

139 154 

140</ContentModeSwitch>155</ContentModeSwitch>


164 179 

165Ask Sites to add the sign-in experience:180Ask Sites to add the sign-in experience:

166 181 

182 

183 

184**Prompt:**

185 

167```text186```text

168Add Sign in with ChatGPT to this public Site. Keep the Site available to signed-out visitors. Show a Sign in with ChatGPT action when someone is signed out. After they sign in, greet them with their full name when available, or their email address otherwise. Add a Sign out action, and keep authorization decisions in server-side code.187Add Sign in with ChatGPT to this public Site. Keep the Site available to signed-out visitors. Show a Sign in with ChatGPT action when someone is signed out. After they sign in, greet them with their full name when available, or their email address otherwise. Add a Sign out action, and keep authorization decisions in server-side code.

169```188```


190 209 

191</ToggleSection>210</ToggleSection>

192 211 

212<a id="load-visitor-data-via-plugins"></a>

213 

214## Bring user data to your Site with plugins

215 

216Use plugins in Sites to build a Site that loads

217data from each Site viewer's own connected apps. For example, an issue dashboard

218can show your assigned issues to you and your teammate's assigned issues to

219them. Each visitor signs in with ChatGPT and chooses which connected accounts

220and access to allow.

221 

222Using plugins in Sites requires a workspace where the feature is enabled and a

223 Site that is private to that workspace. Connected features require membership

224 in the Site's workspace and remain subject to each visitor's existing app

225 permissions. Admins can follow [Enable plugin use in

226 Sites](https://learn.chatgpt.com/docs/enterprise/sites#enable-plugin-use-in-sites) to review

227 individual plugin permissions and check tenant restrictions.

228 

229### Build a Site with connected data

230 

231<WorkflowSteps>

232 

2331. Ask ChatGPT Work or Codex to build a Site. Name the plugin connector and what it should do, or ask which plugins are available.

2342. Try the preview with real data. The agent uses your available connections

235 while building and previewing the Site.

2363. Ask the agent to publish the Site for your workspace and

237 share its link with teammates.

238 

239</WorkflowSteps>

240 

241For example:

242 

243 

244 

245**Prompt:**

246 

247```text

248Build a Site using my connected issue tracker that shows issues assigned to me, grouped by priority. Add project filters, links to the original issues, and a Refresh button.

249```

250 

251GPT-6 Astra · Medium

252 

253You can also build a document finder that links to original documents or a

254project overview that combines tickets and messages.

255 

256### Data loading

257 

258On page load, Sites reads connected data using the visitor's connection and permissions. Sites manages caching and reloading; ask ChatGPT Work or Codex to add a manual refresh action if needed.

259 

260By default, Sites uses a **Load more** action to fetch another page when the connector returns a cursor.

261 

262Sites uses `getContext()` to find a plugin's actions. It returns cached tool names, descriptions, and schemas; it doesn't refresh discovery.

263 

264### Write to an app

265 

266If your Site needs to write to an app, ask for write access. Write actions must be enabled and configured, and require visitor consent and an explicit user action.

267 

268### Let visitors choose their connections

269 

270To use connected features, a visitor signs in with ChatGPT, reviews the app

271access the Site requests, chooses the connected account and access to allow,

272and returns to the Site. Sharing the Site doesn't grant access to your

273connected accounts. The Site receives data from the apps each visitor allows.

274 

275Visitors can continue without granting app access, but features that need it

276won't work. If an app is unavailable, check that it's connected in the right

277workspace and allowed by workspace settings.

278 

193## Understand projects, versions, and deployments279## Understand projects, versions, and deployments

194 280 

195A Site is a persistent hosted output that you can reopen, refine, configure,281A Site is a persistent hosted output that you can reopen, refine, configure,


286 372 

287For example:373For example:

288 374 

375 

376 

377**Prompt:**

378 

289```text379```text

290Change this Site's access to everyone in my workspace after showing me the380Change this Site's access to everyone in my workspace after showing me the current Site and confirming its URL.

291current Site and confirming its URL.

292```381```

293 382 

294### Invite people outside your workspace383### Invite people outside your workspace


369 458 

370<ContentModeSwitch group="codex-surface" id="web">459<ContentModeSwitch group="codex-surface" id="web">

371 460 

372Go to [chatgpt.com/sites](https://chatgpt.com/sites), find the Site, then select461Go to [Sites in ChatGPT](https://chatgpt.com/sites), find the Site, then select

373**More actions** > **Settings**.462**More actions** > **Settings**.

374 463 

375</ContentModeSwitch>464</ContentModeSwitch>

space.md +56 −0 created

Details

1# ChatGPT Space

2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 

5ChatGPT Space brings your pages, files, and shared work into one place. Write and

6edit alongside ChatGPT, then invite other people to work with you.

7 

8 

9 

10> Illustration: Welcome to Space, with mock documents and animated collaborator cursors. Move your pointer over the illustration to see a cursor labeled You.

11 

12 

13 

14## Workspaces and spaces

15 

16Your **ChatGPT workspace** is the personal or organization environment you're

17signed in to. It determines your membership, settings, and available apps.

18Space holds the work you can access in that environment.

19 

20Within Space, a **space** groups pages around a topic or team, such as a design

21studio or a research project. Share the space to give collaborators access to

22its pages. You can also create a page on its own.

23 

24 

25 

26> Illustration: Space with a sidebar for Pages, Sites, Images, and Google Drive, and a list of saved work.

27 

28 

29 

30## Pages and other content

31 

32A **[page](https://learn.chatgpt.com/docs/space/pages)** is a document you and ChatGPT can edit together.

33It can hold notes, a plan, or a team handbook, with child pages for related work.

34You can write directly, ask ChatGPT for revisions, and leave comments for

35collaborators.

36 

37Space also brings together:

38 

39- **Spreadsheets and presentations:** Create and edit tables, calculations, and

40 slides with ChatGPT.

41- **[Sites](https://learn.chatgpt.com/docs/sites):** Websites and tools you build with ChatGPT.

42- **Images and files:** Uploaded files and saved work you can open and reuse.

43 

44## Connect your sources

45 

46Connected apps, such as Google Drive, let ChatGPT use files you already have

47access to. Add source links or files to a page, then ask ChatGPT to turn that

48context into a summary, comparison, or update. Available sources depend on your

49[connected apps](https://learn.chatgpt.com/docs/plugins?surface=web#overview) and workspace settings.

50 

51Linked files keep their original permissions. Content you copy or summarize

52onto a page is visible to people who can access that page. Sharing a page

53doesn't share your private chats or saved memory.

54 

55To create your first page, see [Getting started](https://learn.chatgpt.com/docs/space/getting-started).

56For workspace controls, see [Manage ChatGPT Space](https://learn.chatgpt.com/docs/enterprise/chatgpt-space).

space/agents.md +97 −0 created

Details

1# Work with agents in Space

2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 

5Work with ChatGPT or a dot in Space to draft, research, or revise a page.

6Available agents and connected tools depend on your access.

7 

8 

9 

10> Illustration: The page mention menu after typing @, with All, People, Pages, and Chats tabs, ChatGPT to start a task, and My dot to send a prompt to your dot.

11 

12 

13 

14<a id="start-with-a-bounded-request"></a>

15 

16## Choose how to ask for help

17 

18Use the conversation alongside a page for questions, planning, or a revision that

19needs discussion. For a small change, select the relevant text, ask ChatGPT or a dot inline,

20or add a comment. The controls offered depend on your access.

21 

22| Your goal | Where to ask | What to review |

23| ------------------------------------------------ | -------------------------------------------------------------------------------------- | ---------------------------------------------- |

24| Explore a question or discuss a larger revision. | The conversation alongside the page. State whether to answer in chat or edit the page. | The conversation and any requested page edits. |

25| Rewrite selected text. | Select the text and use **Ask for change**, when offered. | The proposed edit before accepting it. |

26| Ask ChatGPT or a dot directly in the page. | Type `@ChatGPT` or `@dot` followed by your prompt inline. | The reply and any changes to the page. |

27| Keep a specific request in a comment discussion. | Mention `@ChatGPT` or `@dot` followed by your prompt. | The reply and any changes to the page. |

28 

29Mentioning ChatGPT or a dot asks that agent to act on your request. A comment to

30another person leaves feedback for them. Check the recipient before sending.

31 

32 

33 

34> Illustration: A selected sentence in an offsite plan has a comment mentioning @ChatGPT to change its start date. The comment includes the author, timestamp, and an empty Reply composer.

35 

36 

37 

38## Use slash commands

39 

40Type `/` in a page to open the slash menu. Choose **Generate** to generate text

41inline, **Visualize** to create an interactive visualization, or **Image** to add

42an image block. In the image block, choose **Generate** and describe the image

43you want. See [Add content to a page](https://learn.chatgpt.com/docs/space/pages#add-content-with-the-insert-menu)

44and [Generate images](https://learn.chatgpt.com/docs/space/pages#generate-images) for more examples.

45 

46 

47 

48> Illustration: The page slash menu after typing /, with Generate to describe what you want to write, Visualize to create an interactive visualization, and Image to upload or generate an image.

49 

50 

51 

52## Use dots in Space

53 

54You can work with [dots](https://learn.chatgpt.com/docs/dots) directly in ChatGPT Space. Type `@` in a

55page to open the mention menu and choose your dot.

56 

57Type `@dot` followed by your prompt inline or in a page comment. For example:

58 

59<SpaceDotPrompt

60 mention="@dot"

61 prompt="Summarize the open questions in this page and suggest next steps."

62 description="A page paragraph mentions @dot and asks it to summarize the open questions and suggest next steps."

63/>

64 

65Review your dot's reply and any changes to the page before continuing.

66 

67## Revise a launch brief

68 

69If a brief names a launch date but the linked plan says it still needs approval,

70check the source, then select the sentence and use **Ask for change**, when offered:

71 

72> Describe the date as proposed and awaiting approval. Keep the date and

73> source link unchanged.

74 

75Review the proposed wording before accepting it.

76 

77## Verify recurring work separately

78 

79Keep Updated isn’t available at launch.

80 

81To set up recurring work, ask ChatGPT in chat and review the saved schedule.

82Writing a cadence in a page or its instructions doesn't by itself confirm that

83a task is scheduled.

84 

85After setup, review the saved task, its timing, and whether it's enabled. Then

86check an actual run and the resulting page update. These controls depend on

87what's available in your account.

88 

89For schedule management and execution requirements, see

90[Scheduled tasks](https://learn.chatgpt.com/docs/automations).

91 

92## Work with others

93 

94Collaborators share the page content, but may use different agents, connected

95tools, or instructions. Agree on who is changing what and review the result.

96 

97See [Collaboration](https://learn.chatgpt.com/docs/space/collaboration) for access and review guidance.

space/collaboration.md +90 −0 created

Details

1# Collaborate in Space

2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 

5Share a page on its own or, where available, share a Space to give people access

6to a group of related pages.

7 

8## Choose an access level

9 

10The sharing controls show the permissions available for the page or Space.

11Available roles also depend on the recipient type; a Team invitation may offer

12view or edit access without comment access.

13 

14| Access | Use it when someone needs to |

15| ------- | --------------------------------- |

16| View | Read the work. |

17| Comment | Read the work and leave feedback. |

18| Edit | Change the content with you. |

19 

20You need permission to manage sharing before you can change someone else's

21access. Available recipients and sharing options depend on your account and

22workspace.

23 

24For workspace sharing controls, see [Manage Space sharing](#for-workspace-admins).

25 

26## Share a page or Space

27 

281. Open the page or Space you want to share.

292. Open its sharing controls and add the intended people or Teams from the

30 available options.

313. Choose an access level and save.

324. Confirm that a collaborator can open the work with the expected permission.

33 

34Before sharing, check who can access the page and whether it contains information

35from private sources.

36 

37## Understand inherited access

38 

39 

40 

41 

42 

43 

44Access to a shared Space applies to its pages. Sharing a page also grants access

45to its child pages. The sharing controls distinguish direct access from access

46inherited from a parent page or Space.

47 

48Removing a direct invitation doesn't remove access that someone still inherits

49from a parent page or Space. Review the parent or Space's sharing controls when

50you need to change that access.

51 

52 

53 

54 

55 

56 

57 

58 

59> Illustration: A page sharing dialog for Offsite plan shows workspace link access, the owner, and view access inherited from the Team offsite Space.

60 

61 

62 

63 

64 

65 

66 

67 

68<a id="for-workspace-admins"></a>

69 

70**For workspace admins:** See [Manage ChatGPT Space](https://learn.chatgpt.com/docs/enterprise/chatgpt-space) for workspace sharing controls, setup, and security and governance guidance.

71 

72## Review together

73 

74Use comments to discuss a question or request a change. Give edit access to

75collaborators who should update the content directly. When asking an agent to

76revise shared work, identify the section it should change and preserve the

77decisions your team has already made.

78 

79Check access to linked source material separately. A collaborator who can read

80your page may still lack permission to open a source linked from it.

81 

82## Resolve an access problem

83 

84If someone can't open the work, check that they are using the intended account

85and workspace, then review the page or Space's saved permissions. If you can't

86edit or manage sharing, ask someone with the appropriate access to make the

87change.

88 

89For guidance on developing the content together, see

90[Pages](https://learn.chatgpt.com/docs/space/pages) and [Work with the agent](https://learn.chatgpt.com/docs/space/agents).

space/getting-started.md +82 −0 created

Details

1# Get started with ChatGPT Space

2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 

5Start with a blank page, notes you already have, or a conversation you want to

6save. You need an account with Space enabled.

7 

8## Open Space

9 

10Open **Space** in ChatGPT. **All** brings together your saved work. Use

11**Your items** to find your own content, **Shared with you** for content others

12have shared, or search by name.

13 

14 

15 

16> Illustration: The All view in Space, with Suggested, Favorites, Your items, and Shared with you tabs, a search field, and a New menu.

17 

18 

19 

20## Draft your first page

21 

22<WorkflowSteps variant="headings">

23 

241. Create a page

25 

26 Select **New page** in the sidebar. Give it a title and start typing, paste

27 your notes, or add a file. You can also ask ChatGPT to create a page from an

28 existing conversation.

29 

302. Add context

31 

32 Include the notes, files, or links you want ChatGPT to use. For content in an

33 app such as Google Drive, connect the app and point ChatGPT to the relevant

34 files.

35 

363. Ask ChatGPT to help

37 

38 Open ChatGPT alongside the page and describe what you want to make. Copy

39 this prompt to organize rough notes:

40 

41

42 

43**Prompt:**

44 

45```text

46Organize the notes on this page into a clear draft. Use headings and bullet points where they help. Preserve the facts and source links, and list any open questions at the end.

47```

48 

494. Edit the result

50 

51 Change the text directly or ask ChatGPT for a revision. Check the result on

52 the page before sharing it.

53 

54</WorkflowSteps>

55 

56## Group related pages in a space

57 

58For a topic or team with related pages, create a space. From **All**, open

59**New** and select **Space**. Name the topic or group, optionally expand

60**Invite people**, then select **Create**. You can share the space later.

61 

62 

63 

64> Illustration: Create a space dialog with a name field, an Invite people option, and Cancel and Create actions.

65 

66 

67 

68People invited to a space receive access to its pages. To share only one page,

69use that page's sharing controls instead. See

70[inherited access](https://learn.chatgpt.com/docs/space/collaboration#understand-inherited-access).

71 

72## Review and share

73 

74<WorkflowSteps>

75 

761. Open the page's sharing controls.

772. Choose a person or an available team and set their permission. Use view

78 access for readers or edit access to work on the page together.

793. Share the link. Collaborators can open the page and, with edit access, make

80 changes alongside you and ChatGPT.

81 

82</WorkflowSteps>

space/pages.md +278 −0 created

Details

1# Work with pages

2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 

5A page is a document you can edit directly or with ChatGPT. Use it for notes,

6plans, research, or a shared reference you want to return to.

7 

8<a id="create-a-focused-page"></a>

9 

10## Create a page

11 

12 

13 

14 

15 

16 

17Select **New page** in the Space sidebar, or ask ChatGPT to create a page from

18an existing conversation. Select **Pages** to find pages you've created or can

19access.

20 

21Give the page a title, then type or paste your content. Add headings, lists,

22images, files, and tables as needed.

23 

24 

25 

26 

27 

28 

29 

30 

31> Illustration: The Space sidebar, with New page highlighted and navigation for All, Pages, Sites, Images, and Google Drive.

32 

33 

34 

35 

36 

37 

38 

39 

40## Add content with the insert menu

41 

42 

43 

44 

45 

46 

47Pages organize content into blocks, such as headings, paragraphs, and tables.

48Type `/` while editing to open the insert menu and add a new block. Search for the content

49you want to add, then choose an option. Alongside headings, lists, and checklists,

50the menu offers ways to combine supporting material and interactive content:

51 

52- **Table, Code, and Highlight:** Compare information, share code, or call attention to a note.

53- **Image and File:** Generate or upload images, or attach files readers can download.

54- **Page and Link to page:** Create a subpage or link to an existing page.

55- **Files, Pages, and Chats:** Reference existing material without copying it.

56- [**Visualize**](https://learn.chatgpt.com/docs/visualizations): Create interactive calculators, diagrams, or screen designs.

57- **Prompt, Task, and Agent Instructions:** Add reusable prompts, actions for Codex, or guidance for agents.

58 

59 

60 

61 

62 

63 

64 

65 

66> Illustration: Typing adds a heading, generated introduction, table, and image to one page. All content is selected and deleted together before the sequence restarts.

67 

68 

69 

70 

71 

72 

73 

74 

75## Work with selected text

76 

77Select text on a page to open the floating toolbar. Use **Ask for change** to

78describe a revision to the selection, or **Comment** to start a discussion about

79that passage.

80 

81You can also apply bold, italic, underline, or strikethrough formatting, mark

82inline code, and add a link. Open **Text** to change the block style, such as a

83heading, list, checklist, or quote.

84 

85<PageSelectionIllustration

86 askLabel="Ask for change"

87 textLabel="Text"

88 commentLabel="Comment"

89 before="The launch date is"

90 selected="September 29."

91 ariaLabel="Selected text with a floating toolbar containing Ask for change, bold, italic, underline, strikethrough, inline code, link, Text styles, and Comment."

92/>

93 

94## Rearrange blocks

95 

96Move blocks as your page takes shape. For example, bring a decision above its

97supporting research, or move an image next to the explanation it illustrates.

98 

99Use the handle beside a block to drag it to a new position in the page. Select

100the handle to open the block's options. The handle can also move a list or a

101heading's section, so check which content you're moving before dropping it.

102 

103## Draft content with Generate

104 

105Use **Generate** to write a first draft directly in your page. Open the `/` menu,

106choose **Generate**, and describe what you want to add. Include the purpose,

107format, and details the draft should preserve. For example:

108 

109<PageComposerIllustration

110 kind="generate"

111 prompt="Write a short introduction for this launch plan. Summarize its goal, name the intended audience, and leave dates that are not confirmed as open questions."

112 ariaLabel="Generate composer with a request to draft a launch introduction."

113/>

114 

115Review the generated text in place. You can accept it, ask for a change, or undo

116it. Use Generate when you want new page content; use a Prompt block when you want

117to leave a reusable request for readers.

118 

119## Generate images

120 

121Add an **Image** block from the `/` menu, then choose **Generate** and describe

122the image you want. Include the subject, style, and details that matter for your

123page. For example: “Create a mountain lake at dusk for a team retreat plan.”

124 

125To use an existing image, choose **Attach** instead. See [Image generation](https://learn.chatgpt.com/docs/image-generation)

126for more ways to create and refine images.

127 

128## Add interactive visualizations

129 

130Visualizations let readers explore generated content inside the page.

131Use one to explain a process with a diagram, try a screen design, or let readers

132adjust inputs in a small calculator. Describe both what to show and how readers

133should interact with it.

134 

135Type `/visualize` followed by your request, then choose the matching menu option.

136For example:

137 

138<PageComposerIllustration

139 kind="visualize"

140 prompt="Create a project budget calculator. Let readers change the team size, number of weeks, and weekly cost per person, and show the total cost."

141 ariaLabel="Visualization placeholder with a floating composer requesting a project budget calculator."

142/>

143 

144The menu also offers starting points for an app, screen design, widget, or

145diagram. Review the generated result and try its controls before sharing the

146page. To request a revision, describe the visualization and the change you want

147in ChatGPT alongside the page.

148 

149See [Visualizations](https://learn.chatgpt.com/docs/visualizations) for more examples, prompting tips,

150and guidance on refining and sharing a result.

151 

152## Add prompts readers can run

153 

154A **Prompt** block stores a request that readers can use to start a chat. Add one

155from the `/` menu and write the request in the block. For example, a project

156page could include:

157 

158> Summarize the open decisions on this page and suggest the next three steps.

159 

160Use prompts to give readers a starting point for exploring the work, asking

161questions, or planning a follow-up. Choose **Chat about this** to run the prompt

162while editing, or select the prompt when reading the page.

163 

164<a id="mention-people-and-agents"></a>

165 

166## Mention people, agents, files, and chats

167 

168Type `@` and start a name to mention a person or one of your agents. Use a person

169mention to identify an owner or collaborator, and an agent mention to refer to

170the agent involved in the work. In a comment, mention **ChatGPT** with a specific

171request to ask it to help. See [Collaborate in Space](https://learn.chatgpt.com/docs/space/collaboration)

172for working with people and [Work with the agent in Space](https://learn.chatgpt.com/docs/space/agents)

173for asking an agent to draft, research, or revise content.

174 

175You can also type `@` to find and mention files in Space and your ChatGPT chats.

176Use a file mention to connect a plan to its supporting material, or a chat mention

177to point readers to a discussion behind a decision. These references keep the

178source close to the work without copying its contents into the page.

179 

180## Organize related work

181 

182 

183 

184 

185 

186 

187Create child pages to group details under a parent page, or keep related pages

188in a space for a topic or team. Link to another page when you want to reference

189it without moving it.

190 

191 

192 

193 

194 

195 

196 

197> Illustration: A cursor drags the Launch checklist heading and its checklist above the Launch overview heading and paragraph. Each section moves together.

198 

199 

200 

201 

202 

203 

204 

205### Create subpages

206 

207A subpage is a page inside another page. Use subpages to keep a project overview

208short while giving research, meeting notes, or detailed plans their own space.

209For example, a launch page could contain subpages for customer research and a

210communications plan.

211 

212In the parent page, type `/` and choose **Page** to create a subpage. Give the

213new page a descriptive title so readers can tell what belongs there. To refer

214to a page that already exists, choose **Link to page** instead.

215 

216Review access as you organize the work. A page can inherit access from its

217shared Space or a parent page. See

218[Understand inherited access](https://learn.chatgpt.com/docs/space/collaboration#understand-inherited-access).

219 

220## Revise the content

221 

222<WorkflowSteps>

223 

2241. Open the page and ChatGPT alongside it.

2252. Describe the change and identify the text to revise. You can ask for a new

226 section, a shorter draft, or an update based on a source.

2273. Read the updated page. Edit it directly or ask for another change.

228 

229</WorkflowSteps>

230 

231 

232 

233**Prompt:**

234 

235```text

236Rewrite the introduction for a reader who is new to this project. Preserve the scope, dates, decisions, and source links. Leave the rest of the page unchanged.

237```

238 

239## Give wide content more room

240 

241Open a table's block handle menu and select **Width**. Choose **Normal**,

242**Flexible**, or **Full width** to change how much of the page it uses.

243 

244 

245 

246> Illustration: A cursor opens a Space table's block menu, opens Width, and selects Full width. The same table expands from the normal reading column into the page margins.

247 

248 

249 

250The table's **Fit** menu offers ways to size its columns. When

251offered, try **For readability** to give the content room or **Distribute

252columns evenly** for equally sized columns. Review the result on the screen

253where you'll use the page.

254 

255<a id="review-changes-with-collaborators"></a>

256 

257## Comment and collaborate

258 

259 

260 

261 

262 

263 

264Share the page with edit access to write together in real time. Use comments

265for questions or feedback on a passage. You can also mention ChatGPT in a

266comment to ask for help with that part of the page.

267 

268When available, select **Show attribution** to see who contributed. See

269[Collaboration](https://learn.chatgpt.com/docs/space/collaboration) for sharing and access controls.

270 

271 

272 

273 

274 

275 

276 

277 

278> Illustration: A highlighted launch date has a comment thread. Alex asks Sam to confirm the date, and Sam replies that approval is still pending.

speed.md +71 −25

Details

2 2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 4 

5You can increase model speed in Codex in exchange for higher usage.

6 

7## Fast mode

8 

9Fast mode speeds up supported models, including GPT-6.1 Sol, GPT-6 Astra,

10GPT-6 Sol, and GPT-6 Luna, where available. For GPT-5.6 and GPT-5.5, the

11speed increase is 1.5x.

12 

13Use `/fast` in the CLI to toggle Fast mode. Use `/statusline` to show it in the

14footer. You can also persist the default with `service_tier = "fast"` plus

15`[features].fast_mode = true` in `config.toml`. Fast mode is available in the

16ChatGPT desktop app, Codex CLI, and IDE extension when you sign in with ChatGPT.

17 

18For supported models, Fast mode uses included subscription limits at 2.5x the

19Standard rate. Purchased credits and Enterprise pay-as-you-go usage are billed

20at 2x the Standard rate. These billing multipliers don't describe speed increases.

21 

22<a id="astra-ultrafast"></a>

23 

24## Ultrafast mode

25 

26GPT-6 Astra Ultrafast generates tokens up to 8x faster than GPT-6 Astra in

27Standard mode in Codex. This comparison measures token generation speed,

28not billing rates or overall task completion time.

29 

30Ultrafast is available in Codex and ChatGPT Work on Pro $500 and eligible

31Enterprise and Edu plans. On Pro $500, Ultrafast uses your included usage first,

32then your available credits after that allowance runs out.

33 

34For GPT-6 Astra, Ultrafast uses included subscription limits at 8x the

35Standard rate. Purchased credits and Enterprise pay-as-you-go usage are billed

36at 6x the Standard rate. These billing multipliers don't describe speed increases.

37Enterprise billing remains subject to the workspace's agreement.

38 

39For Enterprise workspaces, Ultrafast is off by default. Workspace owners can

40enable access for selected users or the workspace through

41[workspace permissions](https://learn.chatgpt.com/docs/enterprise/roles-and-workspace-permissions).

42Existing [per-user spend controls](https://learn.chatgpt.com/docs/enterprise/usage-limits) apply to

43eligible Ultrafast usage.

44 

45## Availability and billing details

46 

5**ChatGPT Work and Codex share usage.** Both use the same47**ChatGPT Work and Codex share usage.** Both use the same

6 pricing, credits, and usage limits. See [Codex pricing](https://learn.chatgpt.com/docs/pricing) for48 pricing, credits, and usage limits. See [Codex pricing](https://learn.chatgpt.com/docs/pricing) for

7 details.49 details.

8 50 

9## Fast mode51### Supported models

10 52 

11GPT-5.5 retires from ChatGPT, ChatGPT Work, and Codex on all plans on53GPT-6 Astra, GPT-6 Sol, and GPT-6 Luna support Fast mode where available.

12October 14, 2026. The OpenAI API isn't affected. See54[GPT-6.1 Sol](https://learn.chatgpt.com/docs/models#gpt-61-sol) supports Standard and Fast where

13[GPT-5.5 retirement](https://learn.chatgpt.com/docs/models#gpt-55-retirement) for migration guidance.55available. Access depends on your plan, client, workspace settings, and rollout.

56See [Models](https://learn.chatgpt.com/docs/models) for model availability and

57[Pricing](https://learn.chatgpt.com/docs/pricing#token-rates) for token rates.

14 58 

15Codex offers the ability to increase the speed of the model for increased59### Ultrafast plan and workspace requirements

16credit consumption.

17 60 

18For GPT-5.6, GPT-5.5, and GPT-5.4, Fast mode increases model speed by 1.5x.61- Eligible Enterprise workspaces use credit-based or USD usage-based

19GPT-5.6 and GPT-5.5 consume credits at 2.5x the Standard rate; GPT-5.4 consumes62 agreements. Usage is billed according to the workspace's agreement.

20credits at 2x the Standard rate.63- Eligible Edu plans use credits. Legacy Enterprise plans that rely on rate

64 limits instead of usage-based billing aren't supported.

21 65 

22For GPT-6 Astra, GPT-6 Sol, and GPT-6 Luna, Fast mode consumes credits at66Other self-serve plans don't have access to Ultrafast at launch, even with

232.5x the Standard rate where available. See [Models](https://learn.chatgpt.com/docs/models) for model availability and67purchased credits.

24[Pricing](https://learn.chatgpt.com/docs/pricing#token-rates) for token rates.68 

69Ultrafast isn't available to workspaces that require inference residency

70outside the United States. A workspace's location alone doesn't determine

71eligibility.

72 

73### API billing

74 

75With an API key, Codex uses API token pricing instead, and ChatGPT credit

76multipliers don't apply.

77 

78For API availability, request configuration, and pricing, see

79[Ultrafast mode in the API](https://developers.openai.com/api/docs/guides/ultrafast-mode).

80 

81## Retirement and migration

25 82 

26Use `/fast on`, `/fast off`, or `/fast status` in the CLI to change or inspect83[GPT-5.5 retires](https://learn.chatgpt.com/docs/models#gpt-55-retirement) from ChatGPT, ChatGPT Work,

27the current setting. You can also persist the default with `service_tier =84and Codex on all plans on October 14, 2026. The OpenAI API isn't affected.

28"fast"` plus `[features].fast_mode = true` in `config.toml`. Fast mode is

29available in the ChatGPT desktop app, Codex CLI, and IDE extension when you

30sign in with ChatGPT. Fast mode is a ChatGPT credit feature. With an API key,

31Codex uses API token pricing instead, and ChatGPT credit multipliers don't

32apply. API Priority processing has its own billing rate; for GPT-5.6, it costs

332x the Standard API token rate.

34 

35<VideoPlayer

36 src="/videos/codex/fast-mode-demo.mp4"

37 class="[&_video]:mx-auto [&_video]:max-h-[400px] [&_video]:max-w-full [&_video]:w-auto"

38/>

subagents.md +16 −11

Details

162request a specific model or reasoning effort in your prompt,162request a specific model or reasoning effort in your prompt,

163configure `[agents]` defaults in `config.toml`, or set `model` and163configure `[agents]` defaults in `config.toml`, or set `model` and

164`model_reasoning_effort` directly in the custom agent file.164`model_reasoning_effort` directly in the custom agent file.

165For example, use `gpt-6-luna` for fast scans or a higher-effort `gpt-6-sol` configuration for more demanding reasoning.165For example, use `gpt-6-luna` for fast scans or a higher-effort `gpt-6.1-sol` configuration for more demanding reasoning.

166 166 

167For most tasks in Codex, start with 167For most tasks in Codex, start with

168 `gpt-6-sol`. Use 168 `gpt-6.1-sol` when your

169 `gpt-6-luna` when you want a faster, lower-cost option for lighter subagent169 signed-in account or workspace has [access](https://learn.chatgpt.com/docs/models#gpt-6.1-sol).

170 work.170 Otherwise, choose a model available to you. Use `gpt-6-luna` when you want a

171 faster, lower-cost option for lighter subagent work.

171 172 

172### Model choice173### Model choice

173 174 

174- **`gpt-6-sol`**: Start here for demanding agents. It's strongest for ambiguous, multi-step work that needs planning, tool use, validation, and follow-through across a larger context.175- **`gpt-6.1-sol`**: Start here for demanding agents. Use it for ambiguous, multi-step work that needs planning, tool use, validation, and follow-through across a larger context.

175- **`gpt-6-luna`**: Use for fast, narrowly scoped agents handling clear, repeatable, or high-volume work.176- **`gpt-6-luna`**: Use for fast, narrowly scoped agents handling clear, repeatable, or high-volume work.

176 177 

177### Reasoning effort (`model_reasoning_effort`)178### Reasoning effort (`model_reasoning_effort`)

178 179 

179For explicit model settings, start with `medium` for GPT-6 Sol, `high` for180For GPT-6.1 Sol, use a reasoning effort supported by your client and selected

180GPT-6 Luna, or `low` for GPT-6 Astra. Adjust for the task using a level the181model. For explicit model settings, start with `high` for GPT-6 Luna or `low`

181selected model supports.182for GPT-6 Astra. Adjust for the task using a level the selected model supports.

182 183 

183- **`ultra`**: Use for the deepest reasoning when the selected model supports184- **`ultra`**: Use for the deepest reasoning when the selected model supports

184 it.185 it.

185- **`max`** and **`xhigh`**: Use for especially demanding reasoning when the186- **`max`** and **`xhigh`**: Use for especially demanding reasoning when the

186 selected model supports these levels.187 selected model supports these levels.

187- **`high`**: Use when an agent needs to trace complex logic, check assumptions, or work through edge cases (for example, reviewer or security-focused agents).188- **`high`**: Use when an agent needs to trace complex logic, check assumptions, or work through edge cases (for example, reviewer or security-focused agents).

188- **`medium`**: Balances speed and depth; the starting point for GPT-6 Sol.189- **`medium`**: Balances speed and depth.

189- **`low`**: Use when the task is straightforward and speed matters most.190- **`low`**: Use when the task is straightforward and speed matters most.

190 191 

191Higher reasoning effort increases response time and token usage, but it can improve quality for complex work. For details, see [Models](https://learn.chatgpt.com/docs/models), [Config basics](https://learn.chatgpt.com/docs/config-file/config-basic), and [Configuration Reference](https://learn.chatgpt.com/docs/config-file/config-reference).192Higher reasoning effort increases response time and token usage, but it can improve quality for complex work. For details, see [Models](https://learn.chatgpt.com/docs/models), [Config basics](https://learn.chatgpt.com/docs/config-file/config-basic), and [Configuration Reference](https://learn.chatgpt.com/docs/config-file/config-reference).


403tool surface that matches that job, and instructions that keep it from404tool surface that matches that job, and instructions that keep it from

404drifting into adjacent work.405drifting into adjacent work.

405 406 

407The examples use [GPT-6.1 Sol](https://learn.chatgpt.com/docs/models#gpt-6.1-sol) where your signed-in

408account or workspace has access. If it isn't available, choose a model you can

409use.

410 

406#### Example 1: PR review411#### Example 1: PR review

407 412 

408This pattern splits review across three focused custom agents:413This pattern splits review across three focused custom agents:


438```toml443```toml

439name = "reviewer"444name = "reviewer"

440description = "PR reviewer focused on correctness, security, and missing tests."445description = "PR reviewer focused on correctness, security, and missing tests."

441model = "gpt-6-sol"446model = "gpt-6.1-sol"

442model_reasoning_effort = "medium"447model_reasoning_effort = "medium"

443sandbox_mode = "read-only"448sandbox_mode = "read-only"

444developer_instructions = """449developer_instructions = """


502```toml508```toml

503name = "browser_debugger"509name = "browser_debugger"

504description = "UI debugger that uses browser tooling to reproduce issues and capture evidence."510description = "UI debugger that uses browser tooling to reproduce issues and capture evidence."

505model = "gpt-6-sol"511model = "gpt-6.1-sol"

506model_reasoning_effort = "medium"512model_reasoning_effort = "medium"

507sandbox_mode = "workspace-write"513sandbox_mode = "workspace-write"

508developer_instructions = """514developer_instructions = """

Details

19 19 

20Make sure you have:20Make sure you have:

21 21 

22- [Codex cloud](https://learn.chatgpt.com/docs/cloud) set up for the repository you want to review.22- A GitHub repository connected to Codex. For legacy integration setup, see [Codex Cloud (Legacy)](https://learn.chatgpt.com/docs/environments/cloud-environment).

23- Access to [Codex code review settings](https://chatgpt.com/codex/settings/code-review).23- Access to [Codex code review settings](https://app.chatgpt.com/settings/code-review).

24- An `AGENTS.md` file if you want Codex to follow repository-specific review guidance.24- An `AGENTS.md` file if you want Codex to follow repository-specific review guidance.

25 25 

26## Set up Codex code review26## Set up Codex code review


28To configure automatic reviews, you need a connected GitHub repository and28To configure automatic reviews, you need a connected GitHub repository and

29GitHub push or admin permission for its settings.29GitHub push or admin permission for its settings.

30 30 

311. Set up [Codex cloud](https://learn.chatgpt.com/docs/cloud).311. Connect your GitHub repository to Codex.

322. Go to [Codex settings](https://chatgpt.com/codex/settings/code-review).322. Go to [Codex settings](https://app.chatgpt.com/settings/code-review).

333. Turn on **Code review** for your repository.333. Choose your repository, then turn on **Automatic review** under **Review code**.

34 34 

35 35 

36 36 

37 37

38 38

39 39 

40> Illustration: Codex settings showing the Code review toggle40> Illustration: Codex settings showing repositories and the personal Automatic review toggle

41 41 

42 42 

43 43


85 85 

86## Enable automatic reviews86## Enable automatic reviews

87 87 

88If you want Codex to review every pull request automatically, turn on88To enable automatic reviews for your pull requests, turn on **Automatic review**

89**Automatic reviews** in [Codex settings](https://chatgpt.com/codex/settings/code-review).89under **Personal preferences** in [Codex settings](https://app.chatgpt.com/settings/code-review).

90Codex will post a review whenever someone opens a new PR for review, without90Choose when reviews run with **Review trigger**. This applies to repositories

91needing an `@codex review` comment.91with code review enabled and doesn't require an `@codex review` comment.

92 92 

93## Customize what Codex reviews93## Customize what Codex reviews

94 94 


154For more detailed setup instructions and configuration options, see [Security154For more detailed setup instructions and configuration options, see [Security

155Review](https://learn.chatgpt.com/docs/security/security-review).155Review](https://learn.chatgpt.com/docs/security/security-review).

156 156 

1571. Set up [Codex cloud](https://learn.chatgpt.com/docs/cloud).1571. Connect your GitHub repository to Codex.

1582. Go to [Codex settings](https://chatgpt.com/codex/settings/code-review).1582. Go to [Codex settings](https://app.chatgpt.com/settings/code-review).

1593. Under **Repository preferences**, choose which pull requests get Security1593. Choose your repository. Under **Review security vulnerabilities**, turn on

160 Review and when it runs. Select **Whenever code review runs** to run it160 **Auto security review** and choose whose pull requests receive reviews with

161 **Review**. Set **Trigger** to **Whenever code review runs** to run it

161 alongside Code Review.162 alongside Code Review.

162 163 

163### Request a Security Review164### Request a Security Review


179@codex fix the P1 issue180@codex fix the P1 issue

180```181```

181 182 

182Codex starts a cloud chat with the pull request as context and can push a fix183Codex starts a [legacy cloud chat](https://learn.chatgpt.com/docs/environments/cloud-environment) with the pull request as context and can push a fix

183back to the branch when it has permission to do so.184back to the branch when it has permission to do so.

184 185 

185## Give Codex other tasks186## Give Codex other tasks

186 187 

187If you mention `@codex` in a comment with anything other than `review`, Codex starts a [cloud chat](https://learn.chatgpt.com/docs/cloud) using your pull request as context.188If you mention `@codex` in a comment with anything other than `review`, Codex starts a [legacy cloud chat](https://learn.chatgpt.com/docs/environments/cloud-environment) using your pull request as context.

188 189 

189```md190```md

190@codex fix the CI failures191@codex fix the CI failures


194 195 

195If Codex doesn't react or post a review:196If Codex doesn't react or post a review:

196 197 

197- Confirm you turned on **Code review** for the repository in [Codex settings](https://chatgpt.com/codex/settings/code-review).198- Confirm you turned on code review for the repository in [Codex settings](https://app.chatgpt.com/settings/code-review).

198- Confirm the pull request belongs to a repository with [Codex cloud](https://learn.chatgpt.com/docs/cloud) set up.199- Confirm the pull request belongs to a GitHub repository connected to Codex.

199- Use the exact trigger `@codex review` in a pull request comment.200- Use the exact trigger `@codex review` in a pull request comment.

200- For automatic reviews, check that you turned on **Automatic reviews** and that201- For automatic reviews, check **Automatic review** under the repository

201 the pull request event matches your review trigger settings.202 settings and **Personal preferences** in [Codex settings](https://app.chatgpt.com/settings/code-review). Confirm the pull request event matches your review trigger settings.

Details

104 104 

105### Configure code review policies105### Configure code review policies

106 106 

107Configure code review policies in107Configure code review policies in [Codex review settings](https://app.chatgpt.com/settings/code-review?provider=gitlab).

108[Codex review settings](https://chatgpt.com/codex/cloud/settings/code-review?provider=gitlab).108Choose your repository, then turn on **Automatic review** under **Review code**.

109Choose the repository policy: `Review my MRs`, `Review team MRs`,109Use **Review** to choose whose merge requests receive reviews and **Trigger** to

110`Review all MRs`, or `Follow personal`. Then choose when reviews run: **On MR open**,110choose when reviews run. Repository settings can override personal defaults.

111**On every push**, or **Smart Trigger (Experimental)**. Repository settings can

112override personal defaults.

113 111 

114## Request a Codex review112## Request a Codex review

115 113 


193@codex fix the P1 issue191@codex fix the P1 issue

194```192```

195 193 

196Codex starts a [cloud chat](https://learn.chatgpt.com/docs/cloud) with the merge request as context and194Codex starts a [legacy cloud chat](https://learn.chatgpt.com/docs/environments/cloud-environment) with the merge request as context and

197can push a fix back to the branch when it has permission to do so.195can push a fix back to the branch when it has permission to do so.

198 196 

199## Give Codex other tasks197## Give Codex other tasks

200 198 

201Other coding tasks also require a **configured project environment**; group199Other coding tasks also require a **configured project environment**; group

202activity alone supports reviews. If you mention `@codex` in a comment with200activity alone supports reviews. If you mention `@codex` in a comment with

203anything other than `review`, Codex starts a [cloud chat](https://learn.chatgpt.com/docs/cloud) using201anything other than `review`, Codex starts a [legacy cloud chat](https://learn.chatgpt.com/docs/environments/cloud-environment) using

204your merge request as context.202your merge request as context.

205 203 

206```md204```md

Details

1# Use Codex in Slack1# Use ChatGPT in Slack

2 2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 4 

5Use Codex in Slack to kick off coding work from channels and threads. Mention `@Codex` with a prompt, and Codex creates a cloud chat and replies with the results.5Mention `@ChatGPT` in a Slack channel to start a request. If your workspace has

6 6Cloud delegation enabled, ChatGPT can send repository work to a separate

7 7[Codex Cloud](https://learn.chatgpt.com/docs/cloud) task and return the result to the thread.

8 

9

10

11 

12> Illustration: Codex Slack integration in action

13 

14 

15

16 

17 

18 

19 

20 8 

9**For workspace admins:** See [Set up and manage @ChatGPT in Slack and Microsoft Teams](https://learn.chatgpt.com/docs/enterprise/chatgpt-slack-and-teams) for app setup, workspace connections, and access controls.

21 10 

22## Set up the Slack app11## Set up the Slack app

23 12 

241. Set up [Codex cloud chats](https://learn.chatgpt.com/docs/cloud). You need a Plus, Pro, Business, Enterprise, or Edu plan (see [ChatGPT pricing](https://chatgpt.com/pricing)), a connected GitHub account, and at least one [environment](https://learn.chatgpt.com/docs/environments/cloud-environment).13A ChatGPT workspace owner or admin sets up the workspace's Slack deployment.

252. Go to [Codex settings](https://chatgpt.com/codex/settings/connectors) and install the Slack app for your workspace. Depending on your Slack workspace policies, an admin may need to approve the install.14The available controls depend on your workspace's enabled features.

263. Add `@Codex` to a channel. If you haven't added it yet, Slack prompts you when you mention it.

27 

28<a id="start-a-task"></a>

29 

30## Start a chat

31 

321. In a channel or thread, mention `@Codex` and include your prompt. Codex can reference earlier messages in the thread, so you often don't need to restate context.

332. (Optional) Specify an environment or repository in your prompt, for example: `@Codex fix the above in openai/codex`.

343. Wait for Codex to react (👀) and reply with a link to the chat. When it finishes, Codex posts the result and, depending on your settings, an answer in the thread.

35 

36### How Codex chooses an environment and repo

37 15 

38- Codex reviews the environments you have access to and selects the one that best matches your request. If the request is ambiguous, it falls back to the environment you used most recently.16If you don't see these controls, ask your ChatGPT workspace admin whether Slack

39- The chat runs against the default branch of the first repository listed in that environment’s repo map. Update the repo map in Codex if you need a different default or more repositories.17deployments are available. Your Slack workspace's app policies also apply.

40- If no suitable environment or repository is available, Codex will reply in Slack with instructions on how to fix the issue before retrying.

41 18 

42### Enterprise data controls19Cloud delegation must be available in your workspace and requires a published

20environment shared with the workspace. Ask your admin to

21[enable Codex Cloud for Slack](https://learn.chatgpt.com/docs/enterprise/chatgpt-slack-and-teams#enable-codex-cloud-for-slack).

22Where Codex Cloud role-based access control is enabled, both the deployment's

23service account and your account need Codex Cloud access.

43 24 

44By default, Codex replies in the thread with an answer, which can include information from the environment it ran in.25### Connect your account when prompted

45To prevent this, an Enterprise admin can clear **Allow Codex Slack app to post answers on task completion** in [ChatGPT workspace settings](https://chatgpt.com/admin/settings). When an admin turns off answers, Codex replies only with a link to the chat.

46 26 

47### Data usage, privacy, and security27Workspace setup and your personal account connection are separate. If ChatGPT

28asks you to connect your account before continuing:

48 29 

49When you mention `@Codex`, Codex receives your message and thread history to understand your request and create a chat.301. Select the connection link in the Slack message and sign in if prompted.

50Data handling follows OpenAI's [Privacy Policy](https://openai.com/privacy), [Terms of Use](https://openai.com/terms/), and other applicable [policies](https://openai.com/policies).312. Connect Slack for the same workspace where you made the request.

51For more on security, see the Codex [security documentation](https://learn.chatgpt.com/docs/agent-approvals-security).323. Return to the original Slack thread and mention `@ChatGPT` to retry.

52 33 

53Codex uses large language models that can make mistakes. Always review answers and diffs.34<a id="start-a-task"></a>

54 35<a id="start-a-chat"></a>

55### Tips and troubleshooting

56 36 

57- **Missing connections**: If Codex can't confirm your Slack or GitHub connection, it replies with a link to reconnect.37## Start a request

58- **Unexpected environment choice**: Reply in the thread with the environment you want (for example, `Please run this in openai/openai (applied)`), then mention `@Codex` again.38 

59- **Long or complex threads**: Summarize key details in your latest message so Codex doesn't miss context buried earlier in the thread.391. In a channel where the app is enabled, mention `@ChatGPT` and describe the

60- **Workspace posting**: Some Enterprise workspaces restrict posting final answers. In those cases, open the chat link to view progress and results.40 result you want. For coding work, include the repository and relevant context

61- **More help**: See the [OpenAI Help Center](https://help.openai.com/).41 from the thread.

422. Complete any account-connection or approval prompts. Review the requested work

43 and access before you approve.

443. Continue related requests in the same thread, mentioning `@ChatGPT` again.

45 

46For example:

47 

48```text

49@ChatGPT investigate the failing checkout tests in acme/storefront and propose a fix.

50```

51 

52Then follow up in that thread:

53 

54```text

55@ChatGPT add a regression test for the fix and summarize the checks you ran.

56```

57 

58Use an enabled public or private channel in your workspace. Slack Connect

59channels shared with another organization aren't supported by this flow.

60 

61<a id="how-codex-chooses-an-environment-and-repo"></a>

62 

63## Run repository work in Codex Cloud

64 

65Cloud delegation requires an eligible workspace-shared environment with a

66published version. For an Enterprise workspace, prepare and publish a tested

67setup using the [cloud environment guide](https://learn.chatgpt.com/docs/environments/cloud-environments)

68and follow the guidance to [share it within your Enterprise

69workspace](https://learn.chatgpt.com/docs/environments/cloud-environments#share-within-an-enterprise-workspace).

70Confirm that the environment is available for the requested repository.

71 

72- **Environment selection**: ChatGPT selects from accessible workspace-shared Cloud

73 environments. When using your account, it checks that you can access the

74 environment before starting. Personal Cloud environments aren't included. Name

75 the repository or shared environment in your request to help ChatGPT choose.

76- **Separate coding task**: Repository work runs in a separate task using your

77 account. You need access to the selected environment and to any repositories

78 that require authentication.

79- **Follow-up work**: Related requests in the same Slack thread can continue the

80 coding task and environment when they use the same account to run it. A

81 request using another account may start a separate coding task. Start a new

82 conversation when you need a different environment.

83 

84Sharing an environment doesn't grant repository access or share your personal

85credential values. Review its [environment-owned values and prepared

86files](https://learn.chatgpt.com/docs/environments/cloud-environments#share-within-an-enterprise-workspace)

87before sharing, because those can be available to people who use the environment.

88 

89If no eligible shared environment is available, resolve the environment or

90access issue before retrying. For service access, see

91[Connect to services](https://learn.chatgpt.com/docs/environments/cloud-environments#connect-to-services)

92and [Environment variables and network secrets](https://learn.chatgpt.com/docs/environments/cloud-environments#configure-environment-variables-and-network-secrets).

93 

94<a id="enterprise-data-controls"></a>

95 

96## Review approvals and results

97 

98When a request needs your authorization, ChatGPT can show a private approval

99card with **Allow** and **Deny** controls. Review the assignment and any

100available environment choice before deciding.

101 

102ChatGPT can post a message in the original thread when the task starts. When the

103**Follow along** and **Cancel** controls are available, they appear for the

104requester. Use **Follow along** to open the task and inspect its work; the

105channel reply doesn't give every channel member access to the underlying task.

106 

107ChatGPT returns the result to the thread. Review the answer, changes, and

108reported checks before using or merging it.

109Mention `@ChatGPT` in the thread to request a correction or follow-up.

110 

111## Data usage, privacy, and security

112 

113A response posted to a Slack channel can be read by people with access to that

114channel. Ask ChatGPT to share only information appropriate for that audience. A

115private approval card doesn't make the resulting channel reply private.

116 

117Keep secrets out of Slack prompts and use the environment's credential controls

118for repository work. Review [Agent Security](https://learn.chatgpt.com/docs/environments/cloud-environments#agent-security)

119and the [deployment access

120boundaries](https://learn.chatgpt.com/docs/enterprise/chatgpt-slack-and-teams#security-faq), and follow your

121workspace's data and app policies.

122 

123## Move to the ChatGPT app

124 

125If you previously used `@Codex`, start new requests with `@ChatGPT` after your

126admin enables the ChatGPT app. Follow any connection and approval prompts.

127 

128## Tips and troubleshooting

129 

130- **No response**: Confirm that ChatGPT is enabled for the channel and mention

131 `@ChatGPT` explicitly. Use a channel within your organization rather than a

132 Slack Connect channel.

133- **Account connection requested again**: Check that you connected ChatGPT to

134 the Slack workspace where you're making the request, then retry in the same

135 thread.

136- **No eligible Cloud environment**: Check that the environment is published and

137 shared with the workspace, and that the account running the task has the

138 required access. A personal Cloud environment won't appear in this flow.

139- **A coding task won't start**: Ask your admin to confirm that Cloud delegation

140 is available and Codex Cloud is enabled for your workspace. Where Codex Cloud

141 role-based access control is enabled, check that both the deployment's

142 service account and your account have Codex Cloud access. Also check your

143 access to the selected environment and its repositories.

144- **Different environment needed**: Start a new conversation and name the

145 repository or shared environment you want to use.

146- **Task controls unavailable**: The **Follow along** and **Cancel** controls

147 depend on the deployment's configuration and are intended for the requester.

148- **Long threads**: Summarize the relevant issue, expected outcome, and repository

149 in your latest request so the task has enough context.

Details

38 38 

39Let Codex pick up feature requests and bug fixes automatically by using it from Slack and connecting it to your alerting, issue tracking, and daily bug sweeps.39Let Codex pick up feature requests and bug fixes automatically by using it from Slack and connecting it to your alerting, issue tracking, and daily bug sweeps.

40 40 

41- [Kick off coding tasks from Slack](https://developers.openai.com/codex/use-cases/slack-coding-tasks): Mention `@Codex` in Slack to start a chat tied to the right repo and environment, then...41- [Kick off coding tasks from Slack](https://developers.openai.com/codex/use-cases/slack-coding-tasks): Mention `@ChatGPT` in Slack to request repository work in an eligible workspace-shared Codex...

42- [Automate bug triage](https://developers.openai.com/codex/use-cases/automation-bug-triage): Ask Codex to check recent alerts, issues, failed checks, logs, and chat reports, tune the...42- [Automate bug triage](https://developers.openai.com/codex/use-cases/automation-bug-triage): Ask Codex to check recent alerts, issues, failed checks, logs, and chat reports, tune the...

43 43 

44## Avoid the review bottleneck44## Avoid the review bottleneck

Details

29 29 

30Tag Codex in Slack when there's a feature request or a reported issue, so that it can pick up the task and work on it in the background.30Tag Codex in Slack when there's a feature request or a reported issue, so that it can pick up the task and work on it in the background.

31 31 

32- [Kick off coding tasks from Slack](https://developers.openai.com/codex/use-cases/slack-coding-tasks): Mention `@Codex` in Slack to start a chat tied to the right repo and environment, then...32- [Kick off coding tasks from Slack](https://developers.openai.com/codex/use-cases/slack-coding-tasks): Mention `@ChatGPT` in Slack to request repository work in an eligible workspace-shared Codex...

33 33 

34## Deploy a preview34## Deploy a preview

35 35 

Details

38 38 

39Let Codex pick up feature requests and bug fixes automatically by using it from Slack and connecting it to your alerting, issue tracking, and daily bug sweeps.39Let Codex pick up feature requests and bug fixes automatically by using it from Slack and connecting it to your alerting, issue tracking, and daily bug sweeps.

40 40 

41- [Kick off coding tasks from Slack](https://developers.openai.com/codex/use-cases/slack-coding-tasks): Mention `@Codex` in Slack to start a chat tied to the right repo and environment, then...41- [Kick off coding tasks from Slack](https://developers.openai.com/codex/use-cases/slack-coding-tasks): Mention `@ChatGPT` in Slack to request repository work in an eligible workspace-shared Codex...

42- [Automate bug triage](https://developers.openai.com/codex/use-cases/automation-bug-triage): Ask Codex to check recent alerts, issues, failed checks, logs, and chat reports, tune the...42- [Automate bug triage](https://developers.openai.com/codex/use-cases/automation-bug-triage): Ask Codex to check recent alerts, issues, failed checks, logs, and chat reports, tune the...

43 43 

44## Avoid the review bottleneck44## Avoid the review bottleneck

Details

29 29 

30Tag Codex in Slack when there's a feature request or a reported issue, so that it can pick up the task and work on it in the background.30Tag Codex in Slack when there's a feature request or a reported issue, so that it can pick up the task and work on it in the background.

31 31 

32- [Kick off coding tasks from Slack](https://developers.openai.com/codex/use-cases/slack-coding-tasks): Mention `@Codex` in Slack to start a chat tied to the right repo and environment, then...32- [Kick off coding tasks from Slack](https://developers.openai.com/codex/use-cases/slack-coding-tasks): Mention `@ChatGPT` in Slack to request repository work in an eligible workspace-shared Codex...

33 33 

34## Deploy a preview34## Deploy a preview

35 35 

Details

43 43 

44 Do not invent join keys or silently merge conflicting records. Preserve the44 Do not invent join keys or silently merge conflicting records. Preserve the

45 original files and return the consolidated workbook for review.45 original files and return the consolidated workbook for review.

46 suggestedModel: gpt-6-sol46 suggestedModel: gpt-6.1-sol

47 suggestedEffort: medium47 suggestedEffort: medium

48relatedLinks:48relatedLinks:

49 - label: "OpenAI Academy: Everyday work"49 - label: "OpenAI Academy: Everyday work"

Details

24 - severity24 - severity

25 25 

26 Keep going past non-blocking issues and end with a short triage summary.26 Keep going past non-blocking issues and end with a short triage summary.

27 suggestedModel: gpt-6-sol27 suggestedModel: gpt-6.1-sol

28 suggestedEffort: xhigh28 suggestedEffort: xhigh

29relatedLinks:29relatedLinks:

30 - label: Computer Use30 - label: Computer Use

Details

59 If the audience needs a pre-read, organize the memo and supporting analysis59 If the audience needs a pre-read, organize the memo and supporting analysis

60 into a review-ready packet while keeping the memo as the source of truth.60 into a review-ready packet while keeping the memo as the source of truth.

61 Flag assumptions and do not make the decision or share the output.61 Flag assumptions and do not make the decision or share the output.

62 suggestedModel: gpt-6-sol62 suggestedModel: gpt-6.1-sol

63 suggestedEffort: medium63 suggestedEffort: medium

64relatedLinks:64relatedLinks:

65 - label: "OpenAI Academy: Everyday work"65 - label: "OpenAI Academy: Everyday work"

Details

1---1---

2name: Kick off coding tasks from Slack2name: Kick off coding tasks from Slack

3tagline: Turn Slack threads into scoped cloud chats.3tagline: Delegate repository work from Slack threads.

4summary: Mention `@Codex` in Slack to start a chat tied to the right repo and4summary: Mention `@ChatGPT` in Slack to request repository work in an eligible

5 environment, then review the result back in the thread or in Codex cloud.5 workspace-shared Codex Cloud environment, then review the result in the

6 thread.

6bestFor:7bestFor:

7 - Async handoffs that start in a Slack thread and already have enough context8 - Async handoffs with enough context in the Slack thread to act on

8 to act on9 - Teams handling issue triage, bug fixes, or scoped implementation work from

9 - Teams that want quick issue triage, bug fixes, or scoped implementation work10 Slack

10 without context switching

11starterPrompt:11starterPrompt:

12 title: Kick Off the Task From a Thread12 title: Start the task from a thread

13 body: "@Codex analyze the issue mentioned in this thread and implement a fix in13 body: >-

14 <name of your environment>."14 @ChatGPT investigate the issue described in this thread for [repository].

15 

16 Use the workspace-shared Cloud environment for [project or environment].

17 

18 Make the smallest useful fix, run the relevant checks, and report the result

19 here.

15 suggestedModel: cloud20 suggestedModel: cloud

16relatedLinks:21relatedLinks:

17 - label: Use Codex in Slack22 - label: Use ChatGPT in Slack

18 url: /codex/third-party/slack23 url: /codex/third-party/slack

19 - label: Codex cloud environments24 - label: Codex Cloud environments

20 url: /codex/environments/cloud-environment25 url: /codex/environments/cloud-environments

21---26---

22 27 

23> For the complete documentation index, see [llms.txt](/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.28> For the complete documentation index, see [llms.txt](/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

24 29 

25## How to use30## How to use

26 31 

271. Install the Slack app, connect the right repositories and environments, and add `@Codex` to the channel.321. Have your workspace admin enable the ChatGPT app in Slack using the [Slack

282. Mention `@Codex` in a thread with a clear request, constraints, and the outcome you want.33 setup guide](https://developers.openai.com/codex/third-party/slack).

293. Open the chat link, review the result, and continue the follow-up in Slack if the task needs another pass.342. For repository work, confirm that Cloud delegation is enabled and an eligible

30 35 workspace-shared environment has a published version. For an Enterprise

31You can learn more about how to use Codex in Slack in the [dedicated guide](https://developers.openai.com/codex/third-party/slack).36 workspace, follow the [environment sharing

37 guidance](https://developers.openai.com/codex/environments/cloud-environments#share-within-an-enterprise-workspace).

383. Copy the starter prompt into an enabled Slack channel or thread. Include the

39 repository, relevant context, constraints, and the result you want.

404. Complete any connection or approval prompts, then review the result and

41 reported checks. When available, use **Follow along** to inspect the coding

42 task.

435. Mention `@ChatGPT` in the same thread for related work. Follow-ups that use

44 the same account to run the task can continue it; another execution account

45 may start a separate task. Start a new conversation to use a different Cloud

46 environment.

32 47 

33## Tips48## Tips

34 49 

35- If the thread does not already include enough context or suggested fix, include in your prompt some guidance50- Summarize the issue and expected behavior if the thread doesn't already provide

36- Make sure the repo and environment mapping are correct by mentioning the name of the project or environment in your prompt51 enough context.

37- Scope the request so Codex can finish it without a second planning loop52- Name the repository or intended workspace-shared environment. Personal Cloud

38- If your project is a large codebase, guide Codex by mentioning which files or folders are relevant to the task53 environments aren't included in this Slack flow.

54- Check that the account running the task has the required environment,

55 repository, and service access. A Slack reply doesn't give everyone access

56 to the coding task.

57- Keep the request scoped and name relevant files or folders in a large codebase.

58- Before merging, review proposed changes and check that the reported tests cover

59 the requested behavior.

Details

47 47 

48 48 

49 Pause before irreversible actions or scope changes.49 Pause before irreversible actions or scope changes.

50 suggestedModel: gpt-6-sol50 suggestedModel: gpt-6.1-sol

51 suggestedEffort: medium51 suggestedEffort: medium

52relatedLinks:52relatedLinks:

53 - label: Plugins53 - label: Plugins

Details

113 113 

114## Share or reuse a result114## Share or reuse a result

115 115 

116### Add a visualization to a page in Space

117 

118You can also create a visualization inside a page in ChatGPT Space. While

119editing the page, type `/visualize` followed by your request and choose the

120matching menu option. Use this to place an interactive explanation alongside

121your notes, research, or project plan. See

122[Add interactive visualizations to a page](https://learn.chatgpt.com/docs/space/pages#add-interactive-visualizations)

123for an example.

124 

125### Share from a chat

126 

116Use the chat's standard **Share** action when it's available. Review127Use the chat's standard **Share** action when it's available. Review

117the entire shared chat first, including its source data and earlier128the entire shared chat first, including its source data and earlier

118messages. A visualization is generally a snapshot of the information available129messages. A visualization is generally a snapshot of the information available

webmcp.md +4 −3

Details

12Work and Codex can discover and use these tools when they are available.12Work and Codex can discover and use these tools when they are available.

13 13 

14Use GPT-5.6 Sol or GPT-6 Sol for site tools. GPT-5.6 Luna currently has WebMCP14Use GPT-5.6 Sol or GPT-6 Sol for site tools. GPT-5.6 Luna currently has WebMCP

15 disabled. Update the ChatGPT desktop app to the latest version. Site tools15 disabled. Update the ChatGPT desktop app to the latest version. In Enterprise

16 aren't available in Enterprise or Edu workspaces. Availability also depends on16 workspaces, an admin must allow **Site tools** through workspace policy. Site

17 rollout and the tools provided by the current page.17 tools aren't available in Edu workspaces. Availability also depends on rollout

18 and the tools provided by the current page.

18 19 

19## WebMCP vs. MCP20## WebMCP vs. MCP

20 21 

whats-new.md +301 −4

Details

2 2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 4 

5This weekly digest highlights ChatGPT and Codex features that can change how you5For every versioned update, bug fix, and minor improvement, see the [Codex changelog](https://learn.chatgpt.com/docs/changelog) and [API changelog](https://developers.openai.com/api/docs/changelog).

6work, with examples and links to learn more. For every versioned update, bug fix,6 

7and minor improvement, see the [Codex changelog](https://learn.chatgpt.com/docs/changelog).7## [DevDay 2026](https://learn.chatgpt.com/docs/whats-new/devday-2026)

8 

9<a id="devday-roundup-title" />

10 

11 

12 

13 

14 

15 

16 

17 

18 

19 

20 

21### Meet your dot

22 

23Give your dot ongoing responsibility. Dots keep making progress between conversations and are rolling out gradually to eligible accounts.

24 

25[Meet your dot](https://learn.chatgpt.com/docs/dots)

26[Availability](https://learn.chatgpt.com/docs/dots#access)

27[Admin guide](https://learn.chatgpt.com/docs/enterprise/o-admin-guide)

28 

29 

30 

31 

32 

33 

34### Work across devices

35 

36Start a synced Work task on desktop and continue on web or mobile.

37 

38[Get started with Work](https://learn.chatgpt.com/docs/get-started-with-work#continue-work-across-devices)

39[Set up sync](https://learn.chatgpt.com/docs/enterprise/cloud-local-access)

40 

41 

42 

43 

44 

45 

46### ChatGPT Space

47 

48Bring files and Pages together, and work with collaborators.

49 

50[Get started](https://learn.chatgpt.com/docs/space/getting-started)

51[Pages](https://learn.chatgpt.com/docs/space/pages)

52[Work with the agent](https://learn.chatgpt.com/docs/space/agents)

53[Collaboration](https://learn.chatgpt.com/docs/space/collaboration)

54[Admin guide](https://learn.chatgpt.com/docs/enterprise/chatgpt-space)

55 

56 

57 

58 

59 

60 

61 

62 

63 

64 

65 

66### Astra Ultrafast in Codex

67 

68Faster responses in Codex and Work on Pro $500 and eligible Enterprise and Edu plans.

69 

70[Ultrafast mode](https://learn.chatgpt.com/docs/agent-configuration/speed#ultrafast-mode)

71[Plans and usage](https://learn.chatgpt.com/docs/pricing)

72 

73 

74 

75 

76 

77 

78### Reusable cloud environments

79 

80Prepare a development setup once and reuse it in isolated cloud workspaces.

81 

82[Cloud environments](https://learn.chatgpt.com/docs/environments/cloud-environments)

83 

84 

85 

86 

87 

88 

89### Codex Security Cloud

90 

91Scan repositories, review findings, and prepare patches in research preview.

92 

93[Set up Security Cloud](https://learn.chatgpt.com/docs/security/setup)

94[Threat model](https://learn.chatgpt.com/docs/security/threat-model)

95 

96 

97 

98 

99 

100 

101 

102 

103 

104 

105 

106### Sign in with ChatGPT

107 

108Offer ChatGPT sign-in and eligible ChatGPT plan usage in your app. Commercial sign-in is in a limited trial with selected partners.

109 

110[Quickstart](https://developers.openai.com/siwc/quickstart)

111[Open-source apps](https://developers.openai.com/siwc/token-sharing-open-source)

112 

113 

114 

115 

116 

117 

118### Sites with connected data

119 

120Build workspace-private Sites with each visitor’s connected apps, where enabled.

121 

122[Build with plugins](https://learn.chatgpt.com/docs/sites#load-visitor-data-via-plugins)

123[Sharing and access](https://learn.chatgpt.com/docs/sites#control-access-and-secrets)

124 

125 

126 

127 

128 

129 

130### Plugin Extensions

131 

132Add sidebar apps, panels, editors, and forms to ChatGPT. Composer mentions require the desktop app; Free and Go web extensions are coming soon.

133 

134[Build extensions](https://developers.openai.com/plugins/build/extensions)

135[Package a plugin](https://developers.openai.com/plugins/build/plugins)

136 

137 

138 

139 

140 

141 

142### MCP Events

143 

144Let users ask ChatGPT to act on updates from your MCP server. Requires MCP 2.0 and webhook delivery.

145 

146[Build event subscriptions](https://developers.openai.com/plugins/build/mcp-events)

147 

148 

149 

150 

151 

152 

153### Website annotations

154 

155Add context and preview controls to feedback from supported desktop browsers.

156 

157[Annotations Extensibility](https://learn.chatgpt.com/docs/annotations-extensibility)

158 

159 

160 

161 

162 

163 

164 

165 

166 

167 

168 

169### GPT-6.1 Sol

170 

171Use GPT-6.1 Sol for complex coding and professional work in the API and Codex, where available.

172 

173[API model](https://developers.openai.com/api/docs/models/gpt-6.1-sol)

174[Codex availability](https://learn.chatgpt.com/docs/models#gpt-61-sol)

175[Multi-agent beta](https://developers.openai.com/api/docs/guides/responses-multi-agent)

176 

177 

178 

179 

180 

181 

182### Astra Ultrafast in the API

183 

184Generate output tokens faster in the Responses API, subject to availability.

185 

186[Ultrafast guide](https://developers.openai.com/api/docs/guides/ultrafast-mode)

187[Pricing](https://developers.openai.com/api/docs/pricing?latest-pricing=ultrafast)

188 

189 

190 

191 

192 

193 

194 

195 

196 

197 

198 

199### ChatGPT in Slack and Teams

200 

201Bring ChatGPT and approved tools into Slack and Teams conversations.

202 

203[Slack and Teams guide](https://learn.chatgpt.com/docs/enterprise/chatgpt-slack-and-teams)

204 

205 

206 

207 

208 

209 

210### Team Tasks

211 

212Run scheduled or event-triggered work through a team’s service account and approved connections.

213 

214[Set up Team Tasks](https://learn.chatgpt.com/docs/enterprise/teams)

215 

216 

217 

218 

219 

220 

221### Workspace connections

222 

223Connect company-managed accounts for supported teams and workflows.

224 

225[Manage shared connections](https://learn.chatgpt.com/docs/enterprise/shared-connections)

226 

227 

228 

229 

230 

231 

232### Agent Security

233 

234Manage tool, file, and network access for local and cloud agents.

235 

236[Agent Security](https://learn.chatgpt.com/docs/enterprise/agent-security)

237[Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration)

238[Work sync](https://learn.chatgpt.com/docs/enterprise/cloud-local-access)

239 

240 

241 

242 

243 

244 

245 

246 

247 

248 

249 

250[Read the full update →](https://learn.chatgpt.com/docs/whats-new/devday-2026)

251 

252## [September 28–October 2, 2026](https://learn.chatgpt.com/docs/whats-new/september-28-october-2-2026)

253 

254### Choose GPT-6.1 Sol for complex work

255 

256Use [GPT-6.1 Sol](https://learn.chatgpt.com/docs/models#gpt-61-sol) for coding and professional work at a lower cost than Astra. Access depends on your plan, client, and workspace settings.

257 

258### Delegate ongoing work to your dot

259 

260[Dots](https://learn.chatgpt.com/docs/dots) continue work between conversations and bring back results for review. [Access is rolling out gradually](https://learn.chatgpt.com/docs/dots#access) to eligible accounts.

261 

262### Use GPT-6 Astra Ultrafast

263 

264[Ultrafast](https://learn.chatgpt.com/docs/agent-configuration/speed#ultrafast-mode) speeds up token generation in Codex and Work on Pro $500 and eligible Enterprise and Edu plans. Usage and workspace restrictions apply.

265 

266### Prepare reusable Codex Cloud environments

267 

268[Prepare and publish a cloud environment](https://learn.chatgpt.com/docs/environments/cloud-environments) once, then reuse its filesystem in isolated workspaces for new tasks.

269 

270### Scan repositories with Codex Security Cloud

271 

272Install the [Security Cloud plugin](https://learn.chatgpt.com/docs/security/setup) to scan connected repositories and review findings and patches. Available in research preview to workspaces with access.

273 

274### Continue Work across devices

275 

276With [Local computer access with Work Cloud](https://learn.chatgpt.com/docs/enterprise/cloud-local-access) enabled, continue eligible tasks from desktop, web, or mobile. Keep your computer online for steps that need its local resources.

277 

278### Work together in ChatGPT Space

279 

280Create and share [Pages in Space](https://learn.chatgpt.com/docs/space/pages). Mention ChatGPT or your dot and use [slash commands](https://learn.chatgpt.com/docs/space/agents) while editing.

281 

282### Set up shared team workflows

283 

284Run scheduled or event-triggered [Team Tasks](https://learn.chatgpt.com/docs/enterprise/teams) with a service account and approved workspace connections. Admins also manage [ChatGPT access in Slack and Teams](https://learn.chatgpt.com/docs/enterprise/chatgpt-slack-and-teams).

285 

286### Sign in to apps with ChatGPT

287 

288Add [ChatGPT sign-in and eligible plan usage](https://developers.openai.com/siwc/quickstart) to your app. Commercial sign-in is in a limited trial; plan usage supports open-source partners and selected private clients.

289 

290### Extend your plugin's interface

291 

292[Plugin Extensions](https://developers.openai.com/plugins/build/extensions) add interfaces to ChatGPT. Composer mentions are desktop-only, and Free and Go web extensions are coming soon.

293 

294### Respond to MCP events

295 

296Build [webhook subscriptions](https://developers.openai.com/plugins/build/mcp-events) so users can ask ChatGPT to act on updates from your MCP server. Requires MCP 2.0.

297 

298### Customize website annotations

299 

300Use the [Browser Annotation API](https://learn.chatgpt.com/docs/annotations-extensibility) to attach context and preview controls to website feedback in supported desktop browsers.

301 

302[Read the full update →](https://learn.chatgpt.com/docs/whats-new/september-28-october-2-2026)

8 303 

9## September 21–25, 2026304## September 21–25, 2026

10 305 


26GPT-5.5 will retire from ChatGPT, ChatGPT Work, and Codex on October 14, 2026,321GPT-5.5 will retire from ChatGPT, ChatGPT Work, and Codex on October 14, 2026,

27across all plans. The OpenAI API isn't affected.322across all plans. The OpenAI API isn't affected.

28 323 

29For Codex with ChatGPT sign-in, switch to **GPT-5.6 Sol** (`gpt-5.6-sol`).324For Codex with ChatGPT sign-in, choose an available replacement for your plan

325and client. See [GPT-5.5 retirement](https://learn.chatgpt.com/docs/models#gpt-55-retirement) for

326migration guidance.

30Update saved model settings, workspace defaults, custom agents, scheduled327Update saved model settings, workspace defaults, custom agents, scheduled

31tasks, and scripts that still select GPT-5.5 before the retirement date.328tasks, and scripts that still select GPT-5.5 before the retirement date.

32[Read the retirement notice](https://learn.chatgpt.com/docs/changelog#codex-2026-09-14-gpt-55-retirement)329[Read the retirement notice](https://learn.chatgpt.com/docs/changelog#codex-2026-09-14-gpt-55-retirement)

whats-new/devday-2026.md +268 −0 created

Details

1# DevDay 2026

2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 

5[Back to What's new](https://learn.chatgpt.com/docs/whats-new#devday-2026)

6 

7September 29, 2026

8 

9 

10 

11<section className="devday-area" data-color="green">

12 

13## ChatGPT

14 

15 

16 

17 

18 

19 

20### Meet your dot

21 

22Dots are always-on agents that take on ongoing responsibility. Give your dot a goal and define what it can do on its own. It works across connected apps on its own computer, keeps making progress between conversations, and brings back results for your review. It reaches out when a decision needs your judgment. Dots are rolling out gradually to eligible accounts.

23 

24[Meet your dot](https://learn.chatgpt.com/docs/dots)

25[Availability](https://learn.chatgpt.com/docs/dots#access)

26[Admin guide](https://learn.chatgpt.com/docs/enterprise/o-admin-guide)

27 

28 

29 

30 

31 

32 

33### Work across devices

34 

35Start a new synced ChatGPT Work task on desktop and continue on web or mobile. An online, connected computer can run steps that need its local files and tools. Existing tasks keep their original mode.

36 

37[Get started with Work](https://learn.chatgpt.com/docs/get-started-with-work#continue-work-across-devices)

38[Set up sync](https://learn.chatgpt.com/docs/enterprise/cloud-local-access)

39 

40 

41 

42 

43 

44 

45### ChatGPT Space

46 

47Bring files and Pages together. Draft and revise with ChatGPT, edit your work directly, and invite collaborators to view, comment, or edit.

48 

49[Get started](https://learn.chatgpt.com/docs/space/getting-started)

50[Pages](https://learn.chatgpt.com/docs/space/pages)

51[Work with the agent](https://learn.chatgpt.com/docs/space/agents)

52[Collaboration](https://learn.chatgpt.com/docs/space/collaboration)

53[Admin guide](https://learn.chatgpt.com/docs/enterprise/chatgpt-space)

54 

55 

56 

57 

58 

59 

60</section>

61 

62<section className="devday-area" data-color="blue">

63 

64## Codex

65 

66 

67 

68 

69 

70 

71### Astra Ultrafast in Codex

72 

73Use GPT-6 Astra Ultrafast in Codex and ChatGPT Work on the Pro $500/month plan and eligible Enterprise and Edu plans. Enterprise owners control access; workspaces requiring inference residency outside the US aren't eligible.

74 

75[Ultrafast mode](https://learn.chatgpt.com/docs/agent-configuration/speed#ultrafast-mode)

76[Plans and usage](https://learn.chatgpt.com/docs/pricing)

77 

78 

79 

80 

81 

82 

83### Reusable cloud environments

84 

85Describe your development setup, let Codex prepare and test it, then publish the environment. New tasks start in isolated workspaces using the prepared filesystem. Continue cloud tasks from web, mobile, or desktop while your computer sleeps.

86 

87[Cloud environments](https://learn.chatgpt.com/docs/environments/cloud-environments)

88 

89 

90 

91 

92 

93 

94### Codex Security Cloud

95 

96Scan connected GitHub repositories or monitor new commits with the Security Cloud plugin, available in research preview. Review findings, validation evidence, and patches before creating a draft pull request.

97 

98[Set up Security Cloud](https://learn.chatgpt.com/docs/security/setup)

99[Threat model](https://learn.chatgpt.com/docs/security/threat-model)

100 

101 

102 

103 

104 

105 

106</section>

107 

108<section className="devday-area" data-color="purple">

109 

110## Sites & plugins

111 

112 

113 

114 

115 

116 

117### Sign in with ChatGPT

118 

119Let users sign in with ChatGPT and, for eligible Plus and Pro users, use their ChatGPT plan for AI requests in your app. Commercial sign-in is in a limited trial with selected partners. ChatGPT plan usage is available to open-source partners and selected private clients.

120 

121[Quickstart](https://developers.openai.com/siwc/quickstart)

122[Open-source apps](https://developers.openai.com/siwc/token-sharing-open-source)

123 

124 

125 

126 

127 

128 

129### Sites with connected data

130 

131Build a Site that uses each visitor's own connected apps. Plugins in Sites are available for workspace-private Sites where enabled; visitors choose their accounts and consent to access.

132 

133[Build with plugins](https://learn.chatgpt.com/docs/sites#load-visitor-data-via-plugins)

134[Sharing and access](https://learn.chatgpt.com/docs/sites#control-access-and-secrets)

135 

136 

137 

138 

139 

140 

141### Plugin Extensions

142 

143Add sidebar apps, conversation panels, file viewers and editors, and forms to ChatGPT. Composer mentions are available only in the desktop app. Free and Go web extensions are coming soon. Package the interface alongside your plugin's tools and skills.

144 

145[Build extensions](https://developers.openai.com/plugins/build/extensions)

146[Package a plugin](https://developers.openai.com/plugins/build/plugins)

147 

148 

149 

150 

151 

152 

153### MCP Events

154 

155Let users ask ChatGPT to monitor updates from your MCP server and act when matching events arrive. ChatGPT requires MCP 2.0 and supports webhook delivery from the draft MCP Events specification.

156 

157[Build event subscriptions](https://developers.openai.com/plugins/build/mcp-events)

158 

159 

160 

161 

162 

163 

164### Website annotations

165 

166Choose what people can select, attach useful context, and add controls to preview changes before sending feedback to ChatGPT. The Browser Annotation API works in supported desktop app browsers.

167 

168[Annotations Extensibility](https://learn.chatgpt.com/docs/annotations-extensibility)

169 

170 

171 

172 

173 

174 

175</section>

176 

177<section className="devday-area" data-color="orange">

178 

179## API

180 

181 

182 

183 

184 

185 

186### GPT-6.1 Sol

187 

188GPT-6.1 Sol offers near-Astra performance at a lower cost for complex coding and professional work. Use it in the API and Codex, where available. It supports Multi-agent beta in Responses and EU data residency with Standard, Flex, and Batch processing.

189 

190[API model](https://developers.openai.com/api/docs/models/gpt-6.1-sol)

191[Codex availability](https://learn.chatgpt.com/docs/models#gpt-61-sol)

192[Multi-agent beta](https://developers.openai.com/api/docs/guides/responses-multi-agent)

193 

194 

195 

196 

197 

198 

199### Astra Ultrafast in the API

200 

201Reduce the time between generated output tokens with GPT-6 Astra Ultrafast in the Responses API. Availability is subject to rate limits, with global processing and US data residency.

202 

203[Ultrafast guide](https://developers.openai.com/api/docs/guides/ultrafast-mode)

204[Pricing](https://developers.openai.com/api/docs/pricing?latest-pricing=ultrafast)

205 

206 

207 

208 

209 

210 

211</section>

212 

213<section className="devday-area" data-color="green">

214 

215## Enterprise

216 

217 

218 

219 

220 

221 

222### ChatGPT in Slack and Teams

223 

224Bring ChatGPT into approved conversations with your deployment's connected tools. Configure who can use each deployment and which channels it can access.

225 

226[Slack and Teams guide](https://learn.chatgpt.com/docs/enterprise/chatgpt-slack-and-teams)

227 

228 

229 

230 

231 

232 

233### Team Tasks

234 

235Run scheduled or event-triggered work through a team's service account and approved connections.

236 

237[Set up Team Tasks](https://learn.chatgpt.com/docs/enterprise/teams)

238 

239 

240 

241 

242 

243 

244### Workspace connections

245 

246Connect company-managed accounts for supported teams and workflows. Each connection uses the connected account's permissions.

247 

248[Manage shared connections](https://learn.chatgpt.com/docs/enterprise/shared-connections)

249 

250 

251 

252 

253 

254 

255### Agent Security

256 

257Control which tools agents can use and how they access files and the network. Set workspace policies for local and Codex Cloud execution; Work Cloud has separate controls.

258 

259[Agent Security](https://learn.chatgpt.com/docs/enterprise/agent-security)

260[Managed configuration](https://learn.chatgpt.com/docs/enterprise/managed-configuration)

261[Work sync](https://learn.chatgpt.com/docs/enterprise/cloud-local-access)

262 

263 

264 

265 

266 

267 

268</section>

Details

1# September 28–October 2, 2026

2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 

5[Back to What's new](https://learn.chatgpt.com/docs/whats-new#september-28october-2-2026)

6 

7## Choose GPT-6.1 Sol for complex work

8 

9[GPT-6.1 Sol](https://learn.chatgpt.com/docs/models#gpt-61-sol) offers near-Astra performance at a

10lower cost than Astra. Consider it for repeated, long-running work across code,

11apps, and documents. Availability depends on your plan, client, and workspace

12settings. See the [launch announcement](https://learn.chatgpt.com/docs/changelog#codex-2026-09-29-gpt-61-sol)

13and [pricing](https://learn.chatgpt.com/docs/pricing) for details.

14 

15## Delegate ongoing work to your dot

16 

17[Dots](https://learn.chatgpt.com/docs/dots) are always-on agents that take on ongoing responsibility

18in ChatGPT. Give your dot a goal, such as preparing meeting briefs or

19tracking project updates, and define what it can do on its own. It keeps

20making progress between conversations, using connected apps, creating

21files, and delegating tasks to ChatGPT Work or Codex.

22 

23Start with one dot, give it a name, and make it your own. Your dot has its

24own cloud computer and browser. It brings back results for your review

25and reaches out through supported contact methods when a decision needs

26your judgment. You can review its work or give it a new direction anytime.

27Dots are rolling out gradually. See [availability](https://learn.chatgpt.com/docs/dots#access) for eligible plans, regions, and setup requirements.

28 

29## Use GPT-6 Astra Ultrafast

30 

31[Ultrafast mode](https://learn.chatgpt.com/docs/agent-configuration/speed#ultrafast-mode) is available

32in Codex and ChatGPT Work on the Pro \$500/month plan and eligible Enterprise and Edu

33plans. On Pro, it draws from included usage or available credits. Enterprise

34usage follows the workspace's credit-based or USD usage-based agreement.

35 

36Enterprise access is off by default; workspace owners can enable it for

37selected users or the workspace. Ultrafast isn't available to workspaces

38that require inference residency outside the United States.

39 

40## Prepare reusable Codex Cloud environments

41 

42Describe your development setup and let Codex install dependencies, prepare

43tools, and test the workflow. [Publish the environment](https://learn.chatgpt.com/docs/environments/cloud-environments)

44to reuse its prepared filesystem. Each new task gets its own isolated

45workspace. Access depends on your plan and workspace settings.

46 

47## Scan repositories with Codex Security Cloud

48 

49[Codex Security Cloud](https://learn.chatgpt.com/docs/security/setup) is available in research preview

50on the web and in the desktop app. In a workspace with access, install the

51plugin to scan connected GitHub repositories or monitor new commits. Review

52findings, validation evidence, and available patches before creating a draft

53pull request.

54 

55## Continue Work across devices

56 

57When your workspace enables Local computer access with Work Cloud, start a new ChatGPT Work task on desktop

58and continue the conversation from web or mobile. Tasks can use approved

59files and tools on a connected computer; keep that computer online for steps

60that need it. Existing tasks keep their original mode.

61 

62See [Work across devices](https://learn.chatgpt.com/docs/get-started-with-work#continue-work-across-devices)

63and the [administrator setup guide](https://learn.chatgpt.com/docs/enterprise/cloud-local-access).

64 

65## Work together in ChatGPT Space

66 

67Where available, [ChatGPT Space](https://learn.chatgpt.com/docs/space) brings Pages and saved files

68together. Ask ChatGPT to draft or revise a Page, edit it directly, and share

69it with collaborators. Use `@ChatGPT` or `@dot` to ask for help in a Page,

70or use slash commands to generate text, images, and visualizations.

71Review the available permissions before sharing.

72 

73Start with the [Space getting-started guide](https://learn.chatgpt.com/docs/space/getting-started)

74or learn how to [work on Pages together](https://learn.chatgpt.com/docs/space/collaboration).

75 

76## Set up shared team workflows

77 

78- **ChatGPT in Slack and Microsoft Teams:** Request work in approved

79 conversations using your deployment's connected tools. Workspace admins

80 can [configure deployments and access](https://learn.chatgpt.com/docs/enterprise/chatgpt-slack-and-teams).

81- **Team Tasks:** Run [scheduled or event-triggered work](https://learn.chatgpt.com/docs/enterprise/teams), such as

82 project digests, through a team's service account and approved connections.

83- **Workspace connections:** Admins can [connect company-managed accounts](https://learn.chatgpt.com/docs/enterprise/shared-connections)

84 for eligible teams and workflows. Each connection uses the connected

85 account's permissions.

86 

87Availability and supported controls depend on your workspace and rollout.

88 

89## Sign in to apps with ChatGPT

90 

91[Sign in with ChatGPT](https://developers.openai.com/siwc/quickstart) lets users sign in to your app and,

92where eligible, use their ChatGPT plan for AI requests. Eligible Plus and Pro

93users can bring their plan usage to participating apps.

94 

95Commercial sign-in is in a limited trial with selected partners. ChatGPT plan

96usage is available to open-source partners and selected private clients.

97Start with the [open-source integration](https://developers.openai.com/siwc/token-sharing-open-source).

98 

99## Extend your plugin's interface

100 

101[Plugin Extensions](https://developers.openai.com/plugins/build/extensions) let developers add sidebar

102apps, conversation panels, file viewers and editors, and forms to ChatGPT.

103Composer mentions are available only in the desktop app. Free and Go web extensions are coming soon.

104 

105## Respond to MCP events

106 

107[MCP Events](https://developers.openai.com/plugins/build/mcp-events) lets users ask ChatGPT to monitor

108updates from your server and act when matching events arrive. For example,

109a user can ask ChatGPT to summarize new messages or respond to document feedback.

110 

111This integration requires MCP 2.0. ChatGPT supports webhook delivery from

112the draft MCP Events specification; polling and streaming aren't supported.

113 

114## Customize website annotations

115 

116Use [Annotations Extensibility](https://learn.chatgpt.com/docs/annotations-extensibility) to choose

117what people can select on your website, attach relevant context, and provide

118controls for previewing changes before sending feedback to ChatGPT. The

119Browser Annotation API is available in supported versions of the desktop

120app's built-in browser.