Understanding ChatGPT Work
<p>OpenAI <a href="https://openai.com/index/chatgpt-for-your-most-ambitious-work/">announced ChatGPT Work</a> on July 9th, and have been furiously iterating on it ever since. It is an extraordinarily confusing and very powerful product. Here's what I've figured out about it so far.</p> <h4 id="two-products">ChatGPT Work is actually two products</h4> <p>The more interesting version of ChatGPT Work is the one that runs in the cloud. This can be accessed via <a href="https://www.chatgpt.com/">chatgpt.com</a> or through the ChatGPT mobile apps. Let's call it <strong>Work Cloud</strong>.</p> <p>If you install the ChatGPT desktop app - the app that used to be called Codex - you gain access to a thing called ChatGPT Work that can access files and run programs directly on your computer. Let's call that one <strong>Work Local</strong>. This one feels more like regular Codex re-skinned to be less intimidating to non-software-developers.</p> <p>For the rest of this article I'm going to talk exclusively about Work Cloud.</p> <h4 id="work-is-for-paid-subscribers-only">Work is for paid subscribers only</h4> <p>Right now, ChatGPT Work (in both flavors) is available only to $20/month and up subscribers. Free users and $8/month Go users do not have access.</p> <h4 id="work-has-features-that-aren-t-available-in-chat">Work has features that aren't available in Chat</h4> <p>The interface for accessing Work is a tab selector, which presents it as an alternative to Chat:</p> <p><img src="https://static.simonwillison.net/static/2026-08-30/IMG_7741.jpeg" alt="ChatGPT app header with a Chat and a Work tab" style="max-width: 100%;" /></p> <p>The obvious question is <em>when should I use Chat, and when should I use Work?</em></p> <p>OpenAI's <a href="https://learn.chatgpt.com/docs/get-started-with-work">official answer</a> to that question is:</p> <blockquote> <p>Use Chat when you want an answer, explanation, brainstorm, or short draft. Use ChatGPT Work when you want ChatGPT to complete a task with a clear outcome, such as a brief, deck, analysis, recurring update, workflow, or file you can review and use.</p> </blockquote> <p>I find that almost entirely useless, because I've been using regular ChatGPT Chat for all of those task categories for years!</p> <p>The better question then is <em>what features does Work have that are missing from Chat?</em></p> <p>After extensive experimentation I think I've mostly figured that out:</p> <ul> <li><a href="#model-selection">Options to use Luna and Terra in place of Sol</a></li> <li><a href="#code-execution-with-internet-access-">A code execution environment with Internet access</a></li> <li><a href="#a-full-headless-chrome-browser">A headless Chrome browser</a></li> <li><a href="#a-persistent-shared-filesystem">A persistent filesystem shared between sessions</a></li> <li><a href="#chatgpt-sites">The ability to publish ChatGPT Sites</a></li> <li><a href="#sub-agents-with-sol-luna-and-terra">The ability to run sub-agent sessions with Sol, Luna, and Terra</a></li> <li><a href="#scheduled-prompt-automations">Scheduled prompt automations</a> (may be in ChatGPT Chat too)</li> </ul> <h4 id="model-selection">Model selection</h4> <p>In Work, you get the option to pick GPT-5.6 Sol, Luna, or Terra, each with Light, Medium, High, Extra High, Max, or Ultra reasoning levels. You can also pick GPT-5.5 at Light, Medium, High, or Extra High.</p> <p>These look to be the same models that are available through the OpenAI API.</p> <p>Chat offers a different selection: 5.6 Instant, Medium, High, Extra High, and Pro. It doesn't explain if those are Luna or Terra or Sol (I'm assuming Sol?). 5.6 Pro appears to be exclusive to Chat, with no equivalent in Work.</p> <p>My current understanding from using Codex is that Ultra is a special mode that more eagerly delegates to sub-agents.</p> <p>I believe ChatGPT Work sessions are billed against your Codex allowance, while ChatGPT Chat Sessions get their own, separate allowance. This may help explain the model availability differences.</p> <h4 id="code-execution-with-internet-access-">Code execution with Internet access!</h4> <p>As a long-time fan of the <a href="https://simonwillison.net/tags/code-interpreter/">Code Interpreter pattern</a> - pioneered by OpenAI in 2023 - this is by far the most exciting feature of ChatGPT Work (Cloud) for me.</p> <p>The code execution environment can now talk to the rest of the internet!</p> <p>ChatGPT Chat can't do this - if you ask it to install additional software packages or interact with websites or APIs that access will be blocked by the container proxy.</p> <p>(Weirdly, back in January it <a href="https://simonwillison.net/2026/Jan/26/chatgpt-containers/">grew the ability to install packages</a>, but that doesn't seem to work any more. I wish they had better changelogs!)</p> <p>Claude's equivalent container has allowed restricted internet access since it launched <a href="https://simonwillison.net/2025/Sep/9/claude-code-interpreter/">last September</a>. Claude can install packages from PYPI and NPM and clone repositories from GitHub. But that is about it: the allowlist of domains is very short.</p> <p>ChatGPT Work allows a whole lot more than that. It can be configured with a specific list of allowed domains, but the default appears to be open to all.</p> <p>This makes Work an incredibly useful tool. You can have it clone GitHub repositories, install their dependencies, then use them to interact with the rest of the web!</p> <h4 id="a-full-headless-chrome-browser">A full, headless Chrome browser</h4> <p>Another killer feature of ChatGPT Work is <a href="https://learn.chatgpt.com/docs/browser?surface=web">the browser tool</a>. ChatGPT Work can launch a full Chrome instance, load websites, fill out forms, and take screenshots.</p> <p>If a site requires sign in the browser can prompt you to take over and enter both passwords and 2FA codes, without round-tripping those credentials through the model itself.</p> <p>It can even run JavaScript against the DOM of loaded pages. I prompted:</p> <blockquote> <p><code>Load simonwillison.net in your browser and extract the headings using JavaScript</code></p> </blockquote> <p>ChatGPT Work fired up a browser instance and ran the code:</p> <div class="highlight highlight-source-js"><pre><span class="pl-k">await</span> <span class="pl-s1">tab</span><span class="pl-kos">.</span><span class="pl-c1">playwright</span><span class="pl-kos">.</span><span class="pl-en">evaluate</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-kos">{</span> <span class="pl-k">return</span> <span class="pl-v">Array</span><span class="pl-kos">.</span><span class="pl-en">from</span><span class="pl-kos">(</span><span class="pl-smi">document</span><span class="pl-kos">.</span><span class="pl-en">querySelectorAll</span><span class="pl-kos">(</span><span class="pl-s">"h1,h2,h3,h4,h5,h6"</span><span class="pl-kos">)</span><span class="pl-kos">,</span> <span class="pl-s1">heading</span> <span class="pl-c1">=></span> <span class="pl-kos">(</span><span class="pl-kos">{</span> <span class="pl-c1">level</span>: <span class="pl-s1">heading</span><span class="pl-kos">.</span><span class="pl-c1">tagName</span><span class="pl-kos">.</span><span class="pl-en">toLowerCase</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">,</span> <span class="pl-c1">text</span>: <span class="pl-s1">heading</span><span class="pl-kos">.</span><span class="pl-c1">innerText</span><span class="pl-kos">.</span><span class="pl-en">trim</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">replace</span><span class="pl-kos">(</span><span class="pl-pds"><span class="pl-c1">/</span><span class="pl-cce">\s</span><span class="pl-c1">+</span><span class="pl-c1">/</span>g</span><span class="pl-kos">,</span> <span class="pl-s">" "</span><span class="pl-kos">)</span><span class="pl-kos">,</span> <span class="pl-c1">id</span>: <span class="pl-s1">heading</span><span class="pl-kos">.</span><span class="pl-c1">id</span> <span class="pl-c1">||</span> <span class="pl-c1">null</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div> <p>This feels a lot like my <a href="https://shot-scraper.datasette.io/en/stable/javascript.html">shot-scraper javascript</a> tool, only now I can access it on my phone!</p> <h4 id="a-persistent-shared-filesystem">A persistent, shared filesystem</h4> <p>ChatGPT Chat gets a fresh filesystem for each chat session. These cannot be accessed from any other session.</p> <p>In ChatGPT Work each session gets its own scratch folder - named something like <code>/workspace/scratch/e00a0a017944</code> - but each of those are persisted across sessions, so you can access files from previous chats. I have 171 folders in <code>/workspace/scratch</code> right now!</p> <p>As far as I can tell that <code>/workspace</code> volume is mounted to all Work sessions that are currently running - file edits from one can be instantly seen by the others. They don't seem to share the same process space though, and localhost servers running in one can't be accessed from another.</p> <h4 id="chatgpt-sites">ChatGPT Sites</h4> <p>ChatGPT Work has the ability to build <em>and deploy</em> entire websites, using Cloudflare Workers. These can have HTML and JavaScript and can run server-side features too, including stateful features on top of Cloudflare D1 and R2.</p> <p>Here's a simple site I built with this feature:</p> <p><a href="https://london-pelicans-in-her-piety.simonw.chatgpt.site/">london-pelicans-in-her-piety.simonw.chatgpt.site</a></p> <p><img src="https://static.simonwillison.net/static/2026/pelicans-in-her-piety.webp" alt="Screenshot of a website homepage on a cream background. Top navigation bar: a circular logo reading "P/P" on the left, the links "THE CENSUS", "COLLECTIONS" and "METHOD" in the center, and "JSON ↓" on the right. The left half is a hero section with small red capitals reading "AN ICONOGRAPHIC CENSUS · GREATER LONDON" above a large serif heading "Pelicans in her piety", with "piety" set in red italics. Below it: "Across London, an impossible bird bleeds for her young—in limewood, marble, mosaic, metal and glass. This is an evidence-backed census of where to find her." Two buttons follow: a solid black "EXPLORE ALL 28" and an outlined "DOWNLOAD THE DATA". The right half is a photograph of an ornate dark carved wooden reredos in a church, with gilded urns and a crest on top, Corinthian columns, a gilded pelican with outspread wings at its center above inscribed panels, an altar with a brass cross and red flowers, embroidered banners on either side, and a black-and-white checkerboard floor with red carpet. Vertical text along the photo's right edge reads "ST MARY ABCHURCH" and a caption at its bottom reads "Grinling Gibbons's reredos, St Mary Abchurch. Photograph: Diliff, CC BY-SA 3.0, via SPAB ↗". A statistics strip along the bottom shows "28 FIXED SITES", "4 COLLECTIONS", "3 OPEN LEADS" and "2 KNOWN LOSSES"." style="max-width: 100%;" /></p> <p>My prompt was:</p> <blockquote> <p><code>Figure out all of the places in London with a pelican in her piety, then turn that into a JSON file and build a ChatGPT sites site about them</code></p> </blockquote> <p>(A pelican in her piety is a fascinating piece of <a href="https://devonchurchland.co.uk/blog/pelican-in-her-piety/#What-is-a-Pelican-In-Her-Piety">medieval Christian imagery</a> - once you know about them you'll find them all over the place.)</p> <p>These sites default to being private to the user that created them, but you can make them public and (on team plans) share them with other specific individuals.</p> <h4 id="sub-agents-with-sol-luna-and-terra">Sub-agents with Sol, Luna, and Terra</h4> <p>There's not much to say about this one. ChatGPT Chat can't run sub-agents. ChatGPT Work can. This is very much a power-user feature: if you are running a complex project that can benefit from multiple parallel agents working together, Work can do that.</p> <h4 id="scheduled-prompt-automations">Scheduled prompt automations</h4> <p>Another feature that seems to have migrated from regular ChatGPT to ChatGPT Work at some point. You can prompt ChatGPT Work like this:</p> <blockquote> <p><code>run a search to see if Waymo have announced a launch date for Half Moon Bay every day at 8am</code></p> </blockquote> <p>This will schedule a prompt to run on that frequency. These prompts can decide that nothing interesting has happened, or they can decide to notify you of some new information.</p> <p><strong>Update</strong>: Actually this seems to work in ChatGPT Chat as well.</p> <p>It's still worth noting here though, as it can be used in conjunction with other ChatGPT Work exclusive features. You can set a scheduled task to update a ChatGPT Site on an hourly basis, for example.</p> <h4 id="is-this-safe-">Is this safe?</h4> <p>An open question for me right now is how <em>safe</em> all of this stuff is.</p> <p>My <a href="https://simonwillison.net/2025/Jun/16/the-lethal-trifecta/">lethal trifecta model</a> warns about the risks inherent in any agent system that combines access to private data with exposure to untrusted content and a way to communicate stolen information back to an attacker.</p> <p>ChatGPT Work combines all three!</p> <p>I'd love to hear more from OpenAI about how they protect ChatGPT Work sessions against prompt injection attacks. I expect their answer is the same <a href="https://learn.chatgpt.com/docs/sandboxing/auto-review">auto-review mechanism</a> as Codex.</p> <h4 id="openai-could-make-this-a-lot-less-confusing">OpenAI could make this a lot less confusing</h4> <p>Figuring this all out took way more work than it should have.</p> <p>I think there are two key problems here:</p> <ol> <li>OpenAI explain Work in terms of what it's for, not what it actually does</li> <li>OpenAI still insist on hiding their system prompts and tools descriptions</li> </ol> <p>If the ChatGPT Work documentation included the exact system prompt and tool descriptions used by the agent I wouldn't have needed to write this post.</p> <p>Tags: <a href="https://simonwillison.net/tags/ai">ai</a>, <a href="https://simonwillison.net/tags/openai">openai</a>, <a href="https://simonwillison.net/tags/generative-ai">generative-ai</a>, <a href="https://simonwillison.net/tags/chatgpt">chatgpt</a>, <a href="https://simonwillison.net/tags/llms">llms</a>, <a href="https://simonwillison.net/tags/code-interpreter">code-interpreter</a>, <a href="https://simonwillison.net/tags/general-agents">general-agents</a></p>
Understanding ChatGPT Work
Simon Willison’s Weblog
Subscribe
Understanding ChatGPT Work
30th August 2026
OpenAI announced ChatGPT Work on July 9th, and have been furiously iterating on it ever since. It is an extraordinarily confusing and very powerful product. Here’s what I’ve figured out about it so far.
ChatGPT Work is actually two products
The more interesting version of ChatGPT Work is the one that runs in the cloud. This can be accessed via chatgpt.com or through the ChatGPT mobile apps. Let’s call it Work Cloud.
If you install the ChatGPT desktop app—the app that used to be called Codex—you gain access to a thing called ChatGPT Work that can access files and run programs directly on your computer. Let’s call that one Work Local. This one feels more like regular Codex re-skinned to be less intimidating to non-software-developers.
For the rest of this article I’m going to talk exclusively about Work Cloud.
Work is for paid subscribers only
Right now, ChatGPT Work (in both flavors) is available only to $20/month and up subscribers. Free users and $8/month Go users do not have access.
Work has features that aren’t available in Chat
The interface for accessing Work is a tab selector, which presents it as an alternative to Chat:
The obvious question is when should I use Chat, and when should I use Work?
OpenAI’s official answer to that question is:
Use Chat when you want an answer, explanation, brainstorm, or short draft. Use ChatGPT Work when you want ChatGPT to complete a task with a clear outcome, such as a brief, deck, analysis, recurring update, workflow, or file you can review and use.
I find that almost entirely useless, because I’ve been using regular ChatGPT Chat for all of those task categories for years!
The better question then is what features does Work have that are missing from Chat?
After extensive experimentation I think I’ve mostly figured that out:
Options to use Luna and Terra in place of Sol
A code execution environment with Internet access
A headless Chrome browser
A persistent filesystem shared between sessions
The ability to publish ChatGPT Sites
The ability to run sub-agent sessions with Sol, Luna, and Terra
Scheduled prompt automations (may be in ChatGPT Chat too)
Model selection
In Work, you get the option to pick GPT-5.6 Sol, Luna, or Terra, each with Light, Medium, High, Extra High, Max, or Ultra reasoning levels. You can also pick GPT-5.5 at Light, Medium, High, or Extra High.
These look to be the same models that are available through the OpenAI API.
Chat offers a different selection: 5.6 Instant, Medium, High, Extra High, and Pro. It doesn’t explain if those are Luna or Terra or Sol (I’m assuming Sol?). 5.6 Pro appears to be exclusive to Chat, with no equivalent in Work.
My current understanding from using Codex is that Ultra is a special mode that more eagerly delegates to sub-agents.
I believe ChatGPT Work sessions are billed against your Codex allowance, while ChatGPT Chat Sessions get their own, separate allowance. This may help explain the model availability differences.
Code execution with Internet access!
As a long-time fan of the Code Interpreter pattern—pioneered by OpenAI in 2023—this is by far the most exciting feature of ChatGPT Work (Cloud) for me.
The code execution environment can now talk to the rest of the internet!
ChatGPT Chat can’t do this—if you ask it to install additional software packages or interact with websites or APIs that access will be blocked by the container proxy.
(Weirdly, back in January it grew the ability to install packages, but that doesn’t seem to work any more. I wish they had better changelogs!)
Claude’s equivalent container has allowed restricted internet access since it launched last September. Claude can install packages from PYPI and NPM and clone repositories from GitHub. But that is about it: the allowlist of domains is very short.
ChatGPT Work allows a whole lot more than that. It can be configured with a specific list of allowed domains, but the default appears to be open to all.
This makes Work an incredibly useful tool. You can have it clone GitHub repositories, install their dependencies, then use them to interact with the rest of the web!
A full, headless Chrome browser
Another killer feature of ChatGPT Work is the browser tool. ChatGPT Work can launch a full Chrome instance, load websites, fill out forms, and take screenshots.
If a site requires sign in the browser can prompt you to take over and enter both passwords and 2FA codes, without round-tripping those credentials through the model itself.
It can even run JavaScript against the DOM of loaded pages. I prompted:
Load simonwillison.net in your browser and extract the headings using JavaScript
ChatGPT Work fired up a browser instance and ran the code:
await tab.playwright.evaluate(() => { return Array.from(document.querySelectorAll("h1,h2,h3,h4,h5,h6"), heading => ({ level: heading.tagName.toLowerCase(), text: heading.innerText.trim().replace(/\s+/g, " "), id: heading.id || null })); });
This feels a lot like my shot-scraper javascript tool, only now I can access it on my phone!
A persistent, shared filesystem
ChatGPT Chat gets a fresh filesystem for each chat session. These cannot be accessed from any other session.
In ChatGPT Work each session gets its own scratch folder—named something like /workspace/scratch/e00a0a017944—but each of those are persisted across sessions, so you can access files from previous chats. I have 171 folders in /workspace/scratch right now!
As far as I can tell that /workspace volume is mounted to all Work sessions that are currently running—file edits from one can be instantly seen by the others. They don’t seem to share the same process space though, and localhost servers running in one can’t be accessed from another.
ChatGPT Sites
ChatGPT Work has the ability to build and deploy entire websites, using Cloudflare Workers. These can have HTML and JavaScript and can run server-side features too, including stateful features on top of Cloudflare D1 and R2.
Here’s a simple site I built with this feature:
london-pelicans-in-her-piety.simonw.chatgpt.site
My prompt was:
Figure out all of the places in London with a pelican in her piety, then turn that into a JSON file and build a ChatGPT sites site about them
(A pelican in her piety is a fascinating piece of medieval Christian imagery—once you know about them you’ll find them all over the place.)
These sites default to being private to the user that created them, but you can make them public and (on team plans) share them with other specific individuals.
Sub-agents with Sol, Luna, and Terra
There’s not much to say about this one. ChatGPT Chat can’t run sub-agents. ChatGPT Work can. This is very much a power-user feature: if you are running a complex project that can benefit from multiple parallel agents working together, Work can do that.
Scheduled prompt automations
Another feature that seems to have migrated from regular ChatGPT to ChatGPT Work at some point. You can prompt ChatGPT Work like this:
run a search to see if Waymo have announced a launch date for Half Moon Bay every day at 8am
This will schedule a prompt to run on that frequency. These prompts can decide that nothing interesting has happened, or they can decide to notify you of some new information.
Update: Actually this seems to work in ChatGPT Chat as well.
It’s still worth noting here though, as it can be used in conjunction with other ChatGPT Work exclusive features. You can set a scheduled task to update a ChatGPT Site on an hourly basis, for example.
Is this safe?
An open question for me right now is how safe all of this stuff is.
My lethal trifecta model warns about the risks inherent in any agent system that combines access to private data with exposure to untrusted content and a way to communicate stolen information back to an attacker.
ChatGPT Work combines all three!
I’d love to hear more from OpenAI about how they protect ChatGPT Work sessions against prompt injection attacks. I expect their answer is the same auto-review mechanism as Codex.
OpenAI could make this a lot less confusing
Figuring this all out took way more work than it should have.
I think there are two key problems here:
OpenAI explain Work in terms of what it’s for, not what it actually does
OpenAI still insist on hiding their system prompts and tools descriptions
If the ChatGPT Work documentation included the exact system prompt and tool descriptions used by the agent I wouldn’t have needed to write this post.
More recent articles
Conceptual integrity and counting lines of code - 19th August 2026
Qwen 3.8 27B is excellent, but it defaults to wildly overthinking things - 16th August 2026
This is Understanding ChatGPT Work by Simon Willison, posted on 30th August 2026.
ai 2,207
openai 451
generative-ai 1,956
chatgpt 201
llms 1,923
code-interpreter 32
general-agents 12
Previous: Conceptual integrity and counting lines of code
Monthly briefing
Sponsor me for $10/month and get a curated email digest of the month's most important LLM developments.
Pay me to send you less!
Sponsor & subscribe
Disclosures
Colophon
©
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026