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