Transcription: OpenAgents Episode 066 - Nostr Plugin Registry
June 9, 2026 ยท View on GitHub
Source: https://twitter.com/OpenAgentsInc/status/1752537446003118431 Wiki source: https://raw.githubusercontent.com/wiki/OpenAgentsInc/openagents/Video-Series.md Media title: OpenAgents - Episode 066: Nostr Plugin Registry We review our first community PR i... Upload date: 20240131 Transcription model: mlx-whisper/mlx-community/whisper-tiny Generated at: 2026-06-01T20:00:23Z
Machine-generated transcript. Review speaker labels and wording before using this as quote-grade source material.
[00:00] Christopher David: Let's talk about Nostar. We have a PR, our first PR from the community, Alex, who won a
[00:08] Christopher David: bouncy building a Nostar version of our worker bee software for GPU 2, a couple of months ago,
[00:16] Christopher David: has built a Nostar version of our plugin discovery system. So for those new to Nostar,
[00:25] Christopher David: Nostar is a decentralized data network. Some people are kind of more tightly associating it with
[00:34] Christopher David: a social network, but it's really a protocol that can work with any arbitrary decentralized data.
[00:42] Christopher David: For Bitcoin and Lightning, even though Nostar has no specific type to Bitcoin,
[00:49] Christopher David: a lot of Bitcoiners love Nostar because it provides the kind of decentralized data layer that is
[00:56] Christopher David: kind of missing from Bitcoin to be able to power decentralized applications. So people talk about the
[01:01] Christopher David: Bitcoin Lightning Nostar stack or the Bitcoin Lightning Nostar AI stack. The talk I give
[01:10] Christopher David: the other day, kind of stepping through the thesis here about how actually open AI wins,
[01:21] Christopher David: this kind of powerfully introduces Bitcoin Lightning and Nostar together, Nostar being the neutral
[01:27] Christopher David: decentralized protocol for data and communications. Here's why that's so cool.
[01:34] Christopher David: If we're not in a world without Nostar or sort of shared data layers, then I need to get you to
[01:45] Christopher David: care like only about getting plugins for openagents.com and only trusting me and my company.
[01:53] Christopher David: Whereas this idea of like a wasm plugin that can have a batch of code that could be run
[02:00] Christopher David: by anyone, there's no reason that you should have to get that from my company. That's something
[02:07] Christopher David: that should be a commodity and could be gotten freely from multiple different websites. Now,
[02:12] Christopher David: I have an incentive as a developer and a product owner and a business owner to try to provide
[02:17] Christopher David: you in a value to useopenagents.com for as much of that use case of those types of plugins is possible.
[02:26] Christopher David: But I love the idea that we have this more open kind of substrate of communication, enabling
[02:35] Christopher David: interoperable code and business logic to live in a way that could be written to and read by
[02:44] Christopher David: applications, tens or hundreds of thousands of different applications. So the idea that there could be
[02:50] Christopher David: one sort of specification for wasm plugins that a critical mass of the community agrees on
[02:56] Christopher David: and we all just kind of can read the idea of plugins and have it be consumed by multiple
[03:04] Christopher David: different apps. Potentially very powerful. We've seen that already emerge in social media where
[03:13] Christopher David: kind of the main use case thus far for Nostar has been social media. But there's a ton of
[03:17] Christopher David: different social clients. One of the big ones being Domus is sort of inspired by Twitter or
[03:24] Christopher David: it's a kind of explicit Twitter clone. But when you make a post on Domus, which is an iOS
[03:32] Christopher David: only app, it can be read by someone reading that feed from an Android client written by a
[03:42] Christopher David: completely different developer because they're all kind of reading and writing to the same
[03:47] Christopher David: public feed. And then if you apply that idea for all sorts of different use cases,
[03:54] Christopher David: there's people building marketplaces, a couple of years ago I wrote the public chat specification
[04:00] Christopher David: at 28 is a few different chat clients out there. So it's cool.
[04:08] Christopher David: Let's step through this PR from Alex and we'll talk a little bit more about that. So
[04:16] Christopher David: implement Nostar client side for exploring and publish plugins for open agents on the Nostar network
[04:21] Christopher David: using a new event kind. And let's look at the UI example video. So it's pretty much
[04:31] Christopher David: kind of the same plugin flow that we have that's kind of anchored to our database
[04:40] Christopher David: except this reads plugins from Nostar release and also publishes plugins to Nostar release.
[04:52] Christopher David: And the first plugins that are being published are just kind of demo plugins.
[05:00] Christopher David: But the idea that we can so here they're you're signing with your public key and distributing that out.
[05:11] Christopher David: We could do an implementation without that if we just wanted to sign it on the server. But
[05:18] Christopher David: this is great.
[05:23] Christopher David: And so the open agents website even though we'll have sort of our own repository of plugins
[05:31] Christopher David: at least for now. We'll also be able to pull in plugins from sort of like the broader community.
[05:36] Christopher David: So if someone has a agents site it's in a completely different language that just caters to an
[05:42] Christopher David: area of the world that we don't really or it's you know better used you know it's more usable
[05:47] Christopher David: by people in for example Brazil. If they create plugins and submit it to that site to the same
[05:54] Christopher David: using the same kind of event kind we can pull those into our site. So this is still kind of like
[06:01] Christopher David: early and and kind of proof of concept but it's a pretty powerful proof of concept. So I'm
[06:07] Christopher David: really like take a look at the code here and I'll see if we can test it out.
[06:12] Christopher David: So we've got a new controller settings we'll pull this down in a second and play with it.
[06:25] Christopher David: Adds the Nostor Dev Kit and decay.
[06:29] Christopher David: Nostor Development Kit with Outbox and Model Support.
[06:48] Christopher David: Now there's the Nip 28 group chat channel for this. I wrote that back in the day.
[06:56] Christopher David: Um, Duk-Doo.
[07:00] Christopher David: Signers, Bubble Ball, Albee. You can use that as a browser extension. Very nice.
[07:07] Christopher David: Let's keep going down. So before we leave, sure fine. Plug in kind. That's just something that Alex
[07:13] Christopher David: scaled up with. And then eventually we will once we kind of demonstrate that this deserves to be
[07:21] Christopher David: further formalized. Then we'll get it added to somewhere in here is a
[07:31] Christopher David: list of the different event kinds. I don't know where they have that now.
[07:44] Christopher David: Here. So these are different event kinds. So short text note like posts.
[07:51] Christopher David: Nip 28, the chat channel things are there. You got bid, overtime stamps, live chat message,
[07:57] Christopher David: problem tracker, label. These are all things that have their own separate Nostor implementation
[08:03] Christopher David: protocol, Nip, specifying how they're used. Marketplace calendar event. Yeah. So, um,
[08:20] Christopher David: Alex is proposing adding 3514. So that would live right there. Cool. So at some point we
[08:32] Christopher David: may do an Nip for this. Okay, try to get realized from the local store to the
[08:36] Christopher David: organization. The default relays. You connect to one or more relays where events are stored.
[08:41] Christopher David: And then you can kind of connect to any relays that you want. Okay. Nostor index, cash,
[08:51] Christopher David: basic stuff for Alpine for US stuff. Cash adapter. I have never used this before. This looks interesting.
[08:59] Christopher David: Alpine reactive, NDK, explicit really URLs, cash adapter. Alpine form for
[09:06] Christopher David: creating a new plug in and publishing into the Nostor network.
[09:19] Christopher David: Create new events, push some tags, price,
[09:36] Christopher David: and then you can create a new one.
[09:47] Christopher David: Okay. Thank you.
[10:05] Christopher David: Very cool. Okay. I think we'll just, um, merge it and try it. This failure, I think, is just a problem
[10:16] Christopher David: with the, uh, the fact that it's a PR. Let's just see what happens.
[10:30] Christopher David: EO, co-authored by. No, he's the full author.
[10:45] Christopher David: Implement Nostor for exploring plugins.
[10:49] Christopher David: Okay. Let's pull it down and try it.
[11:04] Christopher David: So I will probably need to do
[11:08] Christopher David: MPM I for the extra JavaScript package.
[11:25] Christopher David: And then we got Vico in there. Let's just reload that just in case.
[11:37] Christopher David: And I guess let's try it.
[11:52] Christopher David: Okay. Uh, what?
[11:54] Christopher David: Give it to this. What route should I try?
[12:10] Christopher David: This spell check thing is pretty annoying.
[12:12] Christopher David: Ruffle. What is this?
[12:17] Christopher David: Are you just complaining about the spell check?
[12:19] Christopher David: I just able to. Okay. So um,
[12:25] Christopher David: Nostor slash plugins.
[12:31] Christopher David: Who yeah. Okay. Inspect.
[12:34] Christopher David: Right.
[12:46] Christopher David: Now I don't have any nip seven.
[12:52] Christopher David: Thighy.
[12:57] Christopher David: So question one is what's supposed to happen at Nostor plugins?
[13:04] Christopher David: Okay.
[13:16] Christopher David: Resources.js Nostor index.
[13:27] Christopher David: Okay. I see some.
[13:30] Christopher David: Connections to relays.
[13:51] Christopher David: So I'm guessing that's defined in Nostor index.
[13:59] Christopher David: Do I even have a JavaScript linter in gun?
[14:15] Christopher David: All right. What happens if I do create plugin?
[14:18] Christopher David: Oh, here we go. All relays. Nostor one. Open Nostor settings.
[14:25] Christopher David: Okay. There's my preferred relays probably.
[14:30] Christopher David: See create plugin.
[14:34] Christopher David: Okay. Make a new agent plugin from an ex toism wasm file.
[14:37] Christopher David: Make sure you have a Nostor browser extension installed to broadcast the plugin to the Nostor network.
[14:42] Christopher David: Okay. So I don't. But let's do that now.
[14:47] Christopher David: Uh, I think you used Nostor at the law. Is that a website?
[14:51] Christopher David: Um, unlike six months out of date with.
[15:08] Christopher David: Here we go. Nostor x file files. Let's give that a try.
[15:20] Christopher David: Okay. Anything else I have to do? All right. Let's see if anything changes down here. Does it matter?
[15:48] Christopher David: Does that have connected? Okay. And I actually want to use the.
[15:55] Christopher David: Actual wasm link like an actual plugin.
[16:00] Christopher David: Even though it's kind of a demo plugin.
[16:09] Christopher David: All right. Here's what I want to do.
[16:14] Christopher David: I would like to learn how to copy between these quotes here.
[16:18] Christopher David: If I'm in NeoVim, how do I copy the URL without the quotes?
[16:28] Christopher David: If my cursor is on the URL.
[16:48] Christopher David: Uh, no, give me the actual shortcut to grab the entire string between the quotation marks.
[16:57] Christopher David: Oh, yeah. I could copy over the stupid.
[17:03] Christopher David: Okay. Text object. Yes. V. I quote. Yank.
[17:10] Christopher David: So V. I quote. Yank.
[17:13] Christopher David: Yeah, just just should have just said that. Okay. V. I quote Yank.
[17:22] Christopher David: Oh, that feels nice assuming it works. Okay. So let's paste that.
[17:29] Christopher David: What's that? Let's do a video. Get out of here.
[17:34] Christopher David: Paste that over here. Oh. V. I quote Yank plus. I'm guessing.
[17:52] Christopher David: I need to yank it to my system clipboard and that did not.
[18:04] Christopher David: I'm going to do a video.
[18:17] Christopher David: Quote plus Y. I quote really.
[18:26] Christopher David: Colin first I'm assuming.
[18:30] Christopher David: Quote plus Y. I quote.
[18:33] Christopher David: Quote.
[18:43] Christopher David: No, that did not work. Do I need to enter visual mode?
[18:48] Christopher David: No.
[19:03] Christopher David: Tell me the sequence in one line.
[19:11] Christopher David: The I quote.
[19:14] Christopher David: Star Y.
[19:20] Christopher David: The I quote.
[19:23] Christopher David: Star Y.
[19:29] Christopher David: Row.
[19:39] Christopher David: I'm telling it. Oh, much.
[19:44] Christopher David: We're going to do plus Y.
[19:54] Christopher David: The I quote.
[19:59] Christopher David: Plus.
[19:59] Christopher David: Why?
[20:01] Christopher David: That doesn't feel right.
[20:03] Christopher David: Oh, look, okay, at least got close.
[20:06] Christopher David: Chad, do you need to use fucking suck?
[20:08] Christopher David: Okay.
[20:09] Christopher David: That goes there.
[20:15] Christopher David: Count of owls.
[20:18] Christopher David: I count your owls.
[20:21] Christopher David: Fee, you know what, I'm going to count your owls for free.
[20:25] Christopher David: Okay, error.
[20:26] Christopher David: And then indicate nip 07.
[20:29] Christopher David: Signors not to find it, but it says creative n.
[20:35] Christopher David: And I'm back in my day.
[20:36] Christopher David: We didn't have all these fields on our event.
[20:40] Christopher David: Content.
[20:47] Christopher David: Okay.
[20:56] Christopher David: Okay.
[21:26] Christopher David: So we have ndk.
[21:27] Christopher David: So we have ndk.
[21:29] Christopher David: So we have ndk.
[21:50] Christopher David: So we have ndk.
[21:58] Christopher David: If there's no ndk signer, generate a new ndk nip signer, but where was there's to get this from?
[22:28] Christopher David: Okay.
[22:54] Christopher David: Make sure we're connecting.
[22:58] Christopher David: Okay, we're connected to the ndk.
[23:10] Christopher David: If there's no signer, then the signer is this.
[23:13] Christopher David: Okay, so where is that supposed to come from?
[23:28] Christopher David: Okay, it's supposed to be imported from the ndk.
[23:40] Christopher David: Ndk.
[23:43] Christopher David: Nip 07 signer.
[23:46] Christopher David: Q it.
[23:48] Christopher David: Okay, trigger.
[23:53] Christopher David: So.
[23:54] Christopher David: Wow, counter.
[23:58] Christopher David: I count your vowels.
[24:00] Christopher David: Boom.
[24:02] Christopher David: Puri.
[24:05] Christopher David: Error, nostox fox.
[24:07] Christopher David: No active private key.
[24:08] Christopher David: I thought I did that.
[24:10] Christopher David: I guess I did not.
[24:14] Christopher David: Save key.
[24:18] Christopher David: Generate.
[24:19] Christopher David: Save key.
[24:20] Christopher David: I can't save key.
[24:21] Christopher David: New.
[24:23] Christopher David: Generate.
[24:24] Christopher David: Save.
[24:25] Christopher David: Save private key.
[24:26] Christopher David: There we go.
[24:29] Christopher David: Okay.
[24:30] Christopher David: I do have an actual npub that I guess I can import later.
[24:35] Christopher David: Final that should hopefully.
[24:44] Christopher David: Vowl counter.
[24:46] Christopher David: I count your vowels.
[24:50] Christopher David: 0.
[24:52] Christopher David: All right, event.
[24:56] Christopher David: Not recognized.
[24:57] Christopher David: I know is requesting to your information to read your public key.
[25:01] Christopher David: I will give you permission forever.
[25:04] Christopher David: Now acting on.
[25:07] Christopher David: I don't know what that is.
[25:09] Christopher David: Local host.
[25:10] Christopher David: Is requesting to your permission to read your public key.
[25:13] Christopher David: Read your list of preferred relay.
[25:15] Christopher David: Signar.
[25:16] Christopher David: Signar.
[25:17] Christopher David: Signar.
[25:18] Christopher David: Signar.
[25:19] Christopher David: Signar.
[25:20] Christopher David: Signar.
[25:22] Christopher David: Signar.
[25:25] Christopher David: After ice cream shot this, good.
[25:27] Christopher David: It looks pretty cool.
[25:47] Christopher David: All right, all authorizes for five minutes.
[25:52] Christopher David: Okay, plugin data.
[25:54] Christopher David: And now apparently, oh yeah, local host,
[25:57] Christopher David: Nostra plugin.
[25:59] Christopher David: Nice.
[26:00] Christopher David: So now we have a URL with that pub key.
[26:09] Christopher David: And here's the event.
[26:10] Christopher David: Fee of zero, boba, and the.
[26:12] Christopher David: Wasm where it's hosted.
[26:15] Christopher David: Does this work?
[26:22] Christopher David: I'm guessing that part of it's not connected.
[26:28] Christopher David: That's all right.
[26:30] Christopher David: But so what I want to test now is if I go to open agents, first of all,
[26:35] Christopher David: I want to see if it deployed successfully.
[26:51] Christopher David: I'm guessing there might have been like a v-bundling error or something.
[26:58] Christopher David: Let's see.
[27:00] Christopher David: How can I take this real quick?
[27:02] Christopher David: Okay.
[27:12] Christopher David: What I want to do is see my.
[27:14] Christopher David: Um.
[27:17] Christopher David: The same pub key.
[27:18] Christopher David: If I like connected the same relays,
[27:20] Christopher David: I should be able to see that same plug plugin.
[27:24] Christopher David: Looks like that deployed fine.
[27:27] Christopher David: Let me see if I can go log into.
[27:33] Christopher David: Now I disabled that so I need to go into.
[27:42] Christopher David: The database maybe.
[27:45] Christopher David: There should be an error.
[27:51] Christopher David: View exception.
[28:00] Christopher David: Okay. Yeah.
[28:11] Christopher David: I'm able to locate file in VT manifest.
[28:16] Christopher David: Because it was not. I think added to the VT config.
[28:23] Christopher David: Okay.
[28:33] Christopher David: Okay.
[28:38] Christopher David: Okay.
[28:44] Christopher David: Uh.
[28:51] Christopher David: Resources.
[28:55] Christopher David: Js.
[28:57] Christopher David: Nostor index.js.
[29:00] Christopher David: Maybe.
[29:03] Christopher David: I get all work locally, but if it hasn't been built that.
[29:07] Christopher David: Okay. Let's pop over to.
[29:10] Christopher David: Here.
[29:13] Christopher David: And get status.
[29:18] Christopher David: Fix VT config.
[29:21] Christopher David: And the seven imports.
[29:25] Christopher David: And let's push that up.
[29:35] Christopher David: Uh, perhaps the Alex for braving.
[29:38] Christopher David: The fact that we have no documentation, no contributor guide.
[29:45] Christopher David: And yet you are your our first contributor on this repo.
[29:49] Christopher David: Thank you.
[29:51] Christopher David: Let's see.
[29:56] Christopher David: I was surprised our CI did not catch that.
[30:14] Christopher David: I'm going to go to the file.
[30:24] Christopher David: I'm going to go to the file.
[30:29] Christopher David: I'm going to go to the file.
[30:32] Christopher David: I'm going to go to the file.
[30:35] Christopher David: I'm going to go to the file.
[30:38] Christopher David: I'm going to go to the file.
[30:42] Christopher David: Um.
[30:48] Christopher David: Fortunately, we don't need to await for it.
[31:12] Christopher David: Um, push that up and then while that goes, it just makes sure,
[31:15] Christopher David: locally, that it built.
[31:16] Christopher David: See as it does.
[32:12] Christopher David: Nostor HTMX.
[32:21] Christopher David: Oh, I didn't know via job did some HTML stuff.
[32:24] Christopher David: That doesn't surprise me.
[32:29] Christopher David: Oh.
[32:35] Christopher David: I got to look into this.
[32:41] Christopher David: Yo.
[32:44] Christopher David: Nostor HTMX.
[32:46] Christopher David: Nice.
[32:48] Christopher David: Okay.
[32:49] Christopher David: That succeeded.
[32:52] Christopher David: What happens if I go here now?
[32:55] Christopher David: Boo.
[32:56] Christopher David: Yeah.
[32:57] Christopher David: That will counter.
[32:59] Christopher David: I counter.
[33:01] Christopher David: Very nice.
[33:04] Christopher David: Very nice.
[33:13] Christopher David: Um.
[33:16] Christopher David: Out of curiosity.
[33:19] Christopher David: Is this.
[33:20] Christopher David: Oh, gosh.
[33:21] Christopher David: No, I actually don't yet want to implement the.
[33:25] Christopher David: Testing.
[33:28] Christopher David: Um.
[33:31] Christopher David: But the fact that we are automatically discovering a plugin on the live site that I put out on the local host.
[33:44] Christopher David: There's no database sink.
[33:46] Christopher David: It's just pulling for the release.
[33:48] Christopher David: Um, that's great.
[33:49] Christopher David: Okay.
[33:50] Christopher David: So what we have now is like proof of concept, but like the code for.
[33:55] Christopher David: We can publish a plugin event to the Nostor network and we can pull that in.
[34:02] Christopher David: So we're probably not going to do anything with this in the immediate future.
[34:09] Christopher David: Just while we get our own kind of like UX nailed, we're probably going to want to maybe evolve the event structure.
[34:20] Christopher David: Before we like submit some sort of formal approval process to get like more people wanting to use this.
[34:30] Christopher David: What will be an IP I think for Wasm plugins using Nostor.
[34:37] Christopher David: But this is awesome.
[34:38] Christopher David: Happy to award a bounty to Alex for this.
[34:41] Christopher David: And congrats on being our first contribute tour.
[34:45] Christopher David: All right.
[34:46] Christopher David: We'll go back to our agent workflow and push on word port release.
[34:51] Christopher David: It's isn't.