248.md

July 10, 2026 · View on GitHub

[00:00] Christopher David: Folks, today is my birthday. And I know I seem like a spritely young 30-year-old, but no, I'm 40 today. Um, I'm kind of old. I'm too old for my day-to-day software changing around a bunch of times, okay? I want it to be predictable and like work, especially if I'm using it to do stuff.

Screen: Christopher David is on camera in a small inset. The main background is the ChatGPT Codex desktop application interface, showing various projects like "SOL MAIN", "TERRASPRINT 2", and "OpenAgents". He is currently looking at a list of edited files and a chat history.

[00:22] Christopher David: Uh, what is this doing? You can't find the thread that you're in right now? So, what prompted this video, even before this particular error, is um, you know, I open my app and like it's a new name and it's a new everything and like... things are changing. Maybe they're better. The models are great, 5.6, great job OpenAI.

Screen: Red error messages pop up in the Codex app: "Error creating task: Thread not found: ..." He clicks through the sidebar menus.

[00:49] Christopher David: I did some chat where I had like all these 5.6 super-duper sub-agents going on Ultra, and then I couldn't find the chat. Like it wasn't spinning up here. Juggling between accounts was like, okay. "Show pet"? Do I want a pet right now?

Screen: He navigates the settings menu. A small animated robot icon labeled "Codex" appears in the corner.

[01:16] Christopher David: "Hi, I'm Codex." Oh, great, I've got one of these things. All right. So what I would like is software where I can expect that it does certain things and then those things don't change. Part of why I've enjoyed Codex is that it's been open source. Now, the terminal is open source. Uh, the desktop app is not open source.

Screen: Christopher closes the settings. He switches tabs between the app and a browser window showing GitHub issues for the openagents-ai/openagents repository.

[01:45] Christopher David: I went to use the terminal app today and the sub-agents like don't show well in the terminal. I don't have it here because this was a single chat but like, apparently the TUI has fallen behind the desktop app. You kind of like need to use the desktop app to see what the sub-agents are doing. The desktop app is leaving some things to be desired.

Screen: He's browsing X (formerly Twitter). He shows a post from "Theo" stating, "fwiw, I think that turning Codex into ChatGPT Desktop is a generational fumble."

[02:23] Christopher David: Brand monger culture person "signil" says it is indeed very, very confusing. Multiple brands, multiple flows, deprioritizing consumer to some extent, tasks vs. chats etc. So I'm not even going to comment on all of that because I'm only their target audience probably for one dimension, which is code.

Screen: He scrolls through replies on the X thread. One reply from "Tibo" says, "We will continue to make tweaks and we have a TON coming for developers."

[02:39] Christopher David: But the problem here is that if you're building the one interface to AGI and it's closed source—I mean, that's big problem number one. It's cool that the underlying internals are open, but like, I can't use your one interface to AGI if it shifts around, if it's not extensible in the ways that I need it to be. Like it'd be great if I could go in and hack it up to my particular needs, but I can't do that.

Screen: Christopher continues scrolling through the X thread, then switches to a browser tab showing the OpenAgents desktop app, which has a simpler, dark blue UI.

[03:04] Christopher David: They're clearly prioritizing the desktop app. So I guess this gets back to some of my original critiques of OpenAI from earlier on. We need to do open versions of what OpenAI is doing.

[03:22] Christopher David: Okay, so here's what I want. I've been shifting our kind of Khala code ideas into a new desktop app, we're just calling it the OpenAgents desktop app. Just going to do it in Electron, the same as the Claude and OpenAI apps are. It's going to be all—it is all open source in our main monorepo.

Screen: He switches between the OpenAgents desktop app and its GitHub repository (OpenAgentsInc/openagents).

[03:47] Christopher David: So here's what I want for myself and others to know: that there's certain kind of contracts, covenants, promises—we've called them promises so far—that govern like what you can expect to happen when you go to the app.

Screen: He opens a browser tab for openagents.com/promises, showing a "Human-Readable Forum" titled "Product Promises". It's a grid of various technical "claims" with status indicators like "GREEN" or "FAILED".

[04:08] Christopher David: So we've got this idea of product promises. We did a whole video on this about like, "Here's the things that we've said we want to build and here's the current status of reality of the current codebase." And then we've started extending that to like user-level, like UX contracts.

Screen: He searches for "ux" in the GitHub repo and opens a file named khala-mobile-ux-behavior-contract.md. The file lists "Rules" for app behavior.

[04:36] Christopher David: We have an idea called UX contracts where like, "Here's what you expect to happen in different things. When I click this button, this happens." And this is all kind of aimed at agents. Get this freaking thing out of here. Goodbye. Move. I'll just demo you over here.

Screen: He drags the "Codex" robot assistant out of the way. He continues scrolling through the khala-mobile-ux-contract.md file.

[05:02] Christopher David: I'm going to bring this down even further to the level of like, the most basic version of this. Here's what I want, and this kind of addresses my issue from earlier today where like I could not find this chat.

Screen: He switche[118;1:3us back to the dark blue OpenAgents desktop app. He points to the empty sidebar on the left.

[05:16] Christopher David: Here's what I want: as soon as I open OpenAgents Desktop, if I have Codex like on my machine, if there've been any Codex chats in the last 24 hours, let me see a list of them on the left side. Okay? That's what I want.

Screen: He switches back to the ChatGPT Codex app.

[05:37] Christopher David: So let's go see if we can use Codex for this. All right. Let's make a new chat. "Hide pet," thank you, goodbye. All right, I'm going to make a new chat. First of all, look: where's my new chat button? "New task"? Okay, they call them tasks now.

Screen: He clicks "New task" in the Codex sidebar. A prompt appears: "What should we build in work?" He selects "work", "local", and "main".

[05:59] Christopher David: "Work" is my workspace. Um... All right, I'll stay on Terra for fastness. Okay, so: "In openagents repo, find the product..." And then this thing, this notification about MCPs. I've got seven of them that are like old and then it pops up this message like multiple times. Thank you.

Screen: Red error notifications about "Reconnect moneydevkit-account" appear and he dismisses them. He types into the prompt: "In openagents repo, find the product promises and UX contract info, summarize that idea here".

[06:30] Christopher David: Okay. Can I zoom this in? And collapse this. Oops. All right.

Screen: He zooms in on the Codex chat. The AI responds: "Working for 2s... I'll trace the OpenAgents product promise and UX-contract sources..." It shows a live feed of the terminal commands it's running, like rg --files and reading specific .md and .ts files.

[06:48] Christopher David: Take a look at the new OpenAgents desktop app. Right now we have I don't know, some hardcoded junk in the left sidebar. I want to make that load the most recent Codex chats for like from the last 24 hours and just the basic metadata on them.

Screen: The AI provides a detailed summary under the heading "The core idea is: OpenAgents treats product claims and UX expectations as contracts, not marketing or informal design intent." It lists several principles about promises having states (e.g., "Green" means implemented).

[07:06] Christopher David: Clicking on them should also show just like some basic data about the thread and most recent messages in the main view. We'll flesh that out later, I just want this basic thing in place. I want you to also go review our information about the QA swarm and everything around like enforcing that the app interfaces do what we expect them to do.

[07:36] Christopher David: Pre-release gates should have things working programmatically, ensuring they do what we say they're going to do, down to the level of the UX contract called: "When I open the app, if I have Codex installed on my machine, I want to see a list of all of the chats." Maybe not all the sub-agent chats, like just the high-level chats if there's a bunch of weird 99... one of my chats had like 99 sub-agents so I don't want to see every sub-agent chat.

Screen: Christopher David uses a voice-to-text tool to input these detailed requirements into the Codex prompt. The tool is visible as a small overlay named "AQUA".

[08:56] Christopher David: Okay, so while that goes, let's take a look at a couple of things. So episode 246 and 234.

Screen: He switches to a browser tab showing a list of videos. He opens a link for "Episode 234: Product Promises" on X. It states, "We release a verifiable way to check if the live OpenAgents platform does what we say it does."

[09:30] Christopher David: So there's like a big ass list of promises there. The agents.md file explains how to interact with it and then since then we also added a forum. We've got this UI over here that's all messed up, I've got to improve this.

Screen: He shows the promises page on openagents.com and then navigates to openagents.com/forum, which has a retro bulletin board style. One topic is "Independent audit of all 10 green promises".

[09:59] Christopher David: Really great stuff. Just a way to hold us accountable and also help like inform our roadmap to make sure that everything gets built. Okay, and then kind of applying that idea more proactively to deployed software, us and others, let's have a QA swarm.

Screen: He switches to an X post for "Episode 246: Dogfooding Khala Code" mentioning "We design a 'QA Swarm' for automated quality assurance and testing." He then switches back to the OpenAgents desktop app, which now shows several "Pixel-proof" chat rows.

[10:16] Christopher David: Oh, we have an issue. So yeah, point a swarm of QA agents at your product and get proof it works. A coordinated fleet of autonomous QA agents drives your app through a real browser, a real terminal, and on macOS the real native window. Okay, so some combination of these ideas I want to apply to my specific use case right now of doing this one thing.

Screen: He switches to the Codex app. It has generated a GitHub issue: "#8653 - P0 Desktop: show recent top-level local Codex chats with contract-gated thread detail". He prompts it: "Go build that on a new work tree and push it to main, and then open it and test it. Do it until you can complete the issue."

[11:04] Christopher David: Okay. Replace the OpenAgents Desktop sidebar's app-local five-thread JSON placeholder with a read-only projection of the user's local Codex chat history. At app launch, show the high-level Codex chats updated in the preceding rolling 24 hours, newest first.

Screen: Christopher reads the detailed requirements of the issue in the browser. The Codex app shows it's "Working for 1m 28s" and lists the files it's editing and commands it's running.

[11:39] Christopher David: User contract: create the first app-owned OpenAgents desktop UX implementation/seam contract. Eg. openagents_desktop.seam.codex_recent_history_projection.v1. When local Codex history is available, opening OpenAgents Desktop shows every top-level Codex chat updated in the last 24 hours...

Screen: Codex reports an error: "The real Electron smoke still crashes before renderer load with SIGTRAP...". Christopher prompts it: "Well fucking fix that right now. I don't give a shit. Fix it until it opens."

[12:31] Christopher David: I'm confirmed the local Codex format is JSONL with timestamped typed payloads. I'm now adding a conservative adapter. It only projects top-level metadata plus user/assistant text, ignores unknown child/side sessions, and leaves the renderer with no filesystem access.

Screen: Codex continues working. It shows progress like "I isolated the crash... splitting the bridge into lightweight sidebar summaries and per-selection detail".

[13:34] Christopher David: Use a documented typed schema projection for the exact supported local record shapes. Do not expose raw JSONL. Fine, let's keep reading.

Screen: He scrolls through the detailed technical scope in the GitHub issue. He switches the model in Codex from "Terra" to "Sol".

[14:03] Christopher David: "Effect Native Desktop UX". Oh, we got to do a separate video on this. Effect Native, okay? You heard it here first. Effect Native.

Screen: He searches for "Effect Native" on GitHub and finds the repository OpenAgentsInc/effect-native. It's described as "A framework for building native applications using Effect."

[14:30] Christopher David: That's going to get its own video. Maybe its own website. I did get effectnative.org. All right.

Screen: He returns to Codex. It reports: "Implemented and pushed to main: 4f0b1e84de... 102 top-level chats found without exposing content." Christopher prompts it: "Fix that now until it opens." The AQUA voice tool is active again.

[15:34] Christopher David: I found the black-screen cause: boot was waiting for full selected-thread hydration before mounting the renderer. I'm moving all thread reads behind the first paint. Metadata sidebar renders immediately, then five messages arrive, then the expanded tail hydrates without blocking the app. Why didn't you do that in the beginning?

Screen: Codex reports: "I isolated the crash... Desktop launches when pointed at an empty history root." Christopher restarts the OpenAgents app. It now shows a sidebar with a list of "Untitled Codex chat" items.

[15:55] Christopher David: Hey, local Codex history. That seems like a stub fake fixture. There we go. That looks more familiar. Get that spinning beach ball out of here.

Screen: He clicks a chat. A "loading" spinner appears briefly, then the chat content is displayed. He's clearly pleased.

[16:22] Christopher David: See, don't these chats look good in an actual desktop app that doesn't look like this brown goop? Brown basic bleh.

Screen: He compares the OpenAgents app's clean UI to the more cluttered ChatGPT interface. He notices some issues in the sidebar.

[16:34] Christopher David: The first paint fix is in. The real smoke now reaches shell-mounted before any thread detail work begins, which removes the blank-screen startup dependency. I'm cleaning the temporary diagnostics, running the focused gate and pushing this host/hydration repair.

Screen: He types into Codex: "Why are all of them listed as untitled Codex chats? That should not be accurate... SEE A BUNCH OF NAMED CHATS... FIX IT".

[17:16] Christopher David: I ran "oa" to boot the app from main checkout and see none of your changes. Did you merge to main and shit? Do that and then run "oa".

Screen: Codex responds, explaining that it intentionally didn't pull over uncommitted work. It then reports: "Fixed and restarted oa from updated main... 6/8 recent top-level chats resolve to their real Codex names".

[17:48] Christopher David: Okay. Still the old one.

Screen: Christopher opens the OpenAgents app again. Some chats now have names like "Product Promises" and "TERRA SPRINT". He notices a "loading recent messages..." placeholder that remains visible.

[18:08] Christopher David: Looks good, but it shows loading recent messages always for everything, so remove that. Remove the message icon on the left sidebar per chat. Show a condensed timestamp like "now", "3m", "6h" etc. on the right side of each chat.

Screen: He provides this feedback to Codex. Codex reports: "I'm using the UI skill for this sidebar refinement... keeping titles stable, remove the per-row chat icon and persistent loading copy...".

[19:05] Christopher David: When I get this optimized, it's going to be good. Then I'm going to add in the like Starcraft kind of key binding, make sure it's like clicky and fast. Hotkeys. You can see why these things burn so many tokens. Just doing a ton of stuff.

Screen: Christopher scrolls through the final changes in the OpenAgents app. The sidebar now looks very clean, with names, relative timestamps, and no extra icons. He opens the "Product Promises" section again.

[19:51] Christopher David: All right folks, we'll leave it there. Give it a try. This will hopefully turn into something really cool product-wise in a day or so. See ya.

Screen: Christopher gives a thumbs up. The video ends.