They say to use DRY: Don't Repeat Yourself -- and that's what I am trying to do more of when it comes to my AI setups across projects and repositories. Let's jump into some Copilot CLI and explore some of the tools I am building up.
As with all livestreams, I'm looking forward to answering YOUR questions! So join me live and ask in the chat, or you can comment now, and I can try to get it answered while I stream.
View Transcript
All right, I think we're connected here. Awesome stuff. Well, welcome to the live stream. I do these on Mondays at 7:00 p.m. Pacific. And usually I'm going through a newsletter article talking about some software engineering topics and uh it's a little bit more rare where I'm coding or doing some other stuff. But today is one of those rare days. We're going to be doing some some coding. We're going to be looking at uh Copilot CLI and I'm going to be uh as much as I can trying to show you how I've been uh using it more recently, some of the things I've been trying to focus on. And I titled this um like basically dry for uh agentic development. And so I'm trying to trying to be funny. It's maybe not working. Uh but dry like don't repeat yourself in software uh development and programming.
the idea that um instead of having you know copies of things in different places that uh you know if it's truly the same thing then like don't repeat yourself kind of like uh refactor in a way that allows you to reuse and so um I wanted to go through this because I've been talking about it on on code commute which is one of my YouTube channels where I do uh vlog entries usually uh answering submitted questions and that kind of stuff and I I find myself kind of bringing it up regularly where I'm like, "Hey, when I'm talking about AI stuff, like, hey, here's what I'm doing. Here's what I'm dabbling with." And I keep saying like, "Oh, I got to make a a dev leader, you know, YouTube video to walk through it." And um I just haven't been, unfortunately, I haven't been filming many YouTube videos aside from code commute.
And I just figured, okay, today we'll make this one about trying to go through some of this stuff together. Um, maybe it will uh kick me back into gear for getting a a more polished YouTube video together, but figured it'd be good to talk about. So, I think everyone everyone at this point's using AI for something now, right? Um, and uh I think you know there's a lot of people that are using clawed code, there's uh there's cursor, there's co-pilot, there's a bunch of different flavors of co-pilot, right? Some people, you know, love, uh, hanging out in Visual Studio Code, using C-Pilot that way. Um, I still haven't used the OpenAI one, uh, Codeex. So, I keep keep saying I need to try it. I really do.
Um, but I've been doing a lot of Copilot CLI, and for me recently, it's been C-pilot CLI, and then I would hit a rate limit, and then I'm jumping over to clawed code, and then I hit a rate limit, so I go back to C-pilot CLI, and I keep going back and forth. And if I just flip my screen over, you'll see um like actually my chat's covering some of it. Uh but the Can I move this easily? Yeah, there we go. Let's move it down a little bit. Um but I'm usually going between a whole bunch of different stuff um in my terminal so that I can keep getting things done. And uh you know, it's basically I don't know, maybe for some people not, but I I would say like basically impossible.
Uh if uh we rewind a little bit uh and you know thanks to having AI tools and being able to work like this um for me at least it's it's I don't know it's bringing some enjoyment back to different things. Uh like I like just as an example I like being able to write some like library code that I can reuse which is you know one of the topics we'll focus on today. Um I you know I have a sort of side business called Brand Ghost which is what I use uh for posting all of my social media content across all the platforms. So I'm able to work on that with uh with AI. Um I have my own like blog website um that's based on Steven Giesel's uh Blazer blog engine. I've since uh I don't know like made a huge departure from that. not not like a negative way, but like I was just making my own customizations to the point where I was like it's it's just it's very different now.
So, you know, I'm able to kind of iterate on that and build um build on that. And so, there's just a lot of different things. Um and it's cool because I don't know, maybe some people can relate to this, but I I think the way for that my brain feels effective is that like I like doing different things. I like being able to move between stuff. I realize that, you know, heavy context switching is probably not super effective, but at the same time, um, some of these things I don't have to be super deep in the context for, and I can still make good progress. So, um, what I want to talk about today is this idea that I, um, have been finding Hello, welcome. Uh, why is LinkedIn still doing this where it's not showing who people are? Reveal yourself, LinkedIn person. Um, just kidding.
Give me one sec. I like knowing who's on LinkedIn and I have to like join my own LinkedIn event so I can see because it shows me when I'm on LinkedIn, but it doesn't show me while the stream is going. So, how do I how do I do this keep uh getting blocked by the camera? Where's my event is live. Yes, let me watch my own event just so I can get the chat. Tim, I should have known. Good to see you, Tim. Thanks for being here. Um, cool. Let me let me get back over to this view here. And so I'm going to talk a little bit about a repository I was putting together for uh solving my my issue with dry. And so the idea around this is that I have I've been doing a lot of AI work, a lot of AI development and I shouldn't say AI development, a lot of I don't know building with AI.
I'm not trying to claim I'm like building AI uh systems. Um, but I I've been finding that every time I go to spin something up, I'm like, "Oh, yeah." Like I gotta gotta go do this, I gotta go do that. Um, and it's been a bit of a pain in the butt. Obviously, we have things like plugins and marketplaces now, which is pretty cool. So, if I do um what is it? Plugin. Yeah, plug in marketplace. So I can well hopefully you can see but I'm able to list the market like I can browse marketplaces that I've added. I can add a marketplace and then within the marketplace you can add plugins and then the plugins themselves can be packages of things like agents uh skills. What else? Um I'm not MCP configs things like that. So that's already like a step in my opinion in the right direction, but it's it's leaving a lot to be desired for me.
And um I think one of the reasons that's the case is that we have one of the challenges is just like organization and sharing of these things. So the fact that we can have I think plugins on marketplace I think is really nice that we can finally get some like user level sharing of of things like agents of uh skills and things like that. But the sort of traditional way traditional can I even say that it's been like you know one month in AI is you know equivalent to feels like a it's like a hundred years of uh advancements but one of the traditional sort of things that we've been doing is like we have you know our repositories have the markdown files in them for like instructions and your custom agents and then your skills are in there and then so we have this weird kind situation where you're like, "Hey, like this this scale or this agent or whatever that I made.
I kind of want to use it like over here too and like maybe over here." So now like do you copy and paste and you have it checked into two spots and okay like this is if if we start thinking about this kind of challenge um one of the things that comes up is like it's bas it's just like programming and software engineering, right? Like you know if you had a method in some code and you're like oh I need to use that over here. Like what you can do is you you can copy and paste it like it works but at some point is it actually supposed to be the same thing and like I think I'm starting to see a lot of this when it comes to like agent sharing skills stuff like that. So it's just it's a it's a really interesting sort of experience to be going through all this stuff I guess so early in AI uh development.
So just checking the chat um Tim says I have found that sometimes LMS can help with the context switching when I write say a bash script later think no I need that in PowerShell or Python so I end up with multiple variants of this different languages. Yep. Yeah, I I do a similar thing where I've had a couple of things get produced and it's like it's kind of nice to I think historically if you had spent a bunch of time and you're like, "Oh, I finally have my bash script working." And then you're someone's like, "Wait a second, we need that in Python." You'd be like, "Oh crap." Like it just wasted so much time. And now it's like you can say to an LLM like, "Convert to Python." And it's done in a minute. Super cool. Um, and then he says, "Oh, yeah, Boiler Play for AI feels like a thing now, too." Yeah.
So, that's this is what I'm kind of building for myself now. Uh, Tim says, "So, I decided to start writing my own scripts, MCP, stuff for local things. Got tired of clicking on start LM Studio." Yeah, exactly. So, it's basically what I'm going to be talking through. So, I put started putting together this uh this repo. Um, I gave it the name Genesis for myself. If I do most of my development under something called uh Nexus software laboratories and so uh so I have Nexus Labs Genesis and then so if I just ask Copilot explain this repo to me like I am five years five years old. Um so I I'm just going to kind of see if co-pilot can summarize this for me a little bit but we'll see. Imagine you love building with Lego. Oh this is great. This is how I actually tell people, how I how and why I like to program.
Every time you want to build something new, a castle, spaceship, a house, you always start the same way, right? This is what Tim was saying, the boilerplate. Like, I want to build a website, I want to build a desktop app. So, this repository gives you a ready-made project with all the boring stuff already done. Oh, I skipped ahead. Sorry. I can't even I can't even read. Um, it's because this is uh it might not be obvious or maybe it is. It's it's quite wide on my screen. This is one quarter of my monitor. Um, so yeah, basically instead of starting from scratch, you can pick a template. So I I have a bunch of templates for different types of projects that I want to be able to build. And then I also started doing things like uh obviously some shared skills. Uh that's also across two repos because I have some skills for developing things.
I have some skills for like uh more creative writing. Those don't really belong in here. Um Oh, you have it in the new Windows terminal. I don't I don't know what that means. Uh the new Windows terminal uh PowerShell or am I I don't know if I missed something. Sorry. Um so then in here as well um I have this idea of like uh instructions that will also get copied in. So not not only am I templating some of my projects to kick them off um so things like solution files for net development or I don't have too many other things outside of net development but also like uh you know GitHub CI/CD like uh workflows and things like that but also uh how I want to have different agent files. So this Tim saying this is exactly what I was talking about. If I want to scaffold I want to scaffold I don't want to copy something that I remember every time what no longer applies.
Yeah. So, so I started building this for myself at least. And the cool thing is like this is not something I'm going to be sharing, not because it's top secret, but like because it's just for me. And so as I talk through this, if you're like, "Hey, that could be kind of cool." Like instead of saying, "Nick, like I want that. Just make it." Like it's super cool because you can just make it yourself. Uh I didn't write any of this. I wrote none of the code for this. And it's it's really cool that it just works because you can talk through to co-pilot how or claude if you want to use claude however you want to do it. So um let me just do this because it's probably going to think I'm 5 years old for the rest of eternity. Um tell me about all of the templates can make with this repo and you also ex so give me a summary of some of the what do we call them globbased instructions.
Oh wait there's more people on LinkedIn. Hold on. I thought it was Tim this whole time, but unless Tim is tagging Tim, which is possible. It is Tim replying to Tim. Tim, you tagged yourself. But that's the side effect of this uh silly LinkedIn comment as chat system. So, let's see. So, I got templates in here. One sec. We'll wait for this to finish. And I I'll walk through a couple of different things. Can I Cool Cool. I can scroll here. So, with these templates, uh, what's nice about this is that if I just want to start and I'll I'll try to demonstrate it, uh, on this on this stream. So, I'll pick something that I I have never actually built myself, but I have a couple of them now, and it works pretty well. We're going to do a Where is it? Oh, uh, we're going to do an Astro website.
I don't develop an Astro But we're going to make an Astro website. Um, and then I'll have it launch it for us. Like I I haven't ever tried using this template and I feel extremely confident that it's going to work and we can let it go off to a sub agent and then I'll have it run it for us and we'll have a fully functioning website. I feel very confident about that. So there's a bunch of different options that if I want to, I can go start these off. And now that I have a bunch of examples like this, what's really cool is if I have 12 examples like this, right? If I want to go do another one, it's really not a lot of work. So I don't have anything in here that's like a a Nex.js website or whatever. Um, so picking something with a different language and text stack is a little bit more work to get started.
And that's just because I don't have examples yet of of anything like in next to use next.js here. But for the next sort of C template orn netbased template that I want, there's a lot of examples to pick from, right? Like it would be like, hey, there's a bunch of these that are using .NET 10 that's actually a shared setting for all the templates. Like it just gets easier the more you add because there's more examples to pick from. So I started off with this subset. Um, I haven't yet used any of them except I think this uh Avalonia uh like basically WPF desktop app. I built an app and then sort of used it to prove the template. So I kind of worked backwards with it and I can sync back and forth between the template and uh the app which is cool.
So when it comes to some of the uh like the the GitHub workflows and things like that or some of the instruction files, I can actually use the LLM to say, "Hey, go compare both of these and see like how much drift there is and then see if you need to patch anything up." And it can work both ways. So if I was working in this, say a desktop app built out of this one, if I had been making a lot of advancements, I could actually say like, hey, I kind of want this back in the template for everyone else to be able to use later. Um, I say everyone else, uh, I mean me in different projects. And so I could use one of the skills to basically sync it back and then, you know, sync to other projects from there. So those are the templates.
And then I have uh Oh, it didn't do a very good job on this part. I should be more clear. Can you talk more about the um where are these the how do we say this? seed seed specific um ones that get used when making a new project. Let's do that. So, it's giving me kind of a the wrong the wrong set because it's a it's a bit of a meta concept, right? like I'm in a repository, but this whole repository is about creating like a new um repo out of a template. So, it's kind of a weird thing to ask this thing. Okay, there we go. So, I have a bunch of different um sort of instruction files. And if you're not familiar with with what these ones are. So the idea is that like I think most people have seen now like you can have your clawed MD file or your co-pilot instructions file.
Probably a lot of us are now moving to the agents MMD file as well. And so copilot uh will read from sort of all the above which is great. But there's also like uh this globbas based matching. And so Claude has a variant of this and uh and Copilot does too. The crappy thing is like the globs are slightly different in terms of their syntax and they live in a different spot for now. I think if someone was watching this in the future that might be, you know, something we used to say back when AI was so so early. Um but for now, um they are different. And so what I'm doing is I have a bunch of different uh sets of guidance instructions, things like that. And I want to uh like capture these from the different projects and stuff I'm learning or sorry that I'm working on so that it feels like co-pilot's kind of learning from my different development experiences.
So I basically instead of just having one really big uh agents MD file that becomes very unwieldly, the globased matching ones are pretty cool because we can be more specific about which file paths actually load in these instructions. So for example um if I'm ever working on CSRO files right when I say I am I mean the LLM like this is instructions that will get loaded only if it's touching a CS prod file right if I have uh something like a a Carter module so I like using something called a a carter for my ASP net core routes so it's a sort of like a plug-inbased system for for routes Um, my code is always suffixed with Carter module. Always. So, if I'm working in a Carter module, this set of rules will apply. And it tells the LLM like here's how uh what's a good example?
I want to make sure that I don't have direct repository access in my Carter modules. I like having um like a unit of work or something separating that out. I like making sure that uh we're not letting exceptions kind of bubble out of the routes. Um just different patterns and styles that I like. So all of these get kind of collected in over time and then I try to make sure that I'm syncing them back into this repository so that things in the future can benefit from it as well. Tim saying I've experienced a similar almost inception-l like thing where I start building something that I think wouldn't it be great if I could more easily create something like that with a script. Um, yeah, that's exactly it. Uh, Tin, that's that's literally how this kind of started coming together. So, it's cool. Um, and I can just keep building up sets of instructions like this.
Like, there's already some Astro stuff, right? There's 12 different sets of things for Astro based on some other stuff I built with AI. Um, you know, I I've already kind of said on this stream, right? Like I have never actually programmed something or built my own myself something in Astro. It's only been AI. And I have twinly 12 dedicated instruction files to tell an LLM how I have one or two of my other Astro projects built. Right? So, it's just something that I can keep bringing back the patterns and practices. So, we'll do something right now. Let's Let's build something. I'm going to build a Pokemon website because it's always it always comes back to Pokemon at some point, right? So, let's let's see. Um, how do we want to do this? Let's get Let's get a little Let's get something going here. Let's see. Um, I want you to What are my skills in here?
I should just ask it. What are the skills that have in the repo for kicking off a new project using a template? Because I can't remember what it's called. That says, "The only problem about these meta projects, once I get it working, I'm like, what was I building?" Yeah, that's uh we we don't talk about that. We just we just keep keep building stuff. Uh I can't remember the name of the skill that I had. It's uh yeah, it's this first one. So, oh, I forgot to mention. So, I was talking about the the globased instructions. I actually have another skill that will sync together. I think actually it's a PowerShell script for the most part. Um, and basically it just rewrites all of my globased instructions from Copilot. It just overwrites the the clawed ones. Um, okay. So, we'll say this one here. So, I want you to Oops.
use this skill to build a new Astro website that is all about Pokemon. Um, what's it? I want you to ensure it has a home page talking about how awesome Pokemon are and three sub pages about the three original I can't spell and talk and type. um three sub pages about the three original um starter Pokemon and their evolutions. Um, these three pages, subpages should be themed based on the starter Pokemon and the main page of the site should be themed like Pikachu. Do you need Oh, let's do this. Um, this should be created in within a folder. I saying the word within too many times here within the current co-pilot session workspace. I want what do I want to say here? I want you to use a sub agent to build out the website once the skill to use template. I'm trying to do it in like one shot to see if we can we can rock and roll here.
I want you to use a sub agent to build up the website once the skill to use the template. This is so wordy. uh has basically has scaffolded the initial Astro Project for us with all the necessary including the what do we call them? Um, once that is complete, I want you to launch the website for us in the browser. And that's it. We're going to have a Pokemon website and it's going to be the best Pokemon website there ever was. Um, so I'm going to switch to something else while this is going. I just want to make sure it's going in the right direction. So user wants me to use the skill, create it in a session folder, and then use a sub agent to build out the website. It's finding the template it's using. Okay, it's going. So we'll jump over to Needler.
Um Tim says, "One thing I feel I need to add a lot of these prompts particularly is as I begin to have code as uh is I tell it you don't have uh the existing context for uh for a possible file." Oh, ask me. Provide it. Yeah. Nice. Yeah. Yeah. Because I've seen uh more with chat GBT, but Claude does sometimes too. Generate a file I already had. Interesting. The nice thing is uh TBD Gamer by the way, good evening. Good to see you. The nice thing is that when you start getting duplicate stuff, if you catch it, if you catch it and it's early, then at least you can like pretty easily rectify that. Like you can just say to the co-pilot or Claude or whatever, like, hey, like don't, hey, make this the same thing, you know?
um versus traditionally we'd be sitting there going you're going to make me diff this like or sit there kind of with two files and scroll through and you know manually merge stuff like we don't have to do that. Um the it's just so cool because as especially as the LLMs like the models get better the ability to have like something go a little off the rails what used to be and I still get caught up with this. I'm like, "Oh, that's so frustrating." Like, "Oh, why did it do something so stupid?" I'm like, "Wait a second." I can just be like, "That was dumb. Don't do that." And then it's like, "Okay." And then just fixes it. Like, oh, I guess I guess it's not so bad. It's actually pretty simple that you can just go fix it.
Um, so while that's running and building us the best website for Pokemon that's ever been built, um, what I want to talk about is I have a dependency injection sort of automated scanning and registry system called Needler. And I use this for uh, a lot of plug-in based development. And the reason for that is that when I am building my applications, I love using plugins as a framework and an architecture. I recognize it's not the best fit for everything. I just like to do it. And what that means is that I often find myself writing the same code over and over and over when I build a new project. So I built Needler to help me just scan for my dependencies the the way that I always end up doing it. Uh and I've told this story before, but I converted Neler over to go use source generation for most things so that I don't have to rely on reflection in C, which is slower.
can actually do it at compile time uh for a lot of the plug-in systems I build. So, um with Needler though, I've started building more things with Microsoft Agent Framework and I because I'm trying to just keep building out reusable things for myself. I said, "Okay, I want to have Microsoft agent framework support in Needler, and that means that um I'm I'm going to like what are the features that I can add in Needler that enhance the experience of Microsoft Agent Framework." So, I've been building a whole bunch of stuff that is in my dependency injection framework that adds on top of Microsoft Agent Framework. Uh, and one of the things I discovered recently is that I am a hu I've not done this until like two days ago. Uh, I'm I'm completely sold on the idea of having uh dedicated sub agents and fleet mode.
And I kind of want to show you what I mean. So, we're going to do a new session. And I'm going to do this. I want you to use fleet mode and all of the dedicated special sub agents that we have in the repo to do an investigation on needler for Microsoft agent framework. and I'll say and other AI support. Uh the goal of the fleet is to understand the current offering of needler. What uh how should I say this? uh the current understanding of needler and then um identify gaps as opportunities opportunities uh for needler compared to math which is Microsoft agent framework. um identify overlap where there is conflict with math and then identify um overlap where there is um I don't know what's a good way to say this um complimentary once This is done. I want you to synthesize and present the results.
So, um I started doing this more because um I'll explain this with one more session right after this, but um I've been finding that when I'm like really deep into something. So, I have like a a role playing game that I'm rebuilding purely with AI. Um, so I have not seen any I haven't seen a single line of code yet and I'll show you it. Um, and so I find that when I'm really deep in some of these, it doesn't matter if it's a new conversation or not. I just mean like I'm really deep into an AI project where I've not seen any code. I find that sometimes like this like it feels like the stupid level is really enhanced. And I had I'm not exaggerating. I had it try to build a feature around four or five times and it keeps doing it wrong. It just repeatedly builds like it tries and just builds the wrong functionality.
And so I've been getting kind of frustrated because it tries to do that. Um it's trying to do some stuff with like lighting and atmosphere and it just keeps not doing it. So, I said, "Okay, I'm going to go make when I say I'm going to make it," I used a skill from my my Genesis repository. I said, "Use this skill to go scaffold a bunch of agents." And I said, "I want a an agent that's an expert on textures in games. I want an agent that's an expert on models, one that's an expert on materials." And then I made some agents that were, you know, experts on some particular role playing games. Oh my goodness. You guys can't see my screen, but I thought my stream crashed. It's way better. It's way better. It's the best. You have to hold on, though. So, I I was finding that I put all these specialized agents together and I said, "Use this fleet mode." Oh, I didn't press enter on this.
the heck's going on. Or it's frozen. Oh no, it's working. I couldn't press down. Anyway, sorry. Um I thought I pressed enter. Anyway, the the idea was that I I told it to use fleet mode, which basically will go run a bunch of uh agents for you in parallel. And the um the outcome was crazy. Um, and I'm maybe I got lucky, but it basically put this plan together that was like it talked about so many different incremental things that were the first phase was like it said something like eight of these agents like uh completely agreed that if you go touch these settings like this will be instantly better like for basically no code changes just configuration this will be instantly better. go do it. Every single agent agreed on this. Like, okay. And sure enough, it was right. And so, I got it to follow this plan and incrementally went through things and it made a just such a tremendous difference with way less like like guesswork almost.
So, I still didn't get it to rebuild that other feature. I'll come back to it uh because I I was just making so much progress otherwise, but the site's already done. So, here is our Astro website. You saw me talking the whole time, right? Like I'm not Unless you thought I was, you know, coding or something, but um this is our this is our Pokemon site. Did you know there's over a thousand Pokemon? Wow. We said why it's amazing, right? Got to catch them all. Wow. Wow. Wow. This is cool. Meet the starters. Oh yeah. Look at that. This is It's a snappy website, too. But Bulbasaur. Oh, themed. Oh my goodness. They probably didn't want to steal the the pictures. Look how cool. Right. Next. Charmander. Oh my. Look how awesome this is. Now, what I'm curious about is that I didn't tell you this explicitly, but I have a bunch of stuff that is supposed to be templated into here, right?
So, aside from what I asked it to go build specifically, um, I don't know. Is there a site map? Nope. Um, is there a feed? Nope. Nope. Uh, is there an Nope. So, these things are supposed to be on here and they're not, right? So, that's something that I'd have to go figure out is like why did it not um follow the guidance on that supposed to be some stuff there. Um, okay. So, there's a robots txt file. Okay. Okay. Here's right. Um, I haven't used this template before. Uh, so you got to see the the live demo, but you can see that um this part's wrong. So there's probably some of the other things like I was trying to show you where uh they didn't get copied in properly because there's probably some of the the template renaming that's just broken. And that's okay. Like it's not going to be perfect.
But overall, like I don't know. I I'm pretty impressed by that. So yeah, the idea being like if if someone was ever like, "Hey, could you put a website together for me, I can be like, "Yes, I can. What do you want to what do you want it to say?" Um, and then just have it done pretty quick. So, pretty cool. Um, I got to fix up the template, of course. And yeah, I think that's probably all I wanted to show on that one, but um, I'll see. So, we got that. Then this needler one finished. So, it's a fleet investigation name of their Microsoft agent framework. Let's uh see the full Oops, that's on a different window. Okay, full plan. Can you guys see that text? Okay, I just realized it's maybe kind of small. How do I zoom in on this? Okay, so Oh, it didn't actually run.
It made a plan to go run it. So, yeah, let's go. Let's go execute the plan. Um, TBD Gamer, it's kind of scary how quick these tools can produce something. Yep. We really do look like we've been sitting on things all this time when people see you can just create a site in five minutes. Yeah, it's it's uh it's pretty fascinating. So, I would say too that um so I hadn't used Astro before. I had heard about it and like heard just heard people talk about it. I literally didn't know what it was. And so I what was I trying? I was trying to put something together and I was trying to see if I could get a site together. I I honestly can't remember what it was for.
And one of the requirements I wanted was a static site I wanted to be very fast and co-pilot was like, "Hey, like Astro is a good contender for this." And I was like, "Well, why not try it?" And uh I didn't have a template or anything, but it was it was a similar experience where I was like, "Build me an Astro site." Oh, I remember I I was trying to do um I wanted a placeholder website for like for Nexus Software Laboratories. I still haven't even u posted it, but I found a site online and I was like, "Here's a picture like of the of the style, like the colors and stuff." I'm like, "I really like this." Said, "Build me a site.
It's going to be for software engineering and it bas it basically did what we just saw just not it wasn't Pokemon themed should have been Pokemon themed realistically right but uh it was pretty cool like it just worked and so I think the nice thing will be that but from having templates and stuff like that there's some things that should just be very much automatic like I will absolutely want on every site I have these types of things. Maybe I want to tweak and tune them a little bit, but I always want to make sure I have my robots .txt. I want an LLMs.txt. I want a sitemap. I want an RSS feed. I want um I want to have structured content for different things for SEO. Like, these are just things I want and I expect. And if I had to every single time tell an LLM, "Oh, by the way, did you go do that?
Did you go do that?" Like honestly, I think that's where I'm going to be spending more time is like, you know, the tweaking and tuning versus just like how do I get a website going? The same thing with uh like building and deploying, right? For me, doing like GitHub actions, it's the last thing I ever want to spend time doing. I can't stand that kind of stuff. And so having a like a template that I know works plus an LLM that can work with that, super happy. Um, so we got this thing running. This is a boring thing to watch. Sorry. We're going to jump over to this game. Um, I'm gonna run Unity. Oh, that's the hub. Unity's starting behind my head. So, give me one sec. I'll pull it over. Um, and so you can see, maybe not. One sec. Let me zoom in a little bit.
I had basically just run a fleet and I said I want you to what did I say in here? Okay, so you can see literally what I typed, right? I said, I want to consult the fleet using this command of game experts. And then I listed some of the the game expert uh agents that I have. And then I said, also consult the Unity expert because I kind of reached a point where I'm like, I don't know what makes sense to go build next. It's not like a the game is not really functional. Just a heads up. Um but it's neat when you when you consider that I haven't written any code for it. Okay. So, I don't really know what to go build next because we can keep working on some stuff behind the scenes and you don't really see it or we could spend more time in Unity.
So, I just said go ask these experts where we're at and like what what they think we should go do next. And then so I got uh some recommendations. Uh, one of the things it was saying was like, "Hey, you built you you guys wouldn't know this because we haven't talked about it, but uh, they they as in the agents, they're like, "Hey, you you already built all like a ton of itemization. There's tons of it, but you're not showing it." So, one of the things that they said, they called it, they had like a funny name for it. It was like, "Make the invisible visible." So, one of the first things that they were recommending was like, you should go make sure that like you can use the items that you know players can see the items, that kind of stuff. I'm like, okay, makes sense.
So, I wanted to start with that. Now, it's it's kind of saying, hey, look, like you already have all this awesome stuff, right? This list, oh, these these things are already in the game. And I'm like, yeah, they're there, and I'm going to show you. They're terrible. Um, but they're there. So maybe I need to be more clear and I'm like, "Hey, do you see what this looks like versus a real game because maybe we should talk about that more specifically because it's not okay. So here's Unity. Um, I'm going to press play. Uh, heads up, the first screen you're going to see has nothing uh styled on it, but it's a main menu. The first button at the top is to actually start a server. And so the the user interface of the server or of the game is actually driven by the server which is pretty cool.
And so the server will send over information and we have um basically a JavaScript front end inside of Unity which is neat. So, this starts a new server and then we have a game, right? Look at that. We got a little light radius on our character. We can move around. These enemies don't really do anything except stand there. We can cast a fireball. We kill them. You can't see the loot on the ground, but I got a a stout wooden shield. I can equip it. My shortsword. See, like I have a Yes, there's an inventory, but it's terrible. Um, right. So, I can go around. I can What's another one? I can do a meteor. Or that was chain lightning. Sorry. I leveled up with text that's sideways. We'll do some more chain lightning. I wanted it to be very dark on purpose for the dungeons, so that's why it's very dark.
Can I get to the next level? Cool. So, these are when I zoom out, it's obviously kind of busted, but these are procedurally generated maps. Can run around. There's a meteor spell. I think it's all on like one axis or something. Look at that. Look at our meteor. Um, I can, you can't tell because I'm pressing the keys on my keyboard, but it's WD to walk around, but you could also like, what's there's no projectile showing. But if I hold Oh, it's not working. If I used WD, the idea is that if I had a chneled spell, I should be able to like cast it and walk. So that's what's supposed to be happening right now. But you can see like my guy is just kind of stuck. But yeah, we can go get these guys over here. If I click them, it will click to walk and attack.
Oops. Click to walk and attack. Another level up. We're just raking in the experience. Um I think the item drops are actually There's, you can see in the list here, there's loot on the ground, but I think it's hard to see because I think it's now below the floor. So, like there should be loot right here, I think. Yeah, I just picked up loot. So, there we go. I got a searing long sort of gloom. This one is going to make my light radius go down. Oh, didn't seem to do anything. Oh, it did. No, it did. Holy crap. It's hard to see because the character sheet, but if I put this short sword on, see how it got a little brighter. If I put this on, it gets darker. Right. So, just kind of like these game systems, they're they're really complex behind the scenes, but what's to show um is not a lot.
Yeah. DVD gamer. It's It's almost Diablo. It's basically It's basically Diablo at this point. Um I actually I opted to do 3D because I've never done 3D before and I was like I think if I'm going to spend the time having AI build something like this, instead of me just going, let me just jump right to 2D and build another game that looks like Pokemon, cuz like I said, it always comes back to Pokemon. instead of doing that, let me um let me just try using uh like 3D and seeing where we get to. But my my kind of vision that this thing will build out, I wanted to see there's there's some other aixes we can get that it changes the gore to be green. So when you poison someone, instead of having red blood, it's green. But yeah, my vision is um obviously there's going to be more things on the map.
Um I want the textures to not look ridiculous. I need to get not such a dark sword on. There we go. It's a little brighter, but I want it to be dark. I want the dungeons to feel very dark. Um, there'll obviously be more clutter and and actually enemies and stuff like that, not just a big square room. But the idea is that it would it would feel dark. And I kind of want it to feel like I don't know if people played like not Diablo II, but like before, so like Diablo 1 or Diablo II. It was pretty dark. I remember being a kid and playing Diablo I and being like, man, like this is this is scary. Like I I would be afraid to play Diablo, but I really liked playing it. Like can I get a screenshot of it? Maybe one sec. Diablo one screenshots.
We'll find something. It doesn't seem so scary now, but like it felt pretty scary. This is a good one. Google image is just like a pain in the butt, man. Just give me the image. Why can't you just give me the image? Some of these are very bright, too, so they're not very convincing. Um, come on. Okay, here's if this will open. This is a good one. Okay. World's lowest resolution, but like it was pretty dark. And then like this is a room where there's a boss or mini boss called the butcher and like you open the door and it's like this big demon guy with a butcher's cleaver and he's like, "Oh, fresh meat." And like it was scary. It was really scary. So, I wanted to be able to like I want to be able to have something where you're walking around and you're like, "This feels pretty scary." Um, and then when you're out in like the overworld or whatever, then not so much.
It's fine. But I I want I want the dungeons to feel like pretty scary. So, we'll see. I'm not going to make any of it myself because I got other stuff to do, but AI can go do it for me. Um, what would a partially AI infused textbased adventure in the style of Zor feel like? Yeah, exact. Well, this is the thing, right? Uh, right, Tim, is like um I honestly I think that if I would have just uh stuck to textbased, I would have a playable game right now. If I jumped to even having some type of like 2D graphics, I would be way further along. but it's not it's not going to be good. And so now I'm trying 3D. I'm even further behind because there's so much more to consider. Uh I'm trying to trying to find creative ways to have AI like make the models and like so there's a Blender MCP server.
It's where is it? So I have like Blender running like I I have never drawn something in Blender just for what it's worth. This is not something I made. Like C-pilot made this. Copilot used a Blender MCP server that's running over here, right? So C-pilot made this. And so Copilot has built out my my map pieces. So, my idea going back to trying to bring all these things back together with like the reusability thing is like sure my my mapping Oops, I'm still playing this. Um, like these individual pieces, they're pretty terrible. Can I Oh, it's not going to That's fine. Um, they're pretty bad and that's okay. But the idea is that like if if I have instructions for how to make it, then once I improve how they get generated or how they get styled or the textures and materials that I can keep like enhancing the agent instructions and keep having it refine things for me.
So, just to give you a bit more of an example, right? It's like I don't think we can see any examples on for real on this map, but it had um pretty standard rooms, which is fine. And then it ended up saying, "Okay, now that we have some examples, I'm going to make 10 more room segments that are completely different." And it wants to go place like pillars and stuff um just because it's different. So it like it understands how to go do that. Now over time I might say like hey that looks really crappy. We had one example get built that was really good. Now all of you should try copying that pattern like building the new stuff or one of you should go back and um you know fix up some of these older pieces. So we still got another sort of gloom gloom.
We don't want that. We want this one's got gore. So, we should take that also of gloom. Okay. So, hopefully when I kill this guy, he's got green blood. Ready? Oh, green blood. And that's that. That's uh that's building a role playing game without coding any of it. So, it's pretty cool. Um I let that run in the background. and it just makes stuff for me. And it's been kind of fun to see it just kind of come together. And in between stuff, I can like jump over and check out what co-pilot's doing and then like rock and roll. So yeah. Um that's been a lot of fun on the side. Procedurally generated maps like the hair hairbrain schema battal game or something like that. It's amazing how realistic some of that can look. Yeah. Yeah. Yeah. It's um it's pretty fun. TV gamer. A lot of people these days playing Diablo II Resurrected.
Yeah. Uh, sorry. I think I was reading your message before and kind of didn't finish my thought. Uh, never played the original Diablo 3 was kind of my intro. Yeah. Um, honestly, my when I was quite little, I I I like telling this story like when I was quite little um I had a neighbor who was 5 years older than me. So, um, he he always seemed like my older brother. And so I remember going over to my neighbor's house and he was on his computer and he was like, "You have to come check this out." And I'm I don't know how old I am. I don't know how old I was when how when did Diablo 1 come out? Um when did Diablo 1 come out? 97. Some read as early December 96. Okay. So, January 97. Yeah. So, I would have been eight years old.
That doesn't even seem right. I thought I was even younger than that. But, so yeah, in 97 I would have been eight. Well, I guess I would have been still in January 97, I would have been seven years old still. Am I doing math right? Yes. Yeah. Um, and so I remember going into my neighbor's his his bedroom where he's on his computer. So, you got to check this out. And he was showing me like the intro scene to Diablo 1. There's this this crow and there's like this town. There's like a dead body and this crow is like pecking at a dead body. And I was like, "This is so scary." Like I like I'm I'm actually afraid watching this. And then he was starting to play the game. uh 1997. Yeah. Um yeah, he started to play and I was like this is it's it's so cool.
It's so cool. But I felt like I could watch him and I was less scared because he like he was the older brother. He's the one playing the game. And I like I felt okay. And I was like I I need this. So I remember trying to convince my parents and I think my mom was a little reluctant. And I think I convinced my dad though and like we we got it and I remember getting it and trying to play and I was like I don't know if I can play alone. Like I'm I'm just so afraid to play this. But um I think what was like when I reflect on this it was really cool to be able to build up a character and you're like no my character is actually good. Like my character can do this. Like you you kind of get bravery through your character when you're when you're eight years old.
And so, yeah, it was it was really cool to have um this uh this character that could just go down and start, you know, killing skeletons and then demons and stuff later. So, I was hooked. I I loved role playing games uh ever since that. And so, yeah, when Diablo II was out, I I spent so much of my life playing Diablo II that um you know, I told myself like when they announced Diablo II Resurrected, I said, "I will never play that game." And I said, "I'll never play it because like I I had a I feel like I had a problem." Uh to be quite honest, I feel like there was, you know, like just spent too much time doing it and I didn't really have self-control over it. I didn't when I reflect on it, it feels like I didn't have self-control.
Um I did end up playing it very recently and only because they had the new uh warlock class come out and I was like, "Okay, I'll I'll do it because I I have to." Um but yeah, that's my spiel for Diablo games. So, I've I've been in love with role playing games for for forever. And uh when it comes to programming, I think when I first figured out that like I can write code, I was like immediately, how do I start making my own role playing game? Like I need to do this. So, um it's always been something on the side for me. It's pretty cool. Uh yeah, Doom. Doom was another just reading the chat. Doom was really scary. Um, uh, I remember Duke Nukem 3D was like pretty scary for me, uh, as a kid, but but Doom was especially like is another level.
Um, but yeah, that's that's funny. So, I'm just going to jump around here. So, just going back to this Genesis repo, like, yeah, we ended up getting this website built. You guys got to see that. Um, you know, launched it. It is basically exactly what I asked for. Some of the stuff that didn't work is like some of the template pieces didn't work. So, what I would do at this point, and I'm going to wrap up the stream in a moment, so I'm not going to walk through and show you and bore you, but I would tell it like, "Hey, look, like you have a working example on disk now, but like here's what the template is supposed to have. So, what broke?" And then I'll have it go correct the template. And then the nice thing is I could go literally give it the same prompt and say go do it again for another sub agent.
The purpose of the sub aent is to kind of contain the context and just have it focus on something very specific because I don't want to poison. It sounds kind of funny. I don't want to give it too much knowledge from the chat and then it like cheats. I want to give it a sub agent to go build something and see if it does it properly. So I would go do that and I will after this stream. I'll say, "Hey, go um go do this, like go fix it and update the template and do it again and I'll I'll check it." Um, and in fact, I could be even lazier and I'll say, "You check it and then give me the evidence." And I could say, "You go find other things that are broken and then give me the evidence after you fix it." And I probably will do that.
I want to I'm trying to do this is going to sound funny. try to do as little as possible because if I can find ways that work where I'm like I didn't have to do that. Great. Like that that means uh I'm moving in the right direction. Um at least for me I think for people I got to remember my audience and stuff too. Like for people that are getting into software engineering I would say please like spend time learning stuff. But I'll be very transparent with you. I have zero interest at all in learning how Astro works. I don't care. I would if I were to uh hope not, but if I were to die tomorrow and I didn't ever learn how Astro worked, I'm okay with that. Don't need to know. Do I want to have a fast website that does exactly what I want?
Yes, I do. Uh I don't care how it works. Um, for other things, I really do care how they work and I would spend more time learning. So, when I'm building stuff in Needler, going back over to Needler, I'm not sharing my screen. I'm sorry. Um, going back over to Needler, like I I don't let this thing build stuff blindly, right? There's some stuff where it's explaining it. If I'm like, I don't know what you're suggesting to me, it's not going to go build it. Whereas, you know, if I needed an Astro site, if it was like, "Listen, we got to we should really use this package because it's really good." I would say, "Yes, Co-Pilot, you go you go do that." Like, I I don't care. Uh, for this kind of stuff, I definitely would. Uh, and and honestly, like when I'm building in Brand Ghost, I also really care because I have customers for that and I use it myself.
So, um, it's like you have to kind of pick your battles, I guess. And for me, the the stuff that's like I have customers for or I'm using it for my own infrastructure, I care a lot. Um, but I don't know like for even my my blog, my blog is in Blazer. Um, I like if co-pilots like wants to go like do something a little bit kind of uh outside of my comfort zone, I'm like, "Hey, like you're you're leading here. I'm kind of trying to learn and and catch up." Um cuz some of the stuff like for for web tech I'm like I'm not an expert on this if you're suggesting this is a good way to go. Like I'm willing to let you try it and I'll watch and then I can steer after. Um but some of the stuff that's like heavy into C I'm like you can give me an idea but you know I really got to understand it before we move ahead.
So, needler, what was saying? Deploy five parallel sub agents. Key findings. Uh, they're strongly complimentary. That's good. Uh, I'm happy to hear that. That was the goal. Uh, Microsoft agent framework provides the agent runtime. Needler provides the agent engineering. Ah, very cool. So, yeah, dependency injection, compile time, safety, blah, blah, blah. Gaps. So, Microsoft agent framework has these. Needler doesn't. These are opportunities, right? So MCP tool integration uh context providers memory we kind of have I have like a workspace not a memory I guess um hosting protocols okay yeah I don't have I don't have that we have declarative workflows so that seems like a total gap I mean total miss on this this whole thing maybe they mean something different but like you can in needler you can use source course generated agentic orchestration. So I don't really understand what what that means. I'd probably have to ask it.
Durable execution. I don't have that. Um graphbased workflows you we do but not as a first class thing. So maybe could explore that. I don't know what that means. So something for me to learn. I just saw devui on a coming soon page today. So no I don't have that. Um, so that's I mean that's cool. Like there's a bunch of stuff. I'm happy with that. Conflict. Uh, so friction areas, agent creation patterns. Yes. Uh, but I think these are complimentary in my opinion. This is a risk for sure. Diagnostics, philosophy, divergence, structured snapshots versus hotel spans. I wanted both. Um, so I don't think that they're friction. I want open telemetry, but I also want in my code the ability to look at diagnostics and make decisions about it. So complimentary in my opinion. Um, I have both of these declarative attributes and imperative builders.
So I don't know. I think these are like good things to identify. But again, like some of these things I understand quite well because I've been part of building it and making decisions for having a framework the direction I want. If I hadn't built any of this and it was like, oh, you have these friction areas, I would be like, oh man, like you go you go fix it. I I believe you. So, it's it's not that I take everything it says as a, you know, perfect truth, but I think the conversation's helpful. But top growth opportunities, MCP tools, fair. I don't have anything like that. I'm interested in this because I have a workspace concept, but not session memory. Um, this came up in a previous run of this I tried. So I have open telemetry but I might have some overlap that needs to be corrected.
Um I thought I did this one in the last session. So got to come back to it. I don't have this as a first class thing for for others. So that's interesting. And then graph-based workflow support. I I think that in my opinion that's number one because some of the agent orchestration I've been building in Microsoft agent framework feels like it would really benefit from from that. So anyway, I think this is just an example of like I use a fleet of different agents focused on different things and they came up with this. Now what's not shown here is that there's probably a lot of data captured. Oh, I'm just scrolling up in the chat. There is a lot of data captured. I was just getting the summary. So, there's a whole bunch of stuff here that I would want to go read through. Um, I actually built a dedicated skill on this.
So, one sec. What is it called? Um, I have a fleet planner. So, what I should have done was run this. So what you saw me or trying to do a little bit earlier where I said hey like you know go use these sub agents I wrote this fleet planner skill that basically does a lot of that work to organize it for us kicks off um the agents that you pick with a goal and then uh gives it a bit more of a guided prompt for for proposing a plan. So, that's going to be my go-to going forward is like if I'm in a repo with uh these specialized agents, I will use this fleet planner. So, that's a reusable thing for me. Um, but I don't think we had No, I was just showing you guys what what this is doing. But, yeah, like I I would use or I don't know if I use the fleet planner in here.
I don't think I did. I think I did it manually. Yeah. So, use this is how I was doing it manually. I should have used the fleet planner as well for this, but that's all um part of this repository and building out some reusable skills and uh templates. So, I hope that helps. That's just a little bit of, you know, how how I've been kind of looking at stuff. So instead of me continuing to manually build things, I'm trying to there might be situations where I go do it manually and I'm like, "Cool, now that I've done it once, bring it back into this repo so I can reuse it and uh use it as a template." So hope that helps. Maybe just for some perspective and I encourage you play around with this stuff, right? It's It's cool because you can if you don't know what you're doing, then like talk to AI about it.
It'll at least give you some insights and maybe move you in a direction. So, uh I appreciate you being here to watch and check things out. Um yeah, I got to get some YouTube videos put together. So, sorry for being behind on that, but Code Commute has had uh this whole week is fully scheduled, so I'll get more videos there. So yeah, you can check out Code Commute on YouTube. You can check out Dev Leader on YouTube. And uh yeah, I appreciate you being here and I hope to see you in next week's stream. So take care and I will see you next time.