ChatGPT Space is a newly launched collaborative workspace within ChatGPT and Codex that allows software engineering teams and their active AI agents to work together in real-time.
Connect with Andrew on X.
TRANSCRIPT
Ryan Donovan: If solving difficult problems is what drives you, Raytheon is hiring software, systems, and hardware engineers to take on some of today's most complex technical challenges. Explore opportunities at careers.rtx.com/raytheon.
Ryan: Hello and welcome to the Stack Overflow podcast, a place to talk all things software and technology. I'm your host Ryan Donovan, and I'm here at the OpenAI Dev Day 2026. We're going to be talking about the new unified ChatGPT work app, and also something new they announced today. So, my guest for that is Andrew Ambrosino. He's a member of the technical staff here at OpenAI. So, welcome to the show.
Andrew Ambrosino: Thanks for having me.
Ryan: Of course. So, before we get into it, can we do a little flyover of how you got into software and technology?
Andrew: I mean, I grew up with all sorts of this stuff as a kid.
Ryan: Yeah.
Andrew: Did a lot of early website developments when I was in high school. Got a degree for computer science, did a lot of design, and now I'm here. And I work on the desktop app, I work on Space, work on Codex, all great things.
Ryan: Yeah, I think there was a... I don't know if outcry is the right word, when the ChatGPT app and the Cowork app merged together.
Andrew: Mhm.
Ryan: I think Codex merged with that too, is that right?
Andrew: Yeah.
Ryan: What was the sort of reasoning behind that?
Andrew: Where we want to go is to build one place that you can come, and type in what you need...
Ryan: Yeah.
Andrew: ...Or speak what you need, and have our most powerful models and artists put that together for you. And that's across software development, that's knowledge work, that's quick questions and answers.
Ryan: Yeah.
Andrew: And you shouldn't have to worry about how much reasoning, or which mode you're in in all of this. And so, that's kind of what has been in our heads as we've tried to take ChatGPT as it has existed for years...
Ryan: Yeah.
Andrew: ...With over a billion consumers, and then this Codex app that was really taking off at the start half of this year.
Ryan: Right. And then the Codex for work app, which was sort of Codex...
Andrew: Yeah.
Ryan: Was there something different with it?
Andrew: ChatGPT Work was us bringing all of the power of the Codex harness to a broader audience. Both through the brand, ChatGPT, that people were very familiar with, but also through taming some of the raw nature of the coding agents.
Ryan: Yeah, yeah.
Andrew: And like, you know, things that just kind of get in the way of it feeling nice to use day to day for a lot of people. So, that's been ChatGPT Work. It's been wildly loved. There was a bit of a, you know, a lot of thoughts about how we might merge the apps, and we're certainly not done there.
Ryan: Sure. Yeah. Because it's still two tabs right now.
Andrew: Yes.
Ryan: Something interesting I noticed, I was using it the other day, and it was like, ChatGPT did this huge complex thing, it's like, you want the other tab. I was like, that's interesting, to have it have that logic built in.
Andrew: Yeah.
Ryan: I don't know if it's the logic or if it's the model.
Andrew: The in variants for us are that, type in chatgpt.com and you type in something that needs a quick answer, you need to get it right away.
Ryan: Yeah.
Andrew: And on the other side of the house, if you want to build this giant thing and you need the best of Astra and the best of Codex, you need to be able to do that.
Ryan: Yeah.
Andrew: And the minute we feel like it's the right time to make this continuous spectrum that can do both of those without a toggle, we are going to do that. In the meantime, we're not going to shove these things together before we can deliver on that promise, right? We're not going to say, hey, everybody's got this, like, long thinking, reasoning trail of Codex, when they're trying to get a search result.
Ryan: Yeah. The press conference, there was sort of a hint at future model routing being built in. Do you do any of that now?
Andrew: You know, we have a history with the routers in ChatGPT. We've tried certain things multiple times. But we've got a lot of really cool things coming here. I think that's what I find myself wanting, is not to touch these things.
Ryan: Yeah.
Andrew: Wanting to see code when it makes sense and not when it doesn't, right?
Ryan: Everything operates in the browser, right? So why a desktop app?
Andrew: Yeah, this has been an interesting one because people just don't download that many desktop apps anymore, right?
Ryan: Yeah.
Andrew: Ours has been a wild success. I think the big part has just been some of the breakthroughs on computer use. Some of the advantages that, locally running agents, especially the first half of this year, writing code on your computer with your files and your git checkout, and clicking around in your browser to test the results, right? This is something that is a lot easier to do with the desktop service that we have, and we kind of break out of the box that the browser gives us.
Ryan: You know, just because of the security system on my laptop, that Codex specifically uses a lot of Node.js calls.
Andrew: Mhm.
Ryan: That wouldn't really be possible in a browser, would it?
Andrew: We've had this multi-layered system where we've got the Codex harness, which is open source, running on your computer. We're able to do things like this, right? That we wouldn't be able to do in the browser. And then, you know, today we're taking that, we're bringing a cloud version of Codex back into the fold. So that, you on the browser now can use Codex in the cloud environments. Codex Cloud can use your computer if you're like, hey, I've got this checkout on my computer, I don't want to wait for you to set up environment.
Ryan: Yeah.
Andrew: It'll just use your computer, which is pretty neat.
Ryan: When you say use your computer, use your computer outside of the browser? Or within the browser?
Andrew: If you've got the desktop app open, it can serve as kind of a bridge to your computer and your browser.
Ryan: Yeah, I was going to say, you're breaking out that V8 sandbox there, right? (Laughs)
Andrew: (Laughs) Sandbox is very important.
Ryan: Yeah. Is there any sort of thought for inbuilt sandboxing on the desktop app?
Andrew: We were the first to have, like, a relatively functional windows sandbox. That was a pretty hard one.
Ryan: Yeah.
Andrew: And we've been working with a few parties on that. We've got a few things in the works.
Ryan: Yeah. I mean, I know there's a lot of talk about it, a lot of companies that will sell you a sandbox.
Andrew: Mhm.
Ryan: So, for the new thing announced today that you're part of, the spaces, what's the change from the desktop app?
Andrew: We've found ourselves bouncing between a lot of different tools all day long, right?
Ryan: Yeah.
Andrew: Sending stuff on Slack, or jumping into these other tools.
Ryan: The way it's always been. Right.
Andrew: Yeah. And connecting over MCP, and hoping that the MCP is good, to certain software, right?
Ryan: Yeah.
Andrew: And we wanted to build a fully collaborative workspace within ChatGPT and Codex. And so we've launched ChatGPT Space, which allows you to make a spot for you and your team to collaborate in real time, both with the other people in your team, and also everybody's agents that are running and everybody's dots that they now have. There's some really cool aspects to this that I'm happy to dive in about, but we really found ourselves wanting to close this loop a little tighter as we were working together all day long.
Ryan: You know, everybody is talking about multiplayer AI right now.
Andrew: Mhm.
Ryan: It's a big one. But, I think when they talk about it, they sort of envision, like, a group chat or a shared terminal or something.
Andrew: Yep.
Ryan: This is a little different, right?
Andrew: It's a little bit different. With space, we're focused a lot on, you know, you've got your agent chat that has your own memory, that's built in, and your own tools and your own preferences, and you might be using that to collaborate with other people on artifacts, like pages, or like sites, or other types of docs that we're bringing to this, like slides.
Ryan: Right.
Andrew: And this allows you to collaborate on planning. For, if you're doing a big feature and you want to align the team up front, we've got this really great live pages format. What we're not doing right now is bringing people into the literal same chat that you have, and having to fight over who's talking to the agent.
Ryan: Right.
Andrew: Whose connectors are you using, and whose memory are you using? And, you know, a lot of times what happens with those is, you end up with the lowest common denominator on the connections, right? And so we're saying, hey, you're going to work with your agent on collaborative stuff with the rest of the team. And your dot to work on these artifacts.
Ryan: What was the sort of technical complexity you ran into with like, inviting everybody else to collaborate with a single agent?
Andrew: Yeah. I mean, we built a full-on, like, CRDT system in five, six weeks? Which is... Probably would have been unheard of months ago.
Ryan: CRDT is what?
Andrew: Yeah, it's basically, you know, you've got these real-time systems where you're collaborating on docs character by character, and you need live cursors, and you need it to be able to handle, like, little blips, and offline status and things of that nature. We built that out. I think a lot of the stuff that we spent time on, too, was, how does this feel with the agent in the loop? Right?
Ryan: Yeah.
Andrew: And can I tag in my dot by name? And say, hey, you know, I'm writing this document now, and right here, I want you to drop a graph of our weekly users. And have the dot go off, do the research in your systems, come up with a live chart that's interactive. And drop it on the page, and show you, kind of, where it got edited, and then iterate and say, hey, I don't like this exactly the way it is, can you redo it?
Ryan: Yeah.
Andrew: And then have someone else come in, and... Like a lot of this was really about the interaction design, too. You know, it's a little bit product design, it's a little bit technical. It's like, how do you make this feel right?
Ryan: The technical details of that sort of real-time interaction, I think, can get complicated. Like, somebody who is our chief product officer used to work at AOL. And when they introduced the three dots that they're typing...
Andrew: Mhm.
Ryan: ...It crashed the servers.
Andrew: Yeah.
Ryan: Because every time you did a key press, it sent a message, it pinged everybody else, pinged the servers. So I wonder how you thought about and implemented that sort of like, constant interaction.
Andrew: We've got a great infra team that's scaled out ChatGPT to over a billion users daily. We're getting pretty good at this. I think that, you know, there were a lot of hiccups along the way. These things aren't something that you build by yourself in an afternoon, right?
Ryan: Yeah. Yeah.
Andrew: Even with the most capable models. I think, though, a product like this really was only something that unlocked with Astra. Every model that comes along for us unlocks a certain size of project and speed of project, and this was one of them, that Astra was really kind of the first time that we felt like we could move fast enough on something like this to deliver a great experience.
Ryan: Yeah.
Andrew: There was also, like, the question of, if you've got multiple agents that are also collaborating with you on a doc, that multiplies the load.
Ryan: Sure.
Andrew: Potentially. Because even something that would have been a single-player doc, that you could have much of the pipeline being local on the edits, all of a sudden you've got this cloud agent that's also collaborating with you on the dock, right? So you're dealing with kind of a multi-agent world. Yeah.
Ryan: You know, it's the agents, which one responds to what?
Andrew: Exactly.
Ryan: And then the updating. It's like, does everybody have the same view at every time?
Andrew: Right.
Ryan: Was that ever an issue?
Andrew: It's funny, like, a lot of the stuff here that we built reminded me of the computer use stuff that we introduced to Codex maybe six months ago. The cursor being a great example. So, one thing that people have really loved about Codex computer use is it's got this really fluid, smooth cursor that...
Ryan: Yeah. Yeah.
Andrew: ...You know, runs around the screen. And if you think about it, that cursor is largely unnecessary.
Ryan: Yes.
Andrew: The model does not need that. Like, we are making up a cursor.
Ryan: Sure.
Andrew: And in some cases, it might even add a little bit of latency, right? Because, you know, you're smoothing out the animation as the cursor comes to a button. Adds a few milliseconds here and there, but it's... Something about it, it makes you able to feel it, and it internalizes, like, what's going on here? And so, the same thing happens here, which is that the model... You know, you give it tools to edit these pages. And one might be, let's say, find and replace, right?
Ryan: Yeah.
Andrew: And so it's like, alright, can find and replace stuff over a whole doc.
Ryan: Yeah.
Andrew: But you really do want to add a slight, like, you know, animation, so you can say, oh, these five things just changed and you can kind of feel it, right? You add that on top. It's like a bridge from here to there.
Ryan: I've heard that described in a game design article years, maybe over a decade ago, being juicy. You know, solid interaction design.
Andrew: Right. Yeah. And it's stuff that's, you know, not obvious until you're having an agent edit a doc alongside of you. And it's, you know, text is changing, and you don't see what's changing, and things are jumping a little bit, and it's like, it's not right.
Ryan: Yeah.
Andrew: You have to play with it for a long time.
Ryan: So besides having the, like... The little things that make it just kind of feel better, what were the major concerns with, like, the interaction on this multiplayer space?
Andrew: That was a big one, obviously. How cursors behave in a document like this. There's just a lot that goes into this stuff. And, for example, if you are tagging your agents in a bunch of spots in the doc, you want copies of it to work in parallel. You know, you don't have to wait for this change before this change, before this change.
Ryan: Right. Right.
Andrew: But then, how do you get back to these things, right? The agent needs you to reply to it. Are these all separate threads, or are they the same thing? Right? So we've played a lot there, and we'll probably iterate even more as we go. We've played with this a little bit with the dots, and we've got these amazing renders now, of your personal assistant, right?
Ryan: Yeah.
Andrew: And it's, you know, we tried attaching those to the cursors, and it's a little bit busy, but... I think, you know, we're going to play with this a lot. This is not the final version of the product. Like, we're going to be doing a lot here. I come from the startup world. Like, this is the only way I know how to build, is just to put something out there. And I think we have a damn good V0 here. But I just, I can't imagine, like, not coming back week over... I mean, this is how we were when we launched the Codex app back in February. We did Codex Thursdays for a long time.
Ryan: Yeah.
Andrew: Where it was just, every single week we were just like, we've added this, we've fixed this. Like, tell us what you want. And we just kept going. And I think that's a big reason why it took off.
Ryan: Yeah. It's a nice looking desktop app, right? Like, it's almost like the iPod moment, right? You have something that is easier to use, good to look at. How much did that factor into, like, the thing you were making?
Andrew: A lot. And we were simultaneously designing ChatGPT Space, same time as dots. At the same time that we're rolling out this new sidebar. At the same time that we were completely rewriting ChatGPT for the browser as well.
Ryan: Sure.
Andrew: So we're doing all of these things at the same time. And so there was a lot of iteration on, like... This version of sidebar is not going to work for these two products that are coming out, that are also themselves being iterated on in real time. So, I mean, I think we had over 20 launches today, and all these things are happening at the exact same time.
Ryan: Right.
Andrew: There's no grand design for when they're going to be on desktop. They kind of come together, and the spiral gets a little tighter as we get closer. But my team that works on the desktop app has been involved in all these launches. And this app that we try to make feel very simple has so much in it.
Ryan: The speed of development is definitely a big change. Like, we were here talking about Stack Internal and how we built it with Codex.
Andrew: Yeah.
Ryan: And built it super fast. But I wonder, like you said, you're doing Codex services, all these things you're putting in it, is it too fast for folks like me to catch up with?
Andrew: You know, our goal is always to make things that feel easy to use, that feel agent native. So, you know, even if you don't know that we put out this multiplayer pages document type, right?
Ryan: Yeah.
Andrew: If it's easy for your agent to use, next time you ask for something to be written, it uses it and you're like, wow, this is great. I didn't even know about it, but it's built in, it's smooth, and now I do, right?
Ryan: Yeah.
Andrew: To your point, like, I do think we've entered an era where software can be built so quickly that it's going to be hard. And there will be things that we will have to slow down. Pace, to use the word. But like, just on the software side, too.
Ryan: Yeah.
Andrew: Like, you don't want a new feature every day.
Ryan: Yeah.
Andrew: And, I think shaping these things as they come out is going to be a big challenge. If everyone at your organization has tokens to just make anything that they want, like, consumers and even prosumers can't bear that, right? It's too much.
Ryan: It's just overwhelming. Yeah.
Andrew: Yeah.
Ryan: With your sort of focus on, like, the smoothness of the cursor, and the, like, making it look good, the interaction design, there's a level of judgment and taste that you need to apply to that. And hopefully AI is not going to take that from us.
Andrew: Hasn't yet.
Ryan: Hasn't yet. (Laughs)
Andrew: No, I do think a lot of times this is the bottleneck for us, too. We've got all sorts of explorations, and it's the judgment taste that says, okay, these three can shape together in this way. And like, this one over here, well, it's not quite there yet.
Ryan: Right.
Andrew: I think that's the big challenge.
Ryan: And with the speed and ease of creating things, the taste is both going to be more valuable and harder to apply, I think. How do you think about making something, Spaces or the unified app, desktop app, like, a tasteful, good experience for a user?
Andrew: Well, I think the most important thing we do at OpenAI is, we use everything ourselves a lot, right?
Ryan: Yeah.
Andrew: We're a big company now, and we try to be very honest about the product market fit we have internally before we put things out. If it's not there, then it's important for us to not say, oh, well, you know, somebody else will like it, right? Because you can rationalize anything.
Ryan: Sure.
Andrew: And be like, well, it didn't work in here. But we really try to keep ourselves grounded, and like, is this something that everybody internally is loving?
Ryan: Yeah.
Andrew: And if not, like, what gets us there?
Ryan: Yeah. And I think for some of the developers listening, they don't really care about the prettiness or the comfort of the interface. They're just like, raw terminal folks. You're not pushing them out of their terminal, are you?
Andrew: No! No. I mean, I love my terminal.
Ryan: (Laughs)
Andrew: Today we have a brand new refresh for the Codex CLI. Like, we love the terminal. I think we find a lot of things easier to work on in the app, but the terminal is not going away. It never has. It has been decades that the terminal has not gone away.
Ryan: (Laughs) Yeah.
Andrew: And has even had a resurgence this year.
Ryan: Sure.
Andrew: With all of the products that are terminal-first, right? Like, not going anywhere. I think that there is a lot that we want to do, that requires richer display of different threads that are growing at the same time, or interactions with documents, or things of that nature.
Ryan: Yeah.
Andrew: But I know that people really push the terminal farther than I always think it can go.
Ryan: How much of the harness is just sort of given to you for the app, and how much do you sort of work with?
Andrew: One of the things that has made Codex very successful is that we, between the research team and the core agent harness team and the product teams that put out the final product, we work together really closely.
Ryan: Yeah.
Andrew: And I think that's one... you can kind of see that. And there are, like, a lot of ways that this plays through with how... Like, code mode, for example, right? This is a harness concept where the model can write itself code ahead of time. It really makes a huge difference for things like computer use. Where instead of inferencing through every individual step, it's like, hey, I'm going to do these next five steps. And I'm going to get the input of this, and put it into the next step, right? And that's just something that's like, we don't talk about it a ton. You don't really see it on screen. But it makes a huge difference for speed and token efficiency.
Ryan: Yeah.
Andrew: And all of this stuff. I think we're going to see another jump as more and more people use ultra fast. In... When the model works in certain ways, it unlocks things you can do in the products that you couldn't do before. Not because they were technically impossible, but because they felt bad.
Ryan: Mhm. Are there parts of the harness that you've shaped, or you feel like, you gotta change this for me? Or that you push PRS to?
Andrew: Before we had skills, I wrote a bunch of crap into the dev prompt to make the app work properly.
Ryan: (Laughs)
Andrew: Which... Research never likes that. Now we've got plugins, right? You know, we also released a feature called Teams today. That can all get released as a plugin. It's super easy to extend the core harness, and to do these other things without taking impact on the performance of the model.
Ryan: How embattled are those system and dev prompts?
Andrew: These days, they are quite optimized. And the research team, they take a hard look every time there's a new model. And we've got processes for this. So it is no longer a YOLO experience to change it...
Ryan: (Laughs)
Andrew: ...As it maybe once was in the early days.
Ryan: Yeah.
Andrew: But yeah, I mean, early in the ChatGPT days, you'd be like, well, I want chat to occasionally use a writing block, so I'm going to tell it to use this syntax when a writing block should appear. Right? And all of a sudden you look back, you know, a year or two later and you're like, wow, this thing is full of a ton of stuff, right? And so I think, of the Codex harness is kind of a generalization of a lot of those lessons, where, there's a standard way to register tools, and there's a standard way to render those tools, right?
Ryan: Yeah.
Andrew: And that that helps a lot with doing rigorous evals and all of the things that we do nowadays.
Ryan: When Open Claude came out, people were buying new machines and they were like, YOLO, it can access everything on there. How do you keep somebody's system safe from a desktop app?
Andrew: In which way?
Ryan: If it's not default sandboxed?
Andrew: Yeah.
Ryan: But, like, it can do computer use.
Andrew: Right.
Ryan: It can check out your browser, it can write scripts for itself.
Andrew: I think one of my favorite features we've released in the past, probably six months, has been "approve for me." Which is the process of, essentially a separate copy of the model, that's running on the tool calls. To judge whether it's a safe thing to do. Or, even if it is safe, is it what the user asked for? Or is it something the model is just, like, going off the rails with? And so there's that. The models are also, they've become quite good at understanding this. And so there have been times where, I have asked vague prompts to pull out a Slack.
Ryan: Yeah.
Andrew: And it's been like, I don't think that I should share that with these people, right? You know, I here and there have been testing something, and I dropped an API key into the text box.
Ryan: Oof.
Andrew: And it's like, please go revoke that key now.
Ryan: Yeah.
Andrew: Like, now it's in the rollout file. Like, so we've gotten quite good at this stuff. There's some features that we've had to hold back, right? Like, certain types of delegation, you don't want a non-privileged process to be able to delegate to it. It's something that we take quite seriously. We've really staffed up the security side of the house here. We have a huge security team now that is phenomenal. I think people have really loved this Codex remote control product that we have out there.
Ryan: If I have that, can I deterministically, like, block certain actions?
Andrew: Yeah. Of course.
Ryan: Yeah.
Andrew: One of the nice things about the desktop app, too, is that you can be a little bit friendlier with the settings. Right? So if you're using Codex CLI, the way that you customize it to block certain websites or, you know, make an allow list of domains that browser use can use, is you get familiar with the Config.toml. And, you know, you type in, like, hey, this setting where you ask the model, hey, what would I type into the Config.toml to do this? Whereas in the desktop app, we just make a UI for this. And we're like, here are the websites that your browsers can use. And you know, we've got all sorts of elicitations that come out, so if you're using plugins, the first time it runs any app, it'll say, hey, do you want me to use Notes? And you can say, yes this time, or yes every time, right?
Ryan: Yeah.
Andrew: And we'll do that per application. Then you can always go back into settings and say, you know, I don't want you to use my Notes app anymore. We rolled out a bunch of those settings today with dots. That's our first motion. Is to say, hey, you know, we're going to assume that we cannot do something, we're going to ask. And then you can ask us to stop asking you. But that's not a default.
Ryan: I mean, people do.
Andrew: People do.
Ryan: The Spaces is sort of a different way to interact with the AI. When you were first dogfooding that, was there like, any sort of issues or surprises around that?
Andrew: My favorite type of product loop is the one where you can get into a flywheel, where you're using the product to make it.
Ryan: Yeah.
Andrew: Because then you really feel where it is great or not great, right?
Ryan: Yeah.
Andrew: In a way that if it's not for you, you say that you feel it, but you're not always able to be honest about it. One of the magical things that happens in the development of Space was that, I mean, the pages that are in Space can support anything that a regular chat thread, Codex thread, can do, and it includes blocks like the visualize block. And so we actually started to design the product in these pages, through these visualize blocks. And what's great about that is they're not static.
Ryan: Right.
Andrew: There's something that people can click through, and click on different tabs. And you can build skills around how to recreate these mockups so that you can do it really quickly.
Ryan: Interesting. Yeah.
Andrew: And then you can say, hey, make me five variations of this mockup and it will just drop them inline for other people to use. And the model, even, in these visualization blocks, is able to make them either single-player or multiplayer. So if you're sharing mockups, you want them to be single player? Why is that? So that if I'm clicking through it, yours isn't changing.
Ryan: Right.
Andrew: You should be able to click through the prototype yourself. But then of course, we can play chess against each other in these pages, because we wired the multiplayer in.
Ryan: (Laughs)
Andrew: So I think the visualization blocks on the page is something that's very unique to it.
Ryan: Man.
Andrew: And unlocked a lot in our development process. And then, of course, when we kind of were able to try out all of the options and say, like, hey, let's do this one.... You can just tag in Codex to build it.
Ryan: Hm.
Andrew: And put it in the real app, right? So it's... We got in this really cool cycle.
(MUSIC PLAYS)
Ryan: Thank you for listening, everyone. I've been Ryan Donovan. I host the podcast, edit the blog here at StackOverflow. If you liked what you heard, please leave a rating and review. And if you want to reach out to me directly, you can find me on LinkedIn.
Andrew: I'm Andrew Ambrosino. Many people like to reach out about the app. The best way to do that is on X, and just send me a DM.
Ryan: And where can they see the new Spaces stuff and find out more?
Andrew: That'll be live today in the ChatGPT desktop app, and on web.
Ryan: Thank you for listening everyone, and we'll talk to you next time.
(STACK OVERFLOW OUTRO MUSIC)
