ChatGPT Work Tool and Skill Reference
199 points - yesterday at 2:07 PM
Sourcesimonw
yesterday at 2:37 PM
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:
nodeRepl.write(await browser.documentation());
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.
jw1224
yesterday at 4:12 PM
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.
lanyard-textile
yesterday at 3:24 PM
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.
tomrod
yesterday at 5:01 PM
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.
GrinningFool
yesterday at 7:54 PM
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.
newswasboring
yesterday at 2:57 PM
I'm guessing, but can be because then the skill will always fetch the latest docs.
ChrisGreenHeur
yesterday at 3:05 PM
[flagged]
simonw
yesterday at 2:25 PM
See this comment for background (and creation prompt): https://news.ycombinator.com/item?id=49504625#49505116
cebert
yesterday at 4:11 PM
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.
enos_feedler
yesterday at 8:15 PM
For ultimate show of appreciation, there is a way to subscribe to his work on github :)
owebmaster
yesterday at 2:28 PM
[flagged]
simonw is a fine contributor to HN and we're lucky to have him.
I realize that for some people there is too much LLM-related content and (therefore?) too much by certain authors, but that has always been the case for certain topics and certain authors in HN's history. This is a side effect of the frontpage being the same for everyone, and therefore the scarcest resource.
https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...
roseway4
yesterday at 3:14 PM
Simon is not the OP. He’s just commenting on his own work. How is that spam?
simonw
yesterday at 2:31 PM
My comment here is entirely justified in this case.
Someone else submitted my vibe-coded slop site to the front page without any context, and it accumulated enough votes to show up at the top.
I could have linked to my blog post about it, but instead I linked to a Hacker News comment precisely because I anticipated complaints about "spamming" if I linked to my blog.
yoavm
yesterday at 2:38 PM
Simon, thank you for your comments and the great content you create. I've learned a lot from your blogposts and your experiments.
NoDodgeQuestion
yesterday at 2:46 PM
You don't know, SimonW made Django Python framework?
Cheyana
yesterday at 3:30 PM
Chuckling at a Python reference in a comment thread arguing about spam.
Didn't he leave the project before it even had an official release?
https://simonwillison.net/2005/Jul/17/django/
> I haven’t been involved with Django since leaving the Journal-World back in September, but now that the framework is open-sourced I look forward to contributing to its further development—both in terms of documentation and actual code.
bewareofscams
yesterday at 3:43 PM
Having done a thing does not make a person into a demigod embodiment for life, please remember that guys.
[flagged]
simonw
yesterday at 2:32 PM
What am I "doing" here?
[flagged]
simonw
yesterday at 2:38 PM
How is this comment "spam"? Spell it out for me.
(I think you may be confusing "spam" with "prolific". I write a lot.)
infecto
yesterday at 3:11 PM
I think folks are a little too aggressive here but I know I typically have your posts muted by default for me simply because too often it was just blog spam about something you wrote before. I suspect the greater HN in net likes your work but there is a pretty wide spectrum and I would say you definitely blur the limits between spam and “prolific”.
You don't like seeing the top post of every model thread being a link to some SVG pelican that he generated?
Once again, continues to gaslight after spamming a post with another top-posted comment after having to “justify” it. In this case, You already admitted to it.
There is just no end or need to rapidly post on every opportunity that involves “AI” or whatever that is related to it.
simonw
yesterday at 2:51 PM
Seriously, what's your definition of spam?
Or an easier question: how am I gaslighting here? You should be able to spell that out.
(You do understand that the top linked site here was built by me, but has no authorship information on it at all, right? That's why I posted a comment explaining what it is.)
simianwords
yesterday at 3:22 PM
.. I know its tempting to try to reply to all these people but I'd just ignore them. A lot of them feel stressed by AI and it has nothing to do with you personally.
owebmaster
yesterday at 3:36 PM
"Am I so out of touch?"
"No, it's the children who are wrong".
nswizzle31
yesterday at 2:57 PM
Spam = excessive promotion of your work. It’s not one comment, but the entire context of all your comments.
Gaslighting because it’s so OBVIOUS that this is what people are referring to by “spam” that you almost have to be purposely pretending to not understand. Such a prolific writer simply has to be aware of the fine line where promoting your work becomes excessive.
Not taking sides here.
filmgirlcw
yesterday at 2:55 PM
Someone else posted his site to HN, not Simon. He responds with additional context and also responds to links to other HN comments he’s made rather than just linking back to his own site. The only person gaslighting here is you.
monster_truck
yesterday at 2:59 PM
maybe chill out dog
bingemaker
yesterday at 2:30 PM
[flagged]
bewareofscams
yesterday at 3:43 PM
I share the sentiment of the parent (downvoted) commenter.
infecto
yesterday at 2:34 PM
I just tune out every post that says “I wrote about this already” and then links to it. Simon is great and kudos for his self promotion but it’s interesting to see as it’s often called out for anyone else.
The guy is good but he certainly stretches the limit. I just auto ignore his stuff but I know others enjoy!
satvikpendem
yesterday at 3:35 PM
I don't get how this is different from Codex if Codex can do all the same things.
simonw
yesterday at 4:25 PM
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.
As someone who uses ChatGPT and Codex across desktop and phone and VPS, the current topology they have for their different "apps" is very confusing and disjointed. I would really like to see improvements in unifying this and reducing the confusion between what works in which part on which device and enabling seamless context and memory sharing across them.
> 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.
It even shares the same login state and conversation history with /resume, at least when running it in a "project" (which seems to largely map to a directory/repo, at least the one selected as "primary"?)
satvikpendem
yesterday at 4:43 PM
If I use Codex in one session on desktop can I then resume it for cloud and mobile sessions as Work? Or do I have to make separate sessions each time? Or rather, can Codex in the cloud do the same things, if such a thing exists?
darepublic
today at 1:09 AM
Some of these work tools can slow things down and waste plentiful tokens
enraged_camel
yesterday at 2:34 PM
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?
adrianwaj
today at 4:15 AM
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.
simonw
yesterday at 2:42 PM
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.
tsunamifury
yesterday at 3:32 PM
This can be replaced, you just have to do the work of building a design library yourself and the guidance components. Then building skills around their use.
Almondsetat
yesterday at 3:52 PM
Because most AI generated websites are from people who don't know much and as such cannot even articulate the look they want
left-struck
today at 12:38 AM
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.
newswasboring
yesterday at 3:02 PM
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.
simonw
yesterday at 4:16 PM
I told it "Design aesthetic should be technical docs, minimal flare" - full prompt here: https://news.ycombinator.com/item?id=49504625#49505116
verdverm
yesterday at 6:41 PM
nit, the LHS menu does not scroll until I get the the very bottom of the main content, it should scroll independently so I can see the "ToC" in full without having to view the page in full
simonw
yesterday at 9:21 PM
Thanks, I passed that on to ChatGPT Work, should be fixed now (I'm on mobile so haven't tried it on desktop yet.)
montroser
yesterday at 9:21 PM
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.
sundancegh
today at 1:01 AM
[dead]
hnmu4c5zar
yesterday at 3:20 PM
[dead]
hnhvkm0w0p
yesterday at 4:15 PM
[dead]