I've used a similar technique with my own tools. It helps to save context overall, by deferring the detailed instructions not only to when they're needed, but also to where they're needed.
Simply loading the browser Skill alone, doesn't always mean a browser is actually necessary (or supported). The user might've want them to control their main desktop browser; or the user might be pointing them toward a read-only HTML file that doesn't need rendering; or the sandbox might prevent network access; etc...
Codex is especially 'keen' to use Skills (especially by comparison to Claude), I often see it load Skills which it doesn't go on to use, because the main Skill content says "when not to use this". So I'm sure this is a product design decision to help with those kinds of circumstances.
It's runtime dependent on the browser being used! A skill file wouldn't be able to have this dynamically injected for the browser that's about to be used.
Skill file could indicate general instructions for all browsers. This provides guidance for the browser that's about to actually be used.
Honestly, this is one of the things OpenAI does pretty well, I think, these tiny design decisions that you wouldn't notice until it becomes super annoying.
That's a pattern I often follow - refer it to the docs, don't include them. Usually it's another markdown, but sometimes it can be the output of something else. This avoids including any of that in context before it's actually needed.
Simon, thanks for all the great work you do. I definitely appreciate your contributions to discussion threads here as well as your blog. I learned so much from you.
Meta comment: I've been wondering why AI-generated websites/artifacts/reports always have the same "look". It reminds me of Bootstrap (CSS Framework) days when every startup website looked the same.
It can be enraging. Checkout https://tinkeri.ng/ - I just added a theme-switcher "Neubrutalism" at top right. The existing theme is standard fare. Both look alright. I told C3PO to follow the guidelines set at https://neubrutalism.com.
I have to say, having a background in doing detailed design work makes it much easier to write the right prompt. Also, having the ability to deliver a theme-switcher like this is very handy. There is a tradeoff. Adding the theme and switcher took about 1hr 10mins. Last 10% of the result always the most time-consuming.
If I had built this from the ground up manually, I could implement my own design and fiddle with things on a minute level but this type of granularity gets lost when building at speed.
I think these guideline are built into the llms. After all with llms, any decision you don't take will be taken for you. For a so called slop site (Simon's words, not mine :P) I don't think they specified a style so the llm just decided the default it knows. One day I will run experiments (when I can afford it) trying to identify the "taste" of different llms.
Can we get one for how to test websites on a regular sized screen?
That left-hand sidebar needs to be able to scroll on its own, unless you're on a 4k monitor. Otherwise, there's no way to view the bottom half of the list.
Anyone using ChatGPT Work given Sam Altman's richly documented history(1), the essential elimination and/or public exit of the safety function at OpenAI(2), and the huggingface debacle's exposure of the abject operational, cultural and technical failures at OpenAI(3), is making a serious mistake.
I think the most interesting skill here is the control-browser one: https://codex-tool-reference.simonw.chatgpt.site/skills/cont...
It tells ChatGPT Work how to launch a Playwright instance via its Node.js REPL, and tells it to run:
To get further instructions.That method returns this text with full details about how to use the browser: https://codex-tool-reference.simonw.chatgpt.site/skills/cont...
I'd love to know why it's defined like that, as opposed to including all of the instructions directly in the skill Markdown file.
I've used a similar technique with my own tools. It helps to save context overall, by deferring the detailed instructions not only to when they're needed, but also to where they're needed.
Simply loading the browser Skill alone, doesn't always mean a browser is actually necessary (or supported). The user might've want them to control their main desktop browser; or the user might be pointing them toward a read-only HTML file that doesn't need rendering; or the sandbox might prevent network access; etc...
Codex is especially 'keen' to use Skills (especially by comparison to Claude), I often see it load Skills which it doesn't go on to use, because the main Skill content says "when not to use this". So I'm sure this is a product design decision to help with those kinds of circumstances.
It's runtime dependent on the browser being used! A skill file wouldn't be able to have this dynamically injected for the browser that's about to be used.
Skill file could indicate general instructions for all browsers. This provides guidance for the browser that's about to actually be used.
Two sources of truth, if playwright updates?
Honestly, this is one of the things OpenAI does pretty well, I think, these tiny design decisions that you wouldn't notice until it becomes super annoying.
That's a pattern I often follow - refer it to the docs, don't include them. Usually it's another markdown, but sometimes it can be the output of something else. This avoids including any of that in context before it's actually needed.
I'm guessing, but can be because then the skill will always fetch the latest docs.
See this comment for background (and creation prompt): https://news.ycombinator.com/item?id=49504625#49505116
Simon, thanks for all the great work you do. I definitely appreciate your contributions to discussion threads here as well as your blog. I learned so much from you.
[flagged]
I don't get how this is different from Codex if Codex can do all the same things.
ChatGPT Work in the ChatGPT desktop app is effectively Codex with a different skin. It can operate on your local files in the same way.
ChatGPT Work in the ChatGPT web and mobile app experience is very different.
If you like, you can think of it as a cloud-hosted version of Codex that's skinned to look more like consumer ChatGPT.
Some of these work tools can slow things down and waste plentiful tokens
Meta comment: I've been wondering why AI-generated websites/artifacts/reports always have the same "look". It reminds me of Bootstrap (CSS Framework) days when every startup website looked the same.
Are they following some sort of common guideline?
It can be enraging. Checkout https://tinkeri.ng/ - I just added a theme-switcher "Neubrutalism" at top right. The existing theme is standard fare. Both look alright. I told C3PO to follow the guidelines set at https://neubrutalism.com.
I have to say, having a background in doing detailed design work makes it much easier to write the right prompt. Also, having the ability to deliver a theme-switcher like this is very handy. There is a tradeoff. Adding the theme and switcher took about 1hr 10mins. Last 10% of the result always the most time-consuming.
If I had built this from the ground up manually, I could implement my own design and fiddle with things on a minute level but this type of granularity gets lost when building at speed.
In this case they really are, and you can read the guidelines that helped create the site on the site itself in the skills: https://codex-tool-reference.simonw.chatgpt.site/skills/site...
Scroll down to the "Establish the visual direction" section.
Because most AI generated websites are from people who don't know much and as such cannot even articulate the look they want
I keep seeing comments like this, and having messed around and generated a few (non-public) websites myself they all looked completely different?
Mind you I don’t spend a lot of time on ai generated websites or the kinds of places you might find those. Well except for HN but you get my point.
I think these guideline are built into the llms. After all with llms, any decision you don't take will be taken for you. For a so called slop site (Simon's words, not mine :P) I don't think they specified a style so the llm just decided the default it knows. One day I will run experiments (when I can afford it) trying to identify the "taste" of different llms.
Can we get one for how to test websites on a regular sized screen?
That left-hand sidebar needs to be able to scroll on its own, unless you're on a 4k monitor. Otherwise, there's no way to view the bottom half of the list.
[dupe] Discussion on associated blog post: https://news.ycombinator.com/item?id=49504625
Anyone using ChatGPT Work given Sam Altman's richly documented history(1), the essential elimination and/or public exit of the safety function at OpenAI(2), and the huggingface debacle's exposure of the abject operational, cultural and technical failures at OpenAI(3), is making a serious mistake.
(1) https://www.newyorker.com/magazine/2026/04/13/sam-altman-may... (2) https://thenextweb.com/news/openai-preparedness-team-disband... (3) https://thezvi.wordpress.com/2026/08/29/metr-and-redwood-off...
Which provider currently lives up to your moral code?