Chris: Hello, friends, and welcome back to your weekly Linux talk show. My name is Chris.
Wes: My name is Wes.
Brent: And my name is Brent.
Chris: Hello, gentlemen. Well, coming up on the show today, has the best use case for
Chris: Noster finally been discovered, and it might not be what you're thinking?
Chris: We're going to take a look at Buzz, the new tool that is sort of like multiplayer
Chris: for agentic assistant work.
Chris: And then we're going to round the show out with some great boosts,
Chris: some picks, and a lot more.
Chris: So before we get to that, We've got to start by saying time-appropriate greetings
Chris: to our virtual lug. Hello, MumbleRoom. Hey, Chris. Hello, Brent.
Brent: Hello, hello.
Wes: Thank you for joining us, even when we're remote.
Chris: Yes, hello up here from the beautiful, smoky BC. We're up in Brent's pad this week.
Brent: Delicious.
Chris: Hanging out, enjoying ourselves some wildfire smoke.
Chris: And just extremely grateful for our friends over at Defined Networking.
Chris: And I think you're going to love it. Go to Defined.net slash unplugged and meet
Chris: Manage Nebula from Defined Networking. A decentralized VPN built on the open-source
Chris: Nebula platform that is awesome, and we're using the crap out of it.
Chris: Nebula, it was originally created to connect Slack's global infrastructure. Could you imagine?
Chris: Could you imagine this?
Wes: Could you imagine? I tried to imagine what it was like before they had Nebula.
Brent: Oh.
Chris: And the kind of data that they have to protect. I mean, it's just absolutely
Chris: bonkers. And it has to be resilient. It has to scale. It has to be absolutely bonkers fast.
Chris: That's what Slack needed, and that's what Nebula delivered.
Chris: And you can get it now, right now, defined.net slash unplugged for 100 hosts
Chris: free, no credit card required.
Chris: They also include a lighthouse now to get you going right away,
Chris: but you can self-host your own lighthouse so you have complete real control over your mesh network.
Chris: No tech company between you and your infrastructure. No big tech login required.
Chris: Keys is how it works. It's so elegant.
Chris: Check it out at defined.net slash unplugged.
Chris: And a big thank you to Define for sponsoring the Unplugged program.
Chris: Well, we got no housekeeping, but we'd love to know what you think of the remote
Chris: show audio. And if you watch the video and any of it comes together at all,
Chris: we have no idea. So you can go to boost.jupiterbroadcasting.com and let us know your thoughts.
Chris: Or you can send us an email, like Mars did.
Wes: Hey, guys. Y'all meet at Nostert wondering if you've heard of Buzz,
Wes: which seems to be a self-hostable Slack alternative that also enables human
Wes: and agent collaboration.
Wes: You can check out their code repo github.com slash block slash buzz or the main website buzz.xyz.
Wes: While the tech does seem cool and the back end is written in Rust.
Chris: Oh, is it now?
Wes: Yes, it is.
Chris: We didn't notice that. Oh, no, we didn't. No.
Wes: I find some of the vision docs in their repo to be really fascinating.
Wes: I think Buzz is actually started by Jack Dorsey or at least his block organization.
Wes: So not sure how I feel about that. But if it truly supports sovereignty and
Wes: it functions and has features and they do what it says on the tin,
Wes: then it might be worthwhile to play around with.
Wes: Keep up the wonderful work on the podcast. Yours truly, Mars.
Chris: Mars, you asked the right question. Does it actually deliver what it says on
Chris: the tin or is this just a big joke?
Chris: So Buzz is also kind of...
Chris: Maybe considered a bit of a Slack killer. I think that's underselling what it
Chris: does, but it includes a lot of the Slack-like collaboration and chat features.
Chris: And so if, depending on your workflow, this could be very, very useful.
Chris: And it's Apache 2.0 license, so it is open source. And like Mar said,
Chris: they've put it up on GitHub, and it is moving really, really fast these days.
Wes: One of the projects that's actively getting commits pushed to it while we cover it on the show.
Brent: Yeah.
Chris: Is it right now? It is.
Brent: I mean, the kernel gets that sometimes.
Chris: 26 minutes ago, as we record, on a Sunday.
Chris: So they describe it as a self-hostable workspace where humans and AI agents
Chris: share the same rooms. And we'll try to explain what that really means here in a minute.
Chris: A buzz community is the workspace where a user reaches by URL.
Chris: There's a Noster Relay on the back end, which we'll talk about more,
Chris: that sort of acts as a central server. Every message, reaction,
Chris: workflow step, review approval, and Git event, talk more about that,
Chris: is a signed event in one log.
Chris: Same shape, same identity, same model, same audit trail.
Chris: And in practice, it just kind of feels like a team workspace with a chat app.
Chris: But under the hood, every event is logged and everything has a cryptographic
Chris: signature, which is very useful. And we'll talk about that.
Wes: Yeah, part of the value idea here is, okay, you have to do a lot of work if
Wes: you say have something like Slack to bring in maybe helpers or automation or the results from
Wes: your build system when you put a new update or someone opens a new PR and needs
Wes: a review and that has to be surfaced and all of those things that we end up dragging in there.
Wes: Well, what if you just had them in there from the start in a system that was
Wes: designed to know about all of them, and that was built on top of Nostre,
Wes: which is essentially just JSON with a lot of cryptography on top so that you
Wes: have an audited log of all of the events that are flowing?
Chris: Yes, and the architecture is such that it is actually Nostre first.
Chris: So what that means is, like in the Slack workflow or a Teams workflow,
Chris: we've also experimented with Mattermost.
Chris: they generally have like a bot api and you go create a bot account and you go
Chris: set up an api for your bot and then you go to your whatever your bot is and
Chris: you put the api in there you put a url in there and get it all connected and
Chris: it can do a few things in your slack or matter most or whatever it might be,
Chris: that's not how buzz works since buzz is noster first and everything is done
Chris: as a noster event and there's a cli as well,
Chris: everything can be managed and set up by agents like they can humans.
Chris: They essentially share some of the same privileges and workflow capabilities in Buzz.
Chris: And I think that's particularly a big advantage for Buzz because it means that
Chris: you can tell, you can task your agent,
Chris: go set up a project room for this project and it's linked to this GitHub project
Chris: and bring these five people in with read-only permission.
Chris: And the agent just goes and does all of that and sends out the invites instead
Chris: of you having to go create the room, invite an agent in. It's just a more natural process.
Wes: And it means everything is the same. all you're doing with the fancy buzz desktop
Wes: client which we can talk about because that's kind of the main way experience,
Wes: is sending signed events to the nostril relay and that's all the agent does
Wes: either so by if you want to audit what the agent's doing you're also getting
Wes: to audit what the human's doing and it's the same thing it's not two separate
Wes: systems and it's all just right there and it's a you know building on top of
Wes: nostril which is essentially,
Wes: like you have this you have this relay and you can post events to it and it's
Wes: just a super simple json data structure The wire protocol is NIP01.
Wes: Events have six fields. The ID, the pub key that corresponds to your identity,
Wes: which is your private key, kind, tags, content, and the signature.
Wes: And the kind integer is basically the way you dispatch stuff.
Wes: So if you want a new feature, you make a new kind number.
Wes: And then, of course, it's all connected over WebSocket, and it lets you do things
Wes: like subscribe to queries. So you can kind of ask, like, hey,
Wes: give me events that match this shape. I want to be told when those come in.
Wes: And that lets you form sort of this two-way communication.
Wes: And then Buzz on top of this defines 80 plus different event kinds across some
Wes: of the standard ranges and some of their own custom ranges.
Wes: And that means, again, like you need to know the semantics of what Buzz's stuff
Wes: is. But beyond that, the only thing you need to really know if you want to play
Wes: in the system is how Nostra works.
Chris: Yeah, I think the advantage to it being Nostra is a couple of primary things.
Chris: It's an open protocol. So instead of it being based on a proprietary back-end or whatever...
Chris: It's a fully open protocol that's documented. Like Wes said,
Chris: the way they're doing things is via NIPs.
Chris: And a NIP is a NOSTER improvement proposal. And so you can add functionality
Chris: in an open source way to NOSTER through these NIPs.
Chris: And then people can determine if they want to implement them at the client side
Chris: or not and at the relay side.
Chris: And so they haven't had to concoct any kind of proprietary way of doing this.
Chris: They've been able to just leverage an open network. So that's the first thing.
Chris: The other thing that I think really stands out is everybody that participates
Chris: in a Noster network in the protocol gets an NPUB and an NSEC.
Chris: They get a public key and a private key, and everything gets signed with this.
Chris: Listeners are probably at least loosely familiar with this concept.
Chris: But imagine now applying that at the agent level.
Chris: So now you have a cryptographic identity for every agent that's working.
Chris: So you can actually tie it back to a specific agent and cryptographically verify
Chris: it was that agent or human.
Chris: And that, because it's just a public private key pair is portable.
Chris: So if later on you build up a cooler agent that has way more superpowers,
Chris: but you want to use that identity, you can.
Chris: And Nostra makes it really easy to spin up a new identity. Like you can,
Chris: you know, just a new cryptographic public key and private key.
Chris: And so you could create a new identity for another bot and you can verify there
Chris: really are the people that the bot claims it is.
Chris: And I think that isn't a problem that has been solved yet in any other way with
Chris: agents other than APIs and KYC that Anthropic and OpenAI, I suppose, would run.
Chris: But this is a distributed, open-source way where everybody involved and every
Chris: action involved, every Git commit and everything, has a public-private key signing
Chris: that can be audited and traced, which adds to the reliability and troubleshooting of these things.
Chris: So I think that's one of the bigger innovations Buzz is bringing by using Noster.
Chris: And that's why kind of the beginning, I was like, this might be one of Noster's best uses yet.
Chris: Ironically, it's not doing it with a distributed relay. See,
Chris: typically with a Noster client, the relay can be many.
Chris: You could just substitute any relay for any other relay for the most part, if you wanted to.
Chris: But in this case, you're using one specific relay. You can self-host that relay,
Chris: but you're using one specific relay.
Brent: Why do you think they made that design decision? because the default NOSTER, wouldn't that work too?
Chris: Wes could probably explain it better than me, but there's just certain jobs
Chris: that the relay is doing. You can have it executing webhooks and doing scheduled jobs.
Chris: It's holding more information than a typical NOSTER relay would be by default.
Chris: Was that a fair assessment, you think, Wes?
Wes: Yeah, I think that's probably about right. You can do more integrations,
Wes: like in particular when we talk about the Git stuff. That's something that's
Wes: happening here on the back end.
Wes: So it is in one sense a standard relay, but it also offers some more stuff on the side.
Wes: And I think they are exploring how to do more multi-member communities,
Wes: but for this first thing, it's sort of just targeting like the community is the relay.
Brent: Is there also a challenge with these NIPs in that like it might not be adopted
Brent: by all the relays? No, it doesn't really?
Chris: No, because they're implementing their own client, right? So they're implementing
Chris: their own relay and their own client. And so as long as they support it,
Chris: it's fine. And if you want to build your own, you just, the NIP is documented.
Brent: Yeah, okay.
Chris: So that, I think, the Nostra aspect. Is there anything else you want to talk
Chris: about Nostra before I move on from that? I mean, we're going to come back to
Chris: when we talk about bringing our own bots.
Wes: Yeah, I think that's fine for now.
Chris: Okay, so then the other thing that I think Buzz is bringing early on,
Chris: and we should mention this is in early development, and they're probably a pretty
Chris: big category of people it's not ready for yet.
Chris: But one of the things that is going to probably be attractive to folks in our
Chris: audience is they've integrated shared compute, and it's done really, really well.
Chris: So I think it's one of their more ambitious ideas. And anybody that has the
Chris: Buzz client in a community, in a workspace...
Chris: can go into a section that's basically the compute section of the app.
Chris: And the Buzz app will review your hardware and determine which open source model,
Chris: is best going to run on your machine.
Brent: Jeff needs this.
Chris: And for me, it selected, first the default was Quen 2.5, but it said actually
Chris: Gemma 4 is going to work better on your machine.
Chris: And I think we should allocate 48 gigabytes of virtual RAM, of your video RAM.
Chris: So I say, okay, and I turn that box on. And what happens now is any members
Chris: of my Buzz community can access that shared compute, and they can opt in their
Chris: compute as well if they want.
Chris: And that, to me, seems to be like the missing piece that we have been asking
Chris: for on this show in particular.
Wes: Sure have been.
Chris: It's so great. No API keys, no cloud bill. The relay handles the trust boundary.
Chris: It handles connecting. That's another thing the relay does that probably the
Chris: standard relay wouldn't do.
Chris: and so you get a compute mesh entirely desktop client side.
Brent: That's so cool.
Wes: Yeah the discovery just the the part the relay really does is um a member's
Wes: mesh lm node publishes a special kind a bookmark set event with a buzz mesh
Wes: status tag content is json and then basically just tells it like look this is
Wes: what i'm offering i have this model here's how to get to it
Wes: and then when a consumer needs a model it can query the relay for fresh mesh
Wes: status events from the current members verifies owner binding that kind of all the security stuff
Wes: and then basically you always have sort of a proxy local open ai compatible
Wes: endpoint from the buzz desktop thing and then
Wes: when you connect then that just basically then starts forwarding to whichever
Wes: of the local options over the mesh or the remote ones over the mesh that you want to use,
Wes: so from your client side you could just point the same thing at it and then,
Wes: make use of the different models that are provided by you on the mesh which is pretty cool that's.
Chris: So cool mars mentioned this in his email to us and i know wes you noticed this too is um they have,
Chris: a pretty well flushed out vision for the project,
Chris: and not like computer vision i mean like idea of where it's going to go in the
Chris: future and kind of the full idea so even though they're not there yet because
Chris: it's early days kind of the full idea of,
Chris: like what you could expect this to be and one of the things they outline is
Chris: there's these different surfaces right you have your home surface stream form
Chris: dms agents workflows and search and all that kind of stuff.
Wes: Yeah, here's how they put it. One community is your entire workspace.
Wes: Work, conversation, agents, automation, artifacts, docs, one domain,
Wes: one identity system, one search index,
Wes: MyProject.com in a browser shows your repos. Git clone works.
Wes: Open the Buzz app and you're in the channels where the work happens.
Wes: No GitHub, no Discord, no stitching five services together.
Wes: The project lives in one place and that place is yours. Run your own relay for
Wes: one community or let an operator host thousands on shared infrastructure.
Wes: Same open source code base. Same URL is your workspace experience. Either way.
Chris: And one of the ideas, right, is that you're working with the agents in tandem
Chris: on projects. And so you're bringing in Git issues.
Chris: the agent is tracking that and you're having like you would a conversation with
Chris: a co-worker and i think maybe we should touch a little bit on how they kind
Chris: of invasion get and get like workflows being integrated because i don't know if it's fully there yet.
Wes: Yeah we haven't tried this part and you might need to have your own relay so
Wes: right now we've we have we've been making progress towards it but we have not
Wes: hosted our own relay yet just because this is all super new so we want to try
Wes: it out so we're trying the hosted relay that you get by default but,
Wes: there is git integration So firstly, it's built on top of S3.
Wes: So you provide it in S3 as the backend storage for it. Objects are stored as
Wes: content-addressed packs and a manifest JSON that tracks refs and the pack list.
Wes: No database holding Git objects.
Wes: And then they do sort of a NIP 98 hijack. Essentially, they use the Git credential helper,
Wes: to plug in Nostr as the identity layer. So the helper signs a Nostr event over
Wes: the repo URL instead of a password.
Wes: The relay verifies the Nostr sig. That's the entire auth layer.
Wes: No SSH keys, no tokens, no OAuth.
Chris: That is such a brilliant use of Nostr once again.
Wes: Just a signed JSON event.
Chris: It becomes the identity layer everywhere.
Wes: And then the Nostr events themselves basically are the feed that builds the
Wes: UI layer. So a successful Git push emits kind 3618 into the Buzz channel.
Wes: Patches, PRs, issues are all just NOSTER events too.
Wes: The channel timeline is the code review surface.
Wes: And then there's also some policy stuff, like you can do protection rules and
Wes: various other things. But it's all basically tried to be plumbed on top of S3 and NOSTER.
Wes: And then it's an HTTP server on top.
Chris: And of course, if you use their hosted version, they just set all that up for
Chris: you. If you want to self-host it, you've got to provide the S3 backend.
Chris: But to the Nostra as the identity layer there, Nostra as the authentication layer there.
Wes: And what's crucial is it's Git's standard smart HTTP protocol.
Wes: The credential helper just swaps the password for a Nostra event.
Wes: The server swaps the file system for S3 and CAS. Git itself doesn't know anything changed.
Chris: It's pretty cool.
Wes: And that was part of the goal, right? If you're going to be replacing something
Wes: like, hey, we also do code hosting, you kind of need it to work with mostly standard tools.
Brent: That's really elegant.
Chris: What I was able to do, too, is I was able to bring over my NSEC identity to
Chris: Buzz. So when I logged into our Buzz community...
Chris: It was the same identity I have on Noster. So you can verify my key across multiple
Chris: platforms now, so you know it's really me in there.
Chris: And I didn't have to create a new account. I didn't have to create a new profile.
Chris: I didn't even have to set a profile picture.
Chris: I just signed in with my NSEC, and it pulled that from the Noster network,
Chris: and I'm using that same identity now across five apps. It's so awesome.
Wes: Which also means there is some multi-relay support already, because that stuff
Wes: was synced to other relays.
Chris: Yeah, true, true. So I think the Git integration is particularly useful.
Chris: The way they foresee these agents interacting with the external world is going to be through MCPs.
Chris: And when you install Buzz, they kind of intend for you to use it as an agent
Chris: orchestration platform itself, sort of like an OpenClaw or a Hermes.
Chris: And then you can tie it to an API key for the compute, or you can use Codex
Chris: or Cloud Desktop or whatever. There's a couple options there.
Chris: and it acts as the agentic harness. And then they foresee you using MCPs and
Chris: whatnot to interact with the external world and Git and all this kind of stuff is integrated.
Chris: And the idea would be that if you were a business or a small team and you didn't
Chris: already have, I think, an OpenClaw or a Hermes setup today, you would deploy
Chris: Buzz and it would come with a handful of agents. You could create more.
Wes: Yeah, and we kind of tried it a little bit from there. We took two paths.
Wes: One is you can do what's called a Buzz agent. where it has its own sub-process
Wes: that spawns as the agent's runtime and loop, and it directly goes and talks
Wes: to, say, an OpenAI-compatible endpoint that you put in there.
Wes: But the other one is it can launch a different harness via ACP,
Wes: sort of, you know, Cloud Code or Codex or OpenCode or something,
Wes: and that can also be sort of how you run the agent.
Wes: which we tried a little bit with your setup.
Chris: Yeah. So do you think there's any other basics we've talked about before we
Chris: talked about integration and what we tried to do with it? Is there any other
Chris: high-level stuff around Buzz? I mean, people can always ask if they have questions.
Brent: But let's talk about installation because you had to wrap it a little bit for our own purposes.
Wes: Yeah, true. So out of the box, I think they have a Mac app. I don't know about
Wes: a Windows app. Mobile is just shipping now, so it's moving really fast.
Wes: Obviously, we wanted to try it on Linux, and they do have an app image and a dev.
Wes: I spent a little time I assume those will probably work pretty widely and they've already made,
Wes: improvements to some of the app and stuff to make like the gstreamer libraries
Wes: it bundles a little more compatible on a wider class of distros which is maybe
Wes: partly what I was running into,
Wes: I tried getting you know there's app image run for Nix OS and so I spent a little
Wes: time trying to get that to work ultimately it just became easier to do some
Wes: patch elfing on the files in the dev so I was able to make a flake for that that builds the,
Wes: buzz desktop app which is Atari app with TypeScript UI Atari's like this Rust
Wes: runtime electron alternative that is, frankly, a lot nicer, actually.
Wes: And then it also gives you the Buzz CLI, which is like JSON output primarily,
Wes: really intended to support agentic use.
Wes: And then on the flip side, you could also run the Relay, which is the Rust application,
Wes: which we're not doing yet, and it's a separate package.
Chris: Mm-hmm. There you go. Although we'll probably play around with running Relay.
Brent: And it's moving fast, as you mentioned. It's super, super fast.
Wes: I'm already one release behind on the desktop app, and I built it twice yesterday.
Chris: There you go. So, um, I think that's, those are some good basics.
Chris: I do feel like there's, it's such a big topic and it is moving so fast that
Chris: I think there's some more stuff to cover. But one of the things I wanted to
Chris: mention is we're going to attempt to share a invite link for our buzz community.
Chris: We created a Jupiter colony buzz community and, um,
Chris: We may have figured out a way to invite you where I don't have to individually
Chris: add your end pubs. It's experimental. Yeah. So it might not work.
Wes: That is one area I was looking a little before the show. And if we do ever eventually
Wes: run our own relay, there is an environment variable you can set that just says
Wes: like, not even the method we're doing, like just have at it,
Wes: come join the community. So that could be a future. Not sure.
Chris: Right.
Wes: I don't think we can do that with the hosted relay.
Chris: But I think we do have an invite link that is valid for 30 days where I don't
Chris: have to add their end pub.
Wes: And help us test it because we've already made accounts.
Chris: Yeah, we've made accounts. We're in there in the Buzz community,
Chris: and we're going to be playing with it.
Chris: I mean, we figure why not kick the tires on their hosted setup,
Chris: figure out what doesn't work, and then we'll run our own eventually.
Wes: Yeah, after we've learned a few lessons.
Chris: Because I actually think there could be real use for JB here.
Chris: We don't really have a particular agentic harness picked out for JB,
Chris: and we would really love to find something like Slack that isn't Slack.
Chris: So this sort of solves both of those problems. And yes, we have a public Jupyter
Chris: Broadcasting GitHub, but for a lot of our internal tooling, we've been considering
Chris: a self-hosted GitLab or 4G or something, and maybe this would help us with that as well.
Chris: But I think the question becomes that if you've already been playing with agents,
Chris: or if you want to run a different agentic harness, like an OpenClaw or a Hermes,
Chris: how do you integrate that with something like Buzz?
Chris: Since Buzz is trying to both be the agentic harness and also the collaboration
Chris: space, you want to bring your existing agents in if you have them.
Chris: That right now is a bit of a mixed bag, and we tried to get it working,
Chris: and we'll tell you how it went next.
Brent: Well, I'll admit, yesterday while you two were heads down working on all this
Brent: stuff, I was packing some boxes. So I don't quite know how all this went.
Brent: Yeah, and moving motorcycles around. Well, that's true. That was the fun part.
Brent: So, Wes, you ran into, I'm sure, some problems. Some things went well. How did it go yesterday?
Wes: Yeah, well, okay, so we got a few default agents set up, right?
Wes: We got that kind of baked.
Wes: I put in an open router API key, and so we got one agent going that could do that.
Wes: And then Chris had it hooked up to Codex, and so we had another agent like that.
Wes: We already started running into some bugs. For instance, right now,
Wes: we can't use each other's agent.
Wes: We can see them. They're in the same channels and all that, right?
Wes: Because it's all just Noster.
Wes: But there's a bug in the client. And maybe it's fixed. Again,
Wes: I'm one version behind at this point. But I think that's still open.
Wes: When you do tagging, it's just another piece. It's like a tag that goes in the
Wes: Noster event. So there is a difference between if the UI highlights it as a
Wes: structured little tag versus if you just type at username or whatever.
Wes: and so because it does that it tries to uh we can't add each other's bots and
Wes: that's how you talk to them so already running into some problems and it's sort of,
Wes: you know it's early project and i think it was really inspired by something,
Wes: you know it's by folks that are doing a lot of agentic development and maybe
Wes: using something like open code or clod code and we've talked a little bit about
Wes: this it's kind of a context shift a mind shift between if you're running something
Wes: like hermes or open claw yeah sort of flips the model a little bit.
Chris: Yeah really yeah.
Wes: And so right now buzz is really optimized for, like, either it runs it directly,
Wes: or it launches your harness for you as an ACP.
Wes: Right? So it'll launch open code as an ACP and it can use it.
Wes: that's not really super compatible with, like, I already have my own whole NixOS
Wes: server that maintains itself as a Hermes instance. Like, I want to use that.
Wes: I mean, I might use some of these other bots, too. And that's where Chris is
Wes: talking about, like, there's a difference between if you have a bunch of existing
Wes: infrastructure or if you can kind of start fresh.
Chris: Yeah. Yeah, if you're already into building your own agentic system and you
Chris: have been using them for a bit, it's a little trickier to integrate them with Buzz at this point.
Brent: It sounds like every couple months that's a disadvantage.
Chris: Yeah, although it seems to be that native Hermes integration,
Chris: or at least an initial form of it, is landing upstream in Buzz.
Wes: Yeah, they're working on it. I think it's making it so it becomes ACP-aware,
Wes: so you could use Hermes ACP with it.
Chris: In our testing so far, though, there has been some limitations when using the ACP.
Chris: It hasn't been as useful as just setting up the CLI or trying to go NOSTER directly.
Wes: Yeah for sure and um it it's still kind of built around this notion of like
Wes: the buzz desktop because the relay is really pretty stateless minus like the
Wes: git stuff right yeah um so like
Wes: your desktop is going to be doing a lot of this stuff which means then,
Wes: you're kind of it's all doing the desktop and then it's launching more services
Wes: under that and all the mcp stuff is like,
Wes: standard i own only so it's really not built with much sort of networking in mind but you know what,
Wes: is nostr and that's where it's sort of like okay the direct buzz integrations
Wes: we did get it working with the cli that was working pretty well so like you just export your nsec,
Wes: and then you can set the right relay url and you run the buzz cli and you can
Wes: list channels you can get events and you can send messages and all that so i was able to trigger,
Wes: uh my bot or chris's bot by the cli because it doesn't have that bug you can
Wes: tell it exactly who to like at mention or whatever but that's not really the
Wes: experience we were going for.
Wes: What we wanted, right, was we wanted MyHermes to be able to participate in Buzz
Wes: as its own thing, like as a full...
Wes: just like me, right? And so that was kind of our goal. And what's great about
Wes: that is the root of that is Nostre because it's all gated on the Nostre private key.
Chris: It is the core of the architecture, right? Like it's not an API.
Chris: It is built around Nostre. So if your application or agent can speak in the
Chris: Nostre protocol, you can talk to Buzz.
Wes: And so this is where it's so great because I could have a bot help, right?
Wes: So like I generated the new NPUB and NSEC for it,
Wes: but then because i already had my own nsec that you had added for me with my
Wes: regular buzz account and i was an admin,
Wes: the relay would let me sign events to make admin updates right and so what i
Wes: needed to do then is i could take my new bot you know my hermes's new key
Wes: and then add that to the relays relay members table which is a kind 90 30 admin
Wes: event and that kind of controls if you don't have it wide open that controls who's allowed in,
Wes: uh and then it could just add it to channels it could set uh you know set its
Wes: nice screen name set its user profile because all of those are just signed events
Wes: to the relay so that got us an identity but next,
Wes: you know we actually needed to be able to talk to this thing and so one we did
Wes: investigate a few different options here right we wanted to take the easiest
Wes: path and the fastest path because uh we were both trying to pack in yeah.
Chris: Yeah yeah um.
Wes: And so one thing is we did see that you could have
Wes: uh workflows so you could set it like hey when an event comes in like that looks
Wes: like this that tags this user has this in the reply or whatever run this you
Wes: know it's kind of like a yaml style workflow run this thing send a webhook it had webhooks,
Wes: it has scheduled events you can set up crons in there so we kind of got some
Wes: of that working but again we weren't running our own relay and this is where
Wes: i really think we could probably do more,
Wes: I got the crons working, but when I tried to do the, like, at mention thing,
Wes: the webhooks were just never fined. So I don't know if that's just a bug or
Wes: it's turned off for the hosted thing, so they just don't have to,
Wes: like, smash the internet with a bunch of webhooks.
Chris: And they're growing. The adoption they're seeing right now is bonkers.
Chris: I can imagine the fact that the relays are even up and running is impressive.
Brent: Yeah.
Wes: So we were kind of hoping you could get a first version of this where,
Wes: like, the webhook would wake Hermes webhook integration, and then the bot could
Wes: wake up, and it would have the buzz CLI, and then it could reply.
Chris: Yeah.
Wes: And that was kind of like a poor man's version.
Chris: Yeah, because you're depending on this thing, you know, the webhook firing,
Chris: then it's got to fire up the CLI first, and the LLM's got to interpret what
Chris: it gets from the CLI. There's a lot of bits and pieces in there.
Wes: So what we ultimately did is we built ourselves basically first-class buzz support,
Wes: or as close as we could get, right?
Wes: So the Dataflow is a buzz user. Let's say I'm trying to tag my bot,
Wes: right? We got my bot added in there, so I tag my bot, ask it for some advice.
Wes: I asked it, for example, to check if Linux Unplugged was live right now.
Wes: That goes to the Nostra Relay. Fans out to anyone that's subscribed to that
Wes: kind of event, which is like updates in the channel.
Wes: And then I have a buzz bridge running. And that's a little Python sidecar system
Wes: D service. It connects to the relay via WebSocket, which is how Nostra works.
Wes: It authenticates as my Hermes bot. And then it filters for mentions of its name in the channel.
Wes: And then anytime it gets a match, it forwards that to a little web server I'm
Wes: running in a Hermes adapter plugin that's running. So then it receives the message,
Wes: creates a structured event, dispatches to Hermes agent pipeline.
Wes: And then Hermes processes and returns a text response. and then we send that
Wes: back to the bridge, which is able to sort of do all the Nostra stuff,
Wes: sign it correctly, and publish it to the relay.
Wes: And then so from the Hermes side, it basically just looks exactly like how Telegram
Wes: looks. So you can have sessions on Buzz and you can have sessions on Telegram.
Chris: It's another platform it connects to. Exactly.
Wes: It's not perfect. Like some of the tool call metadata has ended up in the general
Wes: channel instead of like the thread that I was asking it in or that kind of thing.
Wes: But I mean, it's working.
Chris: I mean, the project might want to take a look at this. Hermes,
Chris: you guys should take a look at this. just this is just native nostril integration
Chris: and it's better than the acp.
Wes: And you might not need to really have like i have it in two pieces where we
Wes: have this like bridge server and then the part partly because it just made it
Wes: simpler and it was faster instead of having to rebuild hermes a bunch i could
Wes: just iterate on the bridge and it's just like a htp protocol
Wes: but if you wanted to there's nothing stopping you from having a hermes plugin
Wes: that just does all of that in
Wes: one little box so there's definitely a lot of potential here and there's no
Wes: because it is not some custom thing on some custom protocol.
Wes: Because it is just Nostra and libraries exist for this, it is all open to build
Wes: on. We don't have to have a Buzz SDK to make any progress.
Chris: This is the bit that we should have said at the top because people that aren't
Chris: into this are probably tuned out by now. But what will be missed by our community
Chris: is this is the most Linux-friendly,
Chris: slack killer that's ever been invented and it has the most devops workflow kind
Chris: of feature set that's ever been implemented in one of these.
Wes: It's super transparent the apis are all out there there's standard libraries to work with them.
Chris: Uh the entire entirety of the nostril ecosystem is open source every nip is
Chris: open source that they're using and buzz is apache 2.0 open source and,
Chris: everything is an open protocol you can build simple clients in really just minutes
Chris: there's lots of example code out there for Nostra clients as well.
Chris: We as a free software community have, we are so foreign to how much how well
Chris: this is built for us that we don't even recognize it.
Chris: We don't even recognize it. We're so unused to it. When it happens we don't see it.
Wes: And it's so composable, right? Like you don't,
Wes: You don't have to have a Slack API. You can just, no permissions needed.
Chris: Right.
Wes: Like, you could, I mean, you might need, depending on how the relay is set up,
Wes: you might need to author the relay or whatever. But, like, you can just subscribe
Wes: to whatever events you want. I only care about Git PRs. I only care about messages
Wes: from Chris. I don't need a full client. I can just have a Python script that
Wes: does that and triggers whatever downstream automation I want.
Chris: Or creates a dashboard.
Wes: Totally.
Chris: The dashboard could be the consumer, not the chat client. And so when you think about this is
Chris: your projects and your infrastructure and your, all of this,
Chris: like it really does matter that you can self-host this and that it is using
Chris: an open protocol and standards.
Chris: It matters more than I think we wanted to admit because we were so stuck with
Chris: such bad options before.
Chris: But now you've got a central spot where the agent and the human and everything
Chris: is tracked and they can work together. It's just so fantastic.
Wes: And, you know, we had been kind of struggling. Like we've been Nostra curious.
Wes: You've played around with it. I think we've all played a little bit with it.
Wes: You know, Fountain has support.
Wes: but we hadn't really crossed a line yet to like, okay, I can see how there could
Wes: be compounding returns when you have a relay, but like we didn't,
Wes: there was no killer app yet that we'd really pushed us to have the relay.
Wes: And this could be that. And then you could really see how you could build a lot more on top.
Chris: Yeah, you just keep building. And once you have that as an identity layer,
Chris: why wouldn't we build it into our other applications?
Chris: Even our internal tooling, why not? If we've all got mpubs and nsacs and whatnot,
Chris: it'd be an easy way for us to authenticate our internal tooling.
Wes: And then we don't have to rely on some GitHub OAuth or whatever random third-party system.
Chris: Yeah, it's decentralized.
Brent: But then you'd know it was me trolling you.
Wes: Yeah, you better sign any updates you make to my default text editor.
Chris: Right. As excited I am about Buzz now, I think there could be potential for us to use it at JB.
Chris: I do think for most people, it's maybe worth waiting a little bit just because
Chris: of the speed of development. And if you've already got something set up,
Chris: if you're brand new to this concept, this actually could be a pretty nice way
Chris: to get started. They make it really easy.
Chris: The primary vector is you just download the desktop app and go through the signup workflow.
Chris: At some point, you're going to have to figure out how you want to do compute,
Chris: but they'll help you with that as well.
Chris: I mean, it really is bringing so many different tools into one place that if
Chris: you haven't yet experimented with an agent platform, Buzz could be a good way
Chris: to go, and at least you're using an open source one.
Chris: It's backed by a company like Block that's got funding, and they're going to be around for a while.
Brent: The thing I would say from my experience is you don't necessarily need to even
Brent: know that there's Nostra on the back end.
Chris: No, absolutely.
Brent: But as a regular user, you need an NPUB, right?
Chris: But it'll help you generate that.
Brent: Exactly. And then other than that, it just looks like any other productivity
Brent: chat app for teams and stuff.
Chris: Yeah, we're focused on the NOSTA part because it's like finally somebody built
Chris: a web browser on this hypertext transport protocol standard that we're really
Chris: excited about. And look, this cool web browser that's using this hypertext transport
Chris: protocol, I think it's got a lot of potential.
Chris: Aren't you guys excited? It's finally happening.
Brent: Yeah, but what can we do then?
Chris: But like the average, you know, web user today doesn't give a crap that the
Chris: web uses HTTP. It doesn't matter at all.
Chris: That's the same here. But as nerds, we're excited about the fact that Nostra
Chris: is actually getting used in a really elegant, useful way here.
Chris: It's not truly distributed, but it is distributed in the sense that you can
Chris: self-host your own relay.
Brent: And the beautiful thing is like.
Brent: built for nerds but it's also just built for everybody.
Chris: Oh yeah it's.
Brent: Beautiful like simple ui yeah they did an amazing job and they're only four
Brent: months in which is really impressive.
Wes: It is still new there like the uis keep getting updates i'm seeing that in the
Wes: commits and like yeah there's some stuff you can do like via yaml or the config
Wes: file and you might want to because some of the like editing settings can be
Wes: a little fussy right now that kind of thing but that's just going to be the polish layer right.
Chris: Yeah yeah and there may be some things that are just simpler to fire off right
Chris: now via the cli that aren't exposed in the gui totally they'll probably add
Chris: but yeah Yeah, and the mobile apps are just shipping for Android and iOS,
Chris: and they're looking good, but early. You know, it's good, but early.
Brent: So do we have an URL we can share with the community for joining our crazy Buzz system?
Chris: Yeah, it's not super simple for the long invite, but the community URL is colony.communities.buzz.xyz.
Chris: And we'll have an invite link to get you access in the show notes.
Chris: But the community itself is colony.communities.buzz.xyz, and that's self-hosted,
Chris: or that's hosted on their relay.
Chris: we may host one eventually or maybe we'll host our private one I could imagine
Chris: keeping our public community buzz if it's stuck around on a public relay on
Chris: their services and then our internal one would be a self-hosted something like
Chris: that kind of like how we probably should have done Matrix yeah.
Brent: Learning,
Brent: holy jeez, while we've been busy this week some boosts came in,
Brent: we have quite a baller boost here karen sent us in a what is this a mighty row of ducks oh 222 222 sets.
Chris: Wow, thank you.
Brent: This was also sent via our web boost, just putting that in there.
Chris: Okay.
Brent: He says, not really giving back on a particular episode, just trying to give the show a little love.
Wes: Oh, thank you.
Chris: Thank you.
Wes: Always welcome.
Chris: Love is appreciated. Send it back your way.
Wes: Well, Greg, the lawyer comes in with 150,000 cents.
Chris: All right.
Brent: Wow.
Wes: Boost and end to support the trip to Canada.
Chris: Aha.
Brent: Did you make it?
Chris: We did.
Wes: We did.
Chris: Right, yeah.
Wes: I'm on the verge of joining the ranks of Tesla Nation. I look forward to trading stories.
Chris: Greg the lawyer.
Brent: Wow.
Chris: It's, you know, I don't like to talk about it because I don't like becoming,
Chris: sounding like I'm a salesperson because I don't, you know. But the self-driving will change your life.
Chris: The car drove us all the way from my farm to here.
Chris: I overtook twice, not for safety reasons, but just because I wanted to pass a guy.
Brent: For unsafety reasons. Yeah, for the opposite of safety reasons.
Chris: Speed reasons but otherwise the car drove us so for probably a total of 30 seconds i drove.
Wes: Through the mountains through long hours of no connectivity.
Chris: Yeah hours of no cell signal driving and navigating just fine um and the energy you get,
Chris: versus a 12-hour drive where you do all the driving is it's incredible right
Chris: like you still have the energy to set up your campsite interact with the people
Chris: you're coming to see and say hi to them like in the past when i'd take the rv
Chris: i'd show up and I'd be like, Hadiyah, can you just,
Chris: hold people off for 10 minutes so I can just have 10 minutes of quiet to get my shit together?
Chris: Because it's tough. It's tough when you drive a rig like that for 12 hours.
Chris: But in the car, it drives itself that's climate controlled.
Chris: It's so easy, Greg. You're going to love it.
Chris: You're going to love it, Greg. Tell us how it goes, okay?
Brent: Greg, make sure you use Chris's referral code.
Chris: I should have. Greg, I probably have one, Greg.
Brent: Is that a really thing?
Chris: I don't know. Whomever whiz comes in with a row McDuck's.
Chris: What I'm looking for is a back-end database with structured data managed by
Chris: an LLM. A series of wiki pages in addition to adding their own natural language
Chris: relationships and semantic info.
Chris: It will then dynamically be referenced and reference the structured data when
Chris: appropriate. What you got?
Brent: That's a challenge.
Wes: Yeah, I don't know if I have that, but I want that now.
Chris: Isn't that kind of log sack in a way? Yeah, it's close.
Wes: I don't know if it's exactly that with the wiki pages, but it does do a lot
Wes: of nice stuff with references in the graph.
Chris: All right.
Wes: And it is now using a backend database and tons of structured data.
Chris: It's getting there.
Wes: Including a nice query language.
Chris: Mm-hmm, mm-hmm. Yeah, we, yeah. Patient tech in our chat room says,
Chris: wait, you guys went without a follow, without a map that we could follow? That's true.
Wes: Yeah, we didn't do a tracker.
Chris: Two reasons. It wasn't a race. Brenda was already here. But the other reason
Chris: is a ginormous portion of our drive does not have cells in the chat.
Brent: Yeah, that's true.
Chris: So we were just out of it.
Brent: Well, weren't you getting a Starlink? Didn't that?
Chris: Shut up, shut up. That's too soon.
Brent: Gene Bean sends in a row of ducks. Saying, for Linux Unplugged 675,
Brent: have you played with the BBS on MeshTastic yet?
Chris: Is this a thing?
Wes: Apparently, Gene does not send us a link.
Chris: I mean, I see a Reddit thread introducing, I think this kind of rings a bell,
Chris: actually. Introducing MeshBBS, bringing old-school open-source BBS fun to MeshTastic.
Chris: This is 10 months ago. I've been working on a project called MeshBBS.
Chris: I think this was sent in. This is ringing a bell now.
Chris: And I think it's ready to share. MeshBBS is a lightweight, text-based bulletin
Chris: board system. we know PBS is okay Gene you may have just created Gene strikes
Chris: again you may have just created a little project Gene how awesome would it be
Chris: if we could BBS over Mesh-tastic.
Brent: Jeff get on it.
Chris: Yeah PJ geez Brian from Boise thank you Gene Brian from Boise comes in with 4,444 Satushers,
Chris: Our family took a trip, our first multi-state EV road trip, last week.
Chris: We stopped in La Grande, Oregon at Electrify America Station with chargers labeled
Chris: for 150 kilowatt and 350 kilowatt.
Chris: They maxed out at 50 and 80. The screen wouldn't respond, so I had to call support.
Chris: Oh, man. When I went down the road to a charge point station and started charging
Chris: through the Kia app, I got decent speeds, and then we were on our way.
Chris: I took a quick trip to Portland, or I'm sorry, Port Townsend,
Chris: Washington, where the Level 3 charging was fast enough. Scan a QR code,
Chris: pay it directly in the browser. No account needed.
Wes: Okay.
Brent: Nice.
Chris: So on our ride out, every stop was a different vendor of EV.
Brent: That's right. So that is painful.
Wes: Sampling them all.
Chris: And ironically, the only one we had a problem, one did overheat,
Chris: but it was like 113 degrees Fahrenheit outside.
Brent: That's not that hot.
Chris: I know, but it did.
Brent: They should be designed for this.
Chris: Also, the power hose was like totally screwed up.
Wes: We were able to just move to like another one in the lot and charge.
Brent: So not so bad.
Chris: But the big embarrassment of
Chris: the trip was Rivian. Rivian, for non-Rivian owners, was such a facepalm.
Chris: Their recent app UI update actually removes the ability to do charging.
Chris: There's nothing in the UI to start a charge.
Wes: I know that sounds like it can't possibly be true, but it is.
Chris: Brian, it was so bad because we were out there in 113 degrees and we cannot
Chris: figure out this app. And we think maybe we have like heat delirium or something.
Chris: Like there's just no way that Rivian, an actual company that builds cars.
Wes: Nice car. I mean, we've seen in lights and reviews. It's crazy.
Chris: It was crazy.
Wes: And the screen is like impossible to read in the glaring sunlight.
Chris: Yeah, it's so bad. So bad. So like when you had a chance to go to a supercharger,
Chris: it was like, oh, that's work. We'll go that. We'll go even out of our way if
Chris: we had to. It was because you just know you're going to plug in. It's going to work.
Chris: This was wild. But other than that, it was actually really good. And,
Chris: even with that, we still had sufficient coverage where we were never, ever, ever, ever,
Chris: in like the red we were always plenty of charge.
Wes: Yeah you we had built out a whole plan of like try to charge here we expect
Wes: to be at this you know a depleted charge level when we get to the next stop
Wes: and we're almost always way above that.
Chris: The situation is is that you charge so fast these days that it really isn't
Chris: a big deal to just put a little extra buffer on there so we always had extra buffer.
Brent: So you didn't have any like distance anxiety and all.
Chris: Never never once.
Brent: More just compatibility with the.
Chris: Charger anxiety yeah okay interesting but even when that charger didn't work
Chris: because we had built up such a buffer we just moved on to the next one nice Wes you want to take Dan.
Wes: Yeah Dan comes in with a hundred.
Chris: Dollars oh.
Wes: Since Linux Unplugged is having revenue problems, I'd throw a few bucks extra.
Chris: Thank you.
Wes: Can I advertise?
Chris: Yes.
Wes: Once a month, I'll tell you my favorite floss. This month, try out Street Complete for Android.
Wes: It's a gamified way to make OpenStreetMap better.
Chris: Street Complete.
Wes: One more way to ditch Google.
Chris: I like that it's gamified.
Wes: That's cool.
Brent: Make it fun.
Chris: Honestly, I don't know why more
Chris: people don't boost in and shout out a business or a project they love.
Chris: It just seems like a brilliant use of the medium to me. So, absolutely do it.
Chris: So, streetcomplete at streetcomplete.app.
Chris: Help improve OpenStreetMap with StreetComplete. This app finds missing map data
Chris: in your vicinity and displays it on a map as a quest.
Chris: Solve each quest by visiting the location on the map and answering simple questions to update the map.
Chris: The info you enter is directly added to OpenStreetMap in your name without the
Chris: need to use another editor.
Brent: That's awesome. I have to say, I used this app.
Wes: Oh, you've been hiding it from us.
Brent: Maybe 10 years ago. something like a super long time ago because I was trying
Brent: to push for better maps on Android. I mean, we're still, we can do better.
Chris: Well, we need better maps outside of Google.
Brent: Yes. And at that time, the OpenStreetMap data for North America was so-so compared
Brent: to Europe, right? Because it was quite a bit more popular there.
Brent: So I was trying to do my part. And I will have to say it was a great app back then.
Brent: I couldn't even imagine how great it is now.
Brent: It's probably pretty awesome. So I'm going to give this a shot.
Chris: Great. Senior Smile comes in with a member boost.
Chris: Now that Brent has dropped plain text accounting, I want an entire segment on it. Oh, senior smile.
Chris: I have a soft spot. I used Microsoft Money before in 2005.
Brent: Oh, my goodness.
Wes: Microsoft Money. I forgot about that.
Chris: Early Money was so much better than Quicken back then. I mean,
Chris: for my use, it was incredible.
Brent: Why'd you get rid of it?
Chris: Well, I wasn't really a Windows user, but when I got to play around with it, I was always blown away.
Chris: I converted to GNU Cash for a while, then KMyMoney, and then BeanCount plus
Chris: Fava. And now I'm back to K-Money plus H-Ledger.
Chris: What are you all doing for your personal or business accounting?
Chris: Well, mine's called... I hired out.
Brent: You have a human doing it? You don't need software?
Chris: Yeah, but mine's a little more complicated than the average bear.
Brent: Wes?
Wes: I have used plain text accounting in the past.
Wes: Right now, my accounting needs are fairly simple.
Wes: So I don't have a crazy system. But especially now with the rise of more tools to help,
Wes: I was actually considering I used the original Ledger although I've played with
Wes: HLedger more than a few times and it does seem like now that like manipulating
Wes: the data double checking things writing scripts around it is easier it kind
Wes: of might be the time where I go back to it.
Brent: I don't feel so bad about my decision then because I was dabbling with this plain text accounting,
Brent: because it follows all of our principles guys it.
Wes: Sure does this.
Brent: Is exactly what I want and I but then I realized I guess, much like Wes, which surprises me that,
Brent: I don't have any of the programming skills to bring up my own reports for the
Brent: things I wanted to know around my own finances.
Brent: And so that's the number one thing that kept me from using it.
Brent: But these days, I feel like we've got several robots that are way better at this than I am.
Wes: It's interesting. My main reason was not that I think I could do.
Wes: Mine was mostly just I didn't,
Wes: I didn't have enough things where I needed the granularity, right?
Wes: So it's like, I want to do a high level budget to understand where my cash flows
Wes: are going. But the idea of making sure that each record is accurate was not
Wes: the priority. So that was the part where I was like, that's not really worth
Wes: it. I don't need the granularity right now. If I did, then I would.
Wes: But you're right. Reporting is a whole other aspect.
Chris: You know, I just realized, boy, maybe if I had a cash flow. We do need an income
Chris: to track. All right. We got to move on, you guys. Good question, though.
Wes: We should maybe do a segment in the future. Sure.
Brent: Moan sent in a members boost.
Brent: It reads, I also recently wanted to change up my notes app. Oh, dangerous.
Brent: Obsidian is great, but I wanted an open source, simple, and got the struct from
Brent: the OS like Obsidian. So I settled on VS Codium with a custom workspace that
Brent: only has one tab, no sidebars, and a search bar at the top.
Wes: Interesting. Custom little environment, kind of.
Chris: I like that for a dedicated editor. Seems like it gets tough,
Chris: like, in the mobile application.
Brent: Right.
Chris: But for a dedicated sit-down, like, a notes PC in the garage.
Brent: I understand this. I've wanted like a dedicated application.
Brent: I'm using Kate these days and have for a very long time.
Brent: But I do many things in Kate. But having like one dedicated,
Brent: like you always bring it up, maybe even with a keyboard shortcut and it's always
Brent: your notes app. That sounds sexy.
Wes: Anton comes in with a member boost. I'm thinking of trying Hermes at work.
Wes: To be useful, I need to teach you to be a subject matter expert by feeding it
Wes: a bunch of vendor docs, rdocs, example configs, that kind of thing.
Wes: Can it learn that much information?
Wes: Any tips for giving it lots of data?
Chris: Well, do you have any before I give mine?
Wes: Go for it.
Chris: So it's going to kind of depend on what the subject matter is format, right?
Chris: So if you could get all of the things you wanted to know in a really easy,
Chris: readable format, maybe structured data or even simple markdown,
Chris: you're going to have some options.
Chris: So here's what we do. And this is just going to be our workflow.
Chris: But we want to index every podcast, what we've talked about,
Chris: what projects we've talked about, what picks we've made, what we said about
Chris: a certain subject, what predictions we made.
Chris: And so we're using a tool called QMD.
Chris: And QMD is like a vector index and search tool that takes your markdown or your structured data.
Chris: And it sort of creates these relationships in the search database that then
Chris: the agent or you using the command line can go back. And so, for example,
Chris: We could go back and we could say, you know, besides episode 677,
Chris: when else did Anton boost in?
Chris: And the agent would go back and find that specific thing for us by using the
Chris: transcripts, which then have been vectorized.
Chris: And then we use QMD as the front end to search that and query it and index it.
Chris: So QMD could be one route. I'm sure there's probably a thousand ways to solve this.
Wes: I think the core piece is at that scale, you can't just rely on it all being in context.
Chris: Yes.
Wes: Unless you have some crazy giant context model.
Chris: Yeah, what you're going to need to rely on is skills to access a storage that's
Chris: quickly and retrievable, right?
Wes: So as you have it go through all of that, it needs to be generating some sort
Wes: of persistent on-disk output, whether that's,
Wes: you know, an LLM wiki-style thing, whatever kind of structure you want it to
Wes: have, and then also perhaps is maintaining a database, or the harness is automatically
Wes: doing it, or you're having it feed it into QMD directly.
Wes: There's a lot of options there, but essentially you could kind of make sure
Wes: that it's building a structure so that in the future, it has clear skills and
Wes: clear storage of where everything, when it doesn't know something,
Wes: it has clear guidance for how to go learn it so that it has it fresh in that context.
Chris: Yeah. All right. James Mudd comes in with a member boost. Loving the EV bonus,
Chris: working as a dev at a large UK CPO. All of your complaints are valid.
Chris: But I think maybe things are a bit better here than they are in the U.S.
Chris: Not sure if you know about Octopus Electroverse, but it's great for charging
Chris: stops and planning Android Auto and CarPlay. electroverse.com.
Wes: That's a great name. I'm not familiar, but cool.
Chris: Yeah. Uh, I have been using a better route planner a bit, but, um,
Chris: I sort of went overboard and created the ultimate front end for my agent.
Chris: So it's basically able to query every EV database that has an API,
Chris: including government databases. And then the big unlock that I think was the
Chris: TomTom API. Because the TomTom API turns out to have a ton of stuff about EV
Chris: and charging stations and all this kind of stuff.
Wes: So you just did what Anton was asking about?
Chris: I guess. Yeah. I guess so.
Brent: You're welcome, Anton. You sharing that thing?
Chris: You want to take Tristan?
Brent: Sure. Tristan sends in a member boost Oh,
Brent: About music playing boosts. Listening to this episode on an iPod.
Chris: Oh, wow.
Brent: Wow.
Chris: Still spinning rust? That's incredible.
Brent: You can upgrade them.
Chris: Yeah, I know, but still.
Wes: But did he?
Chris: Did he, yeah.
Brent: Earlier this year, I started Music Walks with my three-year-old.
Brent: Bought him a cheap MP3 player and just set off my old iPod.
Brent: The member URL for this podcast is an age-nix secret in my nix config and syncs
Brent: to my iPod when I plug it in overnight.
Chris: That, well done, sir.
Brent: Wow.
Chris: Wow, that is very, very impressive.
Wes: Showing us the way.
Chris: Mm-hmm. Mm-hmm.
Chris: Wow. Anonymous comes in with a member boost. If an anti-AI project gets an AI
Chris: contribution, well, that's really no different than a project with a CLA getting
Chris: a patch from someone who hasn't signed the CLA.
Chris: You inform them why you can't accept it, and if they don't comply,
Chris: optionally treat the bug like a feature request without patch.
Chris: That kind of seems like a pretty reasonable, I suppose it depends on the severity,
Chris: but that seems kind of like a reasonable view.
Wes: Yeah, I think especially for maybe like a feature request or a big,
Wes: yeah, patches. And hey, look, I added this thing.
Wes: I think where it does get trickier, like you're saying is, hey,
Wes: I noticed this flaw in the code base and here's a patch, but are you going to
Wes: throw the whole thing out or are you still going to fix the flaw?
Wes: Do you do the implementation work yourself? Do you rely on that code and fix
Wes: it up yourself or do you just throw it all away?
Chris: Yeah, the other wrinkle there, like Linus has said too is like if one LM tool
Chris: has discovered your zero day or whatever you can probably assume another one
Chris: has or will very soon so there is a bit of urgency to it.
Wes: And that's where there's maybe a distinction between sort of stuff you asked
Wes: for and did yourself and then stuff that just shows up at your door,
Wes: Eric the Magician comes in with a member boost.
Chris: Hey, Eric.
Wes: Eric says, no to ads. Speaking about our ad-free membership.
Chris: Yeah.
Wes: It took me too long to realize, though, that a membership discount meant less money for you.
Chris: Oh.
Wes: I have for years now, though, tried to increase what I pay each month.
Wes: It's not a lot, but I hope this can nudge others in the same direction.
Chris: Thank you, Eric.
Wes: Yeah, thank you.
Brent: That's very kind.
Wes: Thank you for the support for years, too.
Chris: Really, really do appreciate it because, like, you know, starting to build a
Chris: leg is here at the show. We want to keep going. and you guys are making it possible.
Chris: I'll wrap this up. ATX BBQ Nerd comes in and says, thanks for the AI coverage.
Chris: You keep it grounded and useful.
Chris: Linux feels more and more punk every year.
Chris: That really, when we saw that come in, I was like, that really feels true.
Chris: That really resonated. Thank you very much. Appreciate that, ATX BBQ.
Chris: Thank you, everybody who boosted, including those of you who streamed those
Chris: sats. 14 of you did, and collectively, not a bad little boost yourselves.
Chris: You stacked 32,539 satoshis.
Chris: You will in just a moment once you break it all down and you combine that with our boosters,
Chris: wow you know you just never know what direction it's going to go look at this
Chris: you never do know you don't I thought for sure we were going to come in light
Chris: this week on a travel week too because it happens so often but no you all stepped
Chris: up and you supported us when you combine the Fiat boosts and you value them
Chris: at the current SATs to USD
Chris: our total for this week when you combine it all together is 568,249,
Chris: Satoshis is,
Chris: Not going to complain about that at all. Heck no. Thank you,
Chris: everybody, very, very much.
Chris: It does mean the world to us, and we really appreciate everybody taking advantage
Chris: of boost.jupiterbroadcasting.com,
Chris: and we still have a good batch coming in through the traditional podcasting
Chris: 2.0 apps, and great to see the members taking advantage of their free member
Chris: perk and getting to send a free boost every single episode. We love seeing that, too.
Chris: Thank you to our members, and thank you to everybody who boosted this here value-for-value
Chris: podcast. We really appreciate you.
Chris: Yes, we do have dynamic ads. No, they don't pay much, and they're not like the traditional ad market.
Chris: And we think with this combination, we can continue on. And I hope,
Chris: I call it, I hope, we'll see, but I call it preventing the Linux magazine fate
Chris: happening to Linux podcasts.
Chris: Thank you, everybody. And with that, you know what? It's time for the picks.
Chris: And, Wes, you found us a Pipewire pick.
Wes: Yeah, I thought you might need it. You know, we're doing remote streaming.
Wes: We're doing more audio stuff.
Chris: Could not have been better timed. It is also a modern GTK LibWadia application.
Wes: Yeah, it's a control center for Pipewire.
Chris: Ooh. Tell me about it.
Wes: Really, for any Linux distro running Pipewire.
Chris: Yeah.
Wes: Right now, it's packaged in the AUR. There's install instructions for Fedora, Ubuntu, and Debian.
Wes: Not sure if it's in Nix yet, but surely, you know, we can fix that.
Chris: Matter of time.
Wes: Yeah. it does uh a lot uh i guess you could say just new in the most recent
Wes: version there's now a patch bay a live node graph of the whole session audio
Wes: and midi it's got a live monitor per service cpu and ram sparklines x-run and dsp load meters
Wes: it now has effects insert racks of ladspa or lv2 plugins into the signal path
Wes: virtual devices create null sinks virtual microphones combined aggregate devices
Wes: and buses and submixes each runs its own tiny process temporary or persistent
Wes: you choose, so creating or removing one never interrupts playback.
Chris: The new patch bay they're working on is looking really good.
Chris: I think it may eventually replace QP Graph that I use right now.
Brent: These projects remind me that we're not the only pipeware nerds out there.
Chris: I know, it's great to see. The live monitoring looks good. What I think stands out to me,
Chris: is the way the developer has managed to put together a pretty clean,
Chris: easy-to-follow UI for something that is extremely complicated and has a ton
Chris: of UI elements. There's just so much.
Wes: And have you ever seen the output of some of the pipework tools?
Wes: You get just gobs of JSON. And yeah, so this not only has a bunch of that exposed,
Wes: and you can do a lot of standard monitoring stuff, but you can also do fancy stuff all in one UI.
Chris: In your standard desktop audio pipeline, you can insert effects.
Chris: So if you're watching something that's
Chris: a little too quiet, you could pop a compressor on right there you know.
Wes: But from the same thing that can just sort of like manage your basic devices yeah,
Wes: yeah just that's the thing it's like we've we've had a lot of great tooling but then in particular
Wes: before linux audio was so bifurcated between like also at first and then pulse
Wes: and then with jack on the side as its own universe
Wes: and pipewire is finally bringing them together but we've had a lot of composable
Wes: tools mostly but have never really gotten to the full thing that it could be
Wes: in the new era and maybe this is the start i feel.
Chris: Like I think it is actually, that's such a great way to put it.
Chris: It's actually unlocking the real Pipewire potential. And we've needed good,
Chris: good. Oh, I'm so excited about it.
Wes: Because the bones are great. The bones are there.
Chris: They're there. Pipewire controller.
Brent: I've also said at the end of the read me here, there's a, if you like tinkering
Brent: like me, here are some cool Git hubs to visit for sound tools list.
Brent: And there are, I don't know, 10 different Linux audio sound tools here all worth looking at.
Chris: I didn't even see that. That's fun.
Brent: Okay. There's one even called gentle dynamics.
Chris: It's been a good week of finding tools. Oh, yeah, classic easy effects is listed
Chris: in there. Got to give that a shout-out.
Wes: Also kind of great. I think you'll have to see there's a thanks at the end to
Wes: Wim Taman's, past guest on our show, creator of Pipewire, who I guess reviewed
Wes: some of the server page's quantum and buffer settings.
Brent: Cool.
Wes: And helped fix some bugs.
Chris: All right, so that pick and all our links are at linuxunplugged.com,
Chris: and this right here was episode 677, so you can go to linuxunplugged.com slash 677 to get a link to that.
Chris: Buzz and some of the documentation, other things we've talked about,
Chris: and our invite link, if you want to join our Buzz community and,
Chris: you know, give it a shot. I have no idea if it's going to work.
Wes: Sorry about that. Yeah, totally.
Brent: Try it with us.
Chris: Try it with us, and let's learn it together, I say. And really,
Chris: really let us know what you think if you try it. Seriously.
Wes: Yeah, boost in. Boost in your Buzz hot takes.
Chris: We want to hear it. We want to hear it. And also you can go to linuxunplugged.com slash contact.
Chris: Of course, you can make it a Linux Tuesday on a Sunday. You can join us next
Chris: Sunday at 10 a.m. Pacific, 1 p.m. Eastern, or go to jblive.tv whenever you want,
Chris: and just see if it's live. That's what I say.
Wes: You see where we are. We're not going to be here.
Chris: That's right.
Brent: I won't be here.
Chris: No, none of us are.
Brent: We're all going to be in a different country.
Wes: We'll be on the other side of the continent.
Brent: This is a send-off show. I'm not leaving. I'm just leaving this place.
Chris: Yeah, the last broadcast from the cottage. I'm glad we could be here for it. That's nice, right?
Brent: It is.
Chris: That is cool. Wes, before we go, why don't you tell people a few pro tips,
Chris: like extra data around the show.
Wes: Ooh, you like extra data.
Chris: I love extra data, Wes.
Wes: We upgraded the audio stream, so we have a video stream, one of those fancy
Wes: newfangled mp4 files that's no way yep same thing you get
Wes: um just with more data a lot more data actually uh but if you like small text
Wes: files or medium-sized text that's my speed yeah well we have srt
Wes: or vtt which includes diarization so it says what chris said and what i said
Wes: oh yeah and it might actually get it right most of the time it should.
Brent: Am i in there too.
Wes: You're in there too and the mumble room and actually i.
Chris: Had to delete all of Brent.
Wes: Stuff. Oh, that happens in post, right?
Chris: That was where actually most of the time was spent.
Wes: And if you just know that it's really all about the audience and you want to
Wes: jump right to the boost segment or the feedback segment or you just are here
Wes: for the picks only and that's fine too, we have chapters for that.
Chris: A lot of you are just here for the picks. We understand. Thank you everybody.
Chris: We really appreciate you joining us. Brentley, thank you for hosting us.
Brent: Thanks for helping me pack up all my junk.
Chris: Well, who doesn't love moving? Right?
Wes: It's a national pastime.
Chris: I says to myself, I get five days off a year max and I want to spend all five
Chris: moving. That's what I says to myself, you know?
Brent: Well, you know, the faster we do it, the more we get to hang out in the mountains.
Chris: So the harder we work in the 100-degree weather, the more fun we get to have. There you have it.
Wes: Hey, at least it's not your stuff.
Chris: It actually makes it a lot easier. It really does. It really does.
Chris: All right. Thank you, everybody, for joining us. We really do appreciate you,
Chris: and hope you enjoyed this week's episode. Let us know how we did with a boost
Chris: or an email. Don't forget you can join us in that mumble room.
Chris: We've got that over at linuxunplugged.com along with our Matrix info,
Chris: how to subscribe, and the back catalog.
Chris: But with that, thank you so much for joining us on this week's episode of Your
Chris: Unplugged Program. And we'll see you next Tuesday, as in Sunday.