Transcription: OpenAgents Episode 080 - Streaming Plugin Status

June 9, 2026 ยท View on GitHub

Source: https://twitter.com/OpenAgentsInc/status/1758640475819655189 Wiki source: https://raw.githubusercontent.com/wiki/OpenAgentsInc/openagents/Video-Series.md Media title: OpenAgents - Episode 080: Streaming Plugin Status We use Livewire's new stream met... Upload date: 20240216 Transcription model: mlx-whisper/mlx-community/whisper-tiny Generated at: 2026-06-01T18:51:10Z

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

[00:00] Christopher David: Alright, let's keep going. We're gonna build a little status indicator. I was able to offline do this

[00:08] Christopher David: Kind of separate this out into two different things so that will

[00:13] Christopher David: Just automatically put that there and now what we want is like the little

[00:19] Christopher David: You know status it's kind of like a loading indicator, but it's actually describing what's going on and just so you know

[00:26] Christopher David: We had to split this send message into two different parts and this is at least at the time that live wire three was released

[00:36] Christopher David: Um six months ago. There's a video that it kind of goes into

[00:40] Christopher David: Apparently live wire will kind of like wait to do the entire

[00:44] Christopher David: Function before sending stuff back to the client so we just had to split this into

[00:50] Christopher David: updated the message

[00:51] Christopher David: clearing the input

[00:54] Christopher David: And then having the front end call the next task which is where we put that task code

[01:02] Christopher David: So that's fine

[01:07] Christopher David: Oh

[01:09] Christopher David: Okay, so now we want that kind of chat GPT style like status update when it's doing something that's long running it takes a while to

[01:18] Christopher David: You know load multiple plugins

[01:22] Christopher David: We want to see the status update and then that'll get even better right now

[01:25] Christopher David: We're just waiting for the entire GPT four response to come back

[01:29] Christopher David: We'll add streaming maybe in the the video after this

[01:32] Christopher David: But for now, just like see what is actually going on

[01:36] Christopher David: See what plugins are being run for example and

[01:39] Christopher David: We'll think about how to do this with live wire

[01:43] Christopher David: Um

[01:46] Christopher David: So live wire got a couple of new things like live wire can stream

[01:52] Christopher David: We'll do that

[01:54] Christopher David: Maybe in the next video

[01:58] Christopher David: And I got errors whether I

[02:00] Christopher David: Of the whole response so

[02:02] Christopher David: Text you on or each time I'll earn you

[02:06] Christopher David: This being stream there's no extra

[02:08] Christopher David: And

[02:14] Christopher David: All right, so live wire can do streaming but I guess what we want now is some kind of

[02:19] Christopher David: Like loading indicator that will show

[02:24] Christopher David: What's um

[02:27] Christopher David: Hmm

[02:28] Christopher David: I was gonna say let's ask chat GPT, but you know what?

[02:34] Christopher David: Let's see if we can start using

[02:37] Christopher David: Connie code monger here. Let's go find the

[02:42] Christopher David: file that we're gonna be editing in here. Let's call it

[02:47] Christopher David: Swap over to this branch

[02:51] Christopher David: Where are we we're in app live wire chat?

[02:54] Christopher David: The problem is that we don't yet support multi-conversations so we'd have to

[03:11] Christopher David: We don't need to ask kind of one thing, but let's let's just see if we can get any value from this currently

[03:24] Christopher David: Let's say

[03:33] Christopher David: We have a live wire three

[03:38] Christopher David: Larvel app

[03:42] Christopher David: Need to think about how to create a

[03:45] Christopher David: Um

[03:52] Christopher David: Loading indicator that shows the status of the run task method here

[04:00] Christopher David: Maybe we'll start by

[04:08] Christopher David: Doing just a basic loading indicator only in this let's see

[04:11] Christopher David: The run task method itself will have three stages that each take a couple seconds each not exactly but

[04:25] Christopher David: And need to know how to fire events to the client

[04:32] Christopher David: From there

[04:34] Christopher David: Our first question

[04:53] Christopher David: When we're not formatting the

[04:57] Christopher David: We're not formatting, but let's just see what it says

[05:00] Christopher David: To create a loading indicator in live wire you can make use of the wire loading directive

[05:05] Christopher David: Which will make display an element while an action is being performed

[05:08] Christopher David: However, this won't give you control over the three stages of loading you want so to achieve that you can use larvel events

[05:14] Christopher David: First, we need to separate your run task method into three stages and fire an event after each stage is completed

[05:22] Christopher David: Dispatch browser event stage complete stage one stage two okay

[05:26] Christopher David: In your live wire components blade file you can listen for those event using JavaScript and update your look now now one thing is

[05:35] Christopher David: GPT will have been trained on primarily live wire two so I don't know that this is accurate will have to kind of sanity check to see if

[05:42] Christopher David: What it recommends is also in live wire three or if live wire three has some better way of doing it

[05:48] Christopher David: But let's just keep going so in your live wire components blade file you can list for these events bubble bomb

[05:57] Christopher David: window add event listener stage complete

[06:04] Christopher David: Okay, because I can't respond to this

[06:10] Christopher David: I'm gonna go pop over here for now we're getting close to replacing it

[06:18] Christopher David: But

[06:20] Christopher David: How can I fire events from none live wire components?

[06:51] Christopher David: Hello

[07:01] Christopher David: Hello

[07:20] Christopher David: While that thinks about it let's pop over to the live wire documentation look around

[07:51] Christopher David: Okay

[08:16] Christopher David: So wire loading

[08:21] Christopher David: That's not really what we want because we want more

[08:30] Christopher David: Okay, try to get

[08:32] Christopher David: Yeah, so I could use lair of those broadcasting but I probably don't want to do that

[08:54] Christopher David: Should I pull code into my live wire components?

[09:02] Christopher David: Okay, let's learn about how

[09:09] Christopher David: Live wire sends events

[09:13] Christopher David: Live wire offers a robust event system that you can use to communicate between different components on the page

[09:18] Christopher David: Because it uses browser events under the hood you can also use lair of elves event system to communicate with alpine components or even plain vanilla JavaScript

[09:27] Christopher David: To trigger an event you may use the dispatched method from anywhere inside your component and listen for that event from any other component on the page

[09:43] Christopher David: So for status updates that need to go to the client

[09:48] Christopher David: Assuming I want to use live wire system which I'm I'm gonna try to do

[09:53] Christopher David: I need to use this dispatch on a live wire component so let's see if this is something where I can pull

[10:06] Christopher David: This

[10:09] Christopher David: Or if I can pass can I pass in a function?

[10:12] Christopher David: Okay, so watch this by the way

[10:25] Christopher David: Try to be t did not have access to

[10:28] Christopher David: this code

[10:30] Christopher David: Okay, I

[10:33] Christopher David: Don't want to do that

[10:36] Christopher David: I

[10:38] Christopher David: Want to use live wires event system

[10:49] Christopher David: Here's my code

[10:55] Christopher David: I can modify run task to accept a logging function which should use

[11:06] Christopher David: Standered live wire updating of props to show the client or

[11:22] Christopher David: Event dispatches to client whatever is best practice. I think I'm not sure which of those I would need to know

[11:35] Christopher David: I

[12:00] Christopher David: Okay, let's start trying some of this

[12:04] Christopher David: task progress

[12:26] Christopher David: All right public task progress is ha ha

[12:33] Christopher David: Out of curiosity let's try this

[13:03] Christopher David: Now let's just move that over there

[13:15] Christopher David: Um

[13:22] Christopher David: And then in the chat components

[13:24] Christopher David: If task progress show task progress

[13:39] Christopher David: I guess we put that there

[13:49] Christopher David: Does that work

[13:55] Christopher David: No, because it's the same thing that we had before probably where it's like

[14:06] Christopher David: It's waiting for this whole thing to complete so we actually do I think need to set that as a um

[14:25] Christopher David: I

[14:32] Christopher David: That doesn't work because live wire won't

[14:37] Christopher David: Show any updates on the client until that whole thing finishes so instead we should probably

[14:46] Christopher David: broadcast events to the client

[14:55] Christopher David: um

[15:11] Christopher David: Read this doc

[15:14] Christopher David: Hopefully that's not too long

[15:20] Christopher David: That's right

[15:24] Christopher David: You

[15:54] Christopher David: Okay, so we are

[16:04] Christopher David: Axing the task progress

[16:10] Christopher David: We are

[16:17] Christopher David: Changing that stage two oops

[16:25] Christopher David: Okay

[16:36] Christopher David: Okay

[16:38] Christopher David: Then we need to listen to it

[16:43] Christopher David: This might work

[16:46] Christopher David: Okay

[17:03] Christopher David: So put that there and I'll take this

[17:09] Christopher David: Put that there

[17:11] Christopher David: And then let's get rid of this task progress thing

[17:33] Christopher David: And a file

[17:41] Christopher David: Okay

[17:44] Christopher David: Okay

[18:09] Christopher David: That's right here

[18:13] Christopher David: Okay

[18:40] Christopher David: Okay

[18:44] Christopher David: Dispatch browser event does not exist

[18:53] Christopher David: Okay

[18:58] Christopher David: Yeah

[19:14] Christopher David: So I think dispatch browser event is a

[19:21] Christopher David: Larvel two thing it's kind of disappointing that I fed the whole docs into

[19:26] Christopher David: chatchbt and it still gave me the this thing that I guess doesn't exist in v3

[19:33] Christopher David: Is this the same syntax slash does this do what I'm expecting I don't know

[19:43] Christopher David: I don't see anything happening

[19:59] Christopher David: I'm going to put it on the back of the head.

[20:01] Christopher David: I'm going to put it on the back of the head.

[20:03] Christopher David: I'm going to put it on the back of the head.

[20:05] Christopher David: I'm going to put it on the back of the head.

[20:07] Christopher David: I'm going to put it on the back of the head.

[20:09] Christopher David: I'm going to put it on the back of the head.

[20:11] Christopher David: I'm going to put it on the back of the head.

[20:13] Christopher David: I'm going to put it on the back of the head.

[20:15] Christopher David: I'm going to put it on the back of the head.

[20:17] Christopher David: I'm going to put it on the back of the head.

[20:19] Christopher David: I'm going to put it on the back of the head.

[20:21] Christopher David: I'm going to put it on the back of the head.

[20:23] Christopher David: I'm going to put it on the back of the head.

[20:25] Christopher David: I'm going to put it on the back of the head.

[20:27] Christopher David: I'm going to put it on the back of the head.

[20:29] Christopher David: I'm going to put it on the back of the head.

[20:31] Christopher David: I'm going to put it on the back of the head.

[20:33] Christopher David: I'm going to put it on the back of the head.

[20:35] Christopher David: I'm going to put it on the back of the head.

[20:37] Christopher David: I'm going to put it on the back of the head.

[20:39] Christopher David: I'm going to put it on the back of the head.

[20:41] Christopher David: I'm going to put it on the back of the head.

[20:43] Christopher David: I'm going to put it on the back of the head.

[20:45] Christopher David: I'm going to put it on the back of the head.

[20:47] Christopher David: I'm going to put it on the back of the head.

[20:49] Christopher David: I'm going to put it on the back of the head.

[20:51] Christopher David: I'm going to put it on the back of the head.

[20:53] Christopher David: I'm going to put it on the back of the head.

[20:55] Christopher David: I'm going to put it on the back of the head.

[21:13] Christopher David: This may be the better syntax.

[21:17] Christopher David: I'm going to put it on the back of the head.

[21:23] Christopher David: I'm going to put it on the back of the head.

[21:27] Christopher David: I'm going to put it on the back of the head.

[21:31] Christopher David: I'm going to put it on the back of the head.

[21:35] Christopher David: I'm going to put it on the back of the head.

[21:37] Christopher David: I'm going to put it on the back of the head.

[21:39] Christopher David: I'm going to put it on the back of the head.

[21:41] Christopher David: I'm going to put it on the back of the head.

[21:45] Christopher David: I'm going to put it on the back of the head.

[21:49] Christopher David: I'm going to put it on the back of the head.

[21:55] Christopher David: I'm going to put it on the back of the head.

[22:01] Christopher David: I'm going to put it on the back of the head.

[22:05] Christopher David: I'm going to put it on the back of the head.

[22:09] Christopher David: I'm going to put it on the back of the head.

[22:13] Christopher David: I'm going to put it on the back of the head.

[22:23] Christopher David: I'm going to put it on the back of the head.

[22:27] Christopher David: I'm going to put it on the back of the head.

[22:31] Christopher David: I'm going to put it on the back of the head.

[22:37] Christopher David: I'm going to put it on the back of the head.

[22:41] Christopher David: I'm going to put it on the back of the head.

[22:45] Christopher David: I'm going to put it on the back of the head.

[22:51] Christopher David: I'm going to put it on the back of the head.

[23:01] Christopher David: I'm going to put it on the back of the head.

[23:05] Christopher David: I'm going to put it on the back of the head.

[23:09] Christopher David: It does me no good at all.

[23:19] Christopher David: I'm going to put it on the back of the head.

[23:33] Christopher David: I'm going to put it on the back of the head.

[23:39] Christopher David: I'm going to put it on the back of the head.

[23:49] Christopher David: I'm going to put it on the back of the head.

[23:59] Christopher David: I'm going to put it on the back of the head.

[24:05] Christopher David: I'm going to put it on the back of the head.

[24:17] Christopher David: There's got to be a better way of doing that.

[24:33] Christopher David: I have to use lairvel echo here.

[25:03] Christopher David: I'm going to put it on the back of the head.

[25:19] Christopher David: I'm going to use what they call real time events.

[25:43] Christopher David: I'm going to put it on the back of the head.

[26:09] Christopher David: I'm going to put it on task progress.

[26:29] Christopher David: I'm going to put it on the back of the head.

[26:41] Christopher David: Does it fire at all?

[27:01] Christopher David: Looks like it did not fire.

[27:05] Christopher David: It's on.

[27:25] Christopher David: It does not fire during.

[27:47] Christopher David: It does not fire.

[28:01] Christopher David: It's on the back of the head.

[28:29] Christopher David: It's on the back of the head.

[28:57] Christopher David: I could use polling.

[29:11] Christopher David: Let's instead use the new live wire V3 stream.

[29:25] Christopher David: I don't want to install broadcasting stuff.

[29:45] Christopher David: I'm going to put it on the back of the head.

[30:09] Christopher David: I'm going to put it on the back of the head.

[30:37] Christopher David: I'm going to put it on the back of the head.

[30:51] Christopher David: I'm going to put it on the back of the head.

[31:07] Christopher David: I'm going to put it on the back of the head.

[31:29] Christopher David: I'm going to put it on the back of the head.

[31:47] Christopher David: I'm going to put it on the back of the head.

[32:13] Christopher David: I'm going to put it on the back of the head.

[32:41] Christopher David: I'm going to put it on the back of the head.

[32:59] Christopher David: Let's do it.

[33:17] Christopher David: I'm going to put it on the back of the head.

[33:45] Christopher David: I'm going to put it on the back of the head.

[34:13] Christopher David: I'm going to put it on the back of the head.

[34:31] Christopher David: Something seems to have gone wrong.

[34:55] Christopher David: The function is

[35:55] Christopher David: bin-nube.

[36:13] Christopher David: Agent, run task, task, input, log function.

[36:39] Christopher David: I'm going to put it on the back of the head.

[37:07] Christopher David: I want it.

[37:21] Christopher David: I did that already.

[37:23] Christopher David: Executing step-step name.

[37:33] Christopher David: I'm going to put it on the back of the head.

[38:01] Christopher David: I'm going to run task.

[38:15] Christopher David: Run task.

[38:31] Christopher David: I'm going to put it on the back of the head.

[38:57] Christopher David: I'm going to put it on the back of the head.

[39:25] Christopher David: I want it to aggregate or replace.

[39:45] Christopher David: I'm going to put it on the back of the head.

[39:59] Christopher David: task program. There's not even a class for that. So let's just text SM text gray maybe

[40:13] Christopher David: Yes

[40:15] Christopher David: Oh, that's cool

[40:19] Christopher David: That's really cool

[40:23] Christopher David: And then it goes bye-bye and I kind of like that it works. Oh shit it works

[40:29] Christopher David: Yeah, let's go again. How cool this

[40:47] Christopher David: This

[40:56] Christopher David: Really cool is the answer

[41:03] Christopher David: Fucking cool. All right, that's good for now. Let's do um

[41:08] Christopher David: Let's get the actual LM streaming going in the next video. So it's gonna start feeling like an actual app