Transcription: OpenAgents Episode 077 - Chat UI Buildout

June 9, 2026 ยท View on GitHub

Source: https://twitter.com/OpenAgentsInc/status/1758212579225219464 Wiki source: https://raw.githubusercontent.com/wiki/OpenAgentsInc/openagents/Video-Series.md Media title: OpenAgents - Episode 077: Chat UI Buildout A boring video in which we rebuild our ... Upload date: 20240215 Transcription model: mlx-whisper/mlx-community/whisper-tiny Generated at: 2026-06-01T19:02:27Z

Machine-generated transcript. Review speaker labels and wording before using this as quote-grade source material.

[00:00] Christopher David: Alright, we have the world's worst chat interface here. Let's make it an actual interface.

[00:07] Christopher David: I'm gonna be stealing code from myself. Did a super basic chat GPT kind of clone like,

[00:18] Christopher David: Oh my gosh, a year ago tomorrow. But I got a built this in Lairville using Tailwind

[00:28] Christopher David: and Lairville LiveWire, which I made and up using here.

[00:36] Christopher David: For now let's just get this, I mean not embarrassing.

[00:42] Christopher David: Let's make a kind of boring video. If you like UI hackin, then yeah.

[00:52] Christopher David: But yeah, it may as well show you what I'm doing. I also converted into the using Lairville's Tailwind

[00:58] Christopher David: now just using local stuff. So my URL is localhost. Eight down.

[01:05] Christopher David: I'm using SQLite. Alright, test your passing. Let's stab awkwardly at the end of it until we get what we want.

[01:15] Christopher David: And what I want just to keep restating it.

[01:22] Christopher David: I want to build an agent that can replace my day to day usage of chat GPT.

[01:30] Christopher David: It's more or less working, it's just not quite usable yet.

[01:36] Christopher David: But we're larger just now in the realm of UIUX. We've got the kind of components.

[01:41] Christopher David: Back-end stuff working.

[01:44] Christopher David: Okay. So I have this old codebase, this old Lairville codebase.

[01:51] Christopher David: That I'm going to steal some stuff from.

[02:02] Christopher David: I think I want to start from a clean slate.

[02:13] Christopher David: Let's see if the other codebase.

[02:18] Christopher David: Alright, so routes web, wish I put this.

[02:24] Christopher David: So I have an agent one right now.

[02:55] Christopher David: Well, I just just am hard-coded thing here.

[02:58] Christopher David: Let's do agent chat.

[03:24] Christopher David: Do I have that already?

[03:36] Christopher David: I do. Let's just call this old chat.

[03:49] Christopher David: Let's start by just stealing from this other codebase.

[04:16] Christopher David: I really want that.

[04:33] Christopher David: We use our existing app layout.

[04:44] Christopher David: Okay. So for the chat, it goes to main class.

[05:11] Christopher David: Which shows live wire chat main layout layouts chat.

[05:21] Christopher David: We'll start with the chat layouts.

[05:33] Christopher David: Okay.

[05:42] Christopher David: I'm going to need that stuff there.

[06:10] Christopher David: Okay.

[06:39] Christopher David: Alright, let's just go to what it was wrapping.

[06:52] Christopher David: I have wire chat main.

[07:22] Christopher David: Okay.

[07:52] Christopher David: Okay.

[08:05] Christopher David: Out of curiosity.

[08:11] Christopher David: I'm going to see if I can get it.

[08:26] Christopher David: Okay.

[08:56] Christopher David: Alright, here's what I'm going to do.

[09:24] Christopher David: Okay.

[09:54] Christopher David: Okay.

[10:24] Christopher David: Okay.

[10:54] Christopher David: Okay.

[11:20] Christopher David: Okay.

[11:48] Christopher David: I need age screen on the body.

[12:00] Christopher David: Flex, flex call, age full under that.

[12:25] Christopher David: Okay.

[12:55] Christopher David: Okay.

[13:22] Christopher David: Okay.

[13:50] Christopher David: Okay.

[14:20] Christopher David: Okay.

[14:50] Christopher David: Okay.

[15:20] Christopher David: Okay.

[15:50] Christopher David: Okay.

[16:18] Christopher David: Nice dash scroll bar is custom.

[16:48] Christopher David: Okay.

[17:18] Christopher David: Okay.

[17:48] Christopher David: Okay.

[18:18] Christopher David: Okay.

[18:48] Christopher David: Okay.

[19:16] Christopher David: Okay.

[19:26] Christopher David: Okay.

[19:56] Christopher David: Okay.

[20:29] Christopher David: and

[20:55] Christopher David: the

[21:43] Christopher David: the

[22:03] Christopher David: the

[22:29] Christopher David: the

[22:55] Christopher David: the

[23:21] Christopher David: the

[23:47] Christopher David: the

[24:13] Christopher David: the

[24:39] Christopher David: the

[25:05] Christopher David: the

[25:25] Christopher David: the

[25:51] Christopher David: the

[26:11] Christopher David: the

[26:37] Christopher David: the

[27:03] Christopher David: the

[27:23] Christopher David: the

[27:49] Christopher David: the

[28:15] Christopher David: the

[28:41] Christopher David: the

[29:07] Christopher David: the

[29:27] Christopher David: the

[29:47] Christopher David: the

[30:13] Christopher David: the

[30:33] Christopher David: the

[30:53] Christopher David: the

[31:13] Christopher David: the

[31:43] Christopher David: the

[32:13] Christopher David: the

[32:23] Christopher David: the

[32:33] Christopher David: the

[32:43] Christopher David: the

[32:53] Christopher David: the

[33:03] Christopher David: the

[33:13] Christopher David: the

[33:23] Christopher David: the

[33:33] Christopher David: the

[33:43] Christopher David: the

[33:53] Christopher David: the

[34:03] Christopher David: the

[34:11] Christopher David: the

[34:21] Christopher David: the

[34:31] Christopher David: the

[34:41] Christopher David: the

[34:57] Christopher David: the

[35:07] Christopher David: the

[35:33] Christopher David: the

[35:43] Christopher David: the

[35:53] Christopher David: the

[36:03] Christopher David: the

[36:13] Christopher David: the

[36:21] Christopher David: the

[36:47] Christopher David: the

[36:57] Christopher David: the

[37:07] Christopher David: the

[37:17] Christopher David: the

[37:27] Christopher David: the

[37:37] Christopher David: the

[37:45] Christopher David: the

[37:53] Christopher David: the

[38:03] Christopher David: the

[38:13] Christopher David: the

[38:23] Christopher David: the

[38:33] Christopher David: the

[38:43] Christopher David: the

[38:53] Christopher David: the

[39:01] Christopher David: the

[39:09] Christopher David: the

[39:17] Christopher David: the