Hey, this is Andrew Brown, your favorite tech instructor, bringing you another technical course and this time it's the MetaMuse Code Essentials. So, we are going to learn how to work with the new Meta models, Muse Spark, as well as their new coding harness uh called Metam Muse Code. And the reason I think that we should look at this is that when you have a first class company that has their own models that they've trained and they have a coding harness and and they're entirely vertically integrated that they are a possible option that uh we could utilize in the EI space. Uh and so you've already seen me make multiple courses like this. Uh and I'm going to continue doing that as more first class companies with their own models are vertically integrated. Um but you know the routine so let's just jump into it. Okay. Hey folks, it's Andrew. Before we jump into working with Muse Models, let's go ahead and learn a bit about uh their offerings. Okay, so uh the first thing is that we want to cover what kind of models are available with meta. So one that's very well known is llama, but because our focus of this course is to work with uh you know spark or glimmer, we're going to talk about those ones. So musep spark, there's basically only one version. It's version one. uh there is an earlier checkpoint but there's no reason to use that earlier checkpoint if you can use 1.2 or whichever is the latest checkpoint there uh unless you have built something already on there and you are locked in with its specific intelligence. Um what's interesting is they have this contributor offering where they're going to give you deep discounts if you share your data. Um for me I like to build a lot of Japanese language learning apps. I don't care if they have my data. So for for me that could be a really good offering based on its use case. Uh it works with multiple modalities, image, video, I believe audio as well, uh obviously text, and it will output it. Um and so it truly can do uh a significant amount of things. Um and surprisingly, it does really well on some of those tasks like uh one that's really fun is like trying to build a website. It does a really really good job uh for what it is. Um and so I do we do look at that in the course where I make a a fun social tech website um using Musepark. Um, so the other one is Muse Glimmer. Now, I don't end up using it in this course uh just because I don't have the local compute and I probably could have figured a way to serve this. I just decided to stick with um the managed uh one here, but there's a lot of things going on here. So, it's a 30 billion parameter model. Uh it can run on a single GPU, which is not the one that I have. So, maybe if you have an RTX 5090, 32 GB, you could do it. I don't have that. Um, so, uh, you know, I don't have 5K to to spend on that, but if I did, that'd be really really awesome to run Glimmer uh, here. Uh, it's a open model, so open weights. Okay. Um, so it's kind of a mix of open sour, it's not open source, but it's like it's basically, I believe, what Llama has as their model. So something very similar to that. And it's trained on data from more than a hundred languages. Again, that matters to me because you know me, I like to learn Japanese, but um having a lot of languages there is really good. What's really interesting is that when I looked into benchmarks, and this was not because I was making this meta course, but I was again trying to build my Japanese language um app, I have like four of them, and I was trying to uh train it uh to detect grammar points. And what was interesting is that uh meta metas-park was really high up there in the intelligence level. And I was like, oh, cool. So I could actually add it to the mix and I'm currently running an experiment on that. So uh it's really interesting where this model sits on benchmarks. Um in terms of pricing and rate limits, Meta has a token usage pricing model. They do not have a subscriptionbased pricing model. So this is something um you can build with like in this course I'm running off of tokens and I'm running on X high for a lot of things just for fun. And you don't run have to run an X high, but like I could barely get through $100, you know, it was I think I spent like $50 out of out of my huge budget. And so, you know, I would say that if you wanted to uh run this thing as your primary thing and and it was like you want to spend $20 or $30 a month, uh you know, if you are uh very conservative in the way that you work, and I I generally am, uh I feel that it'd be very very easy to uh stay under a $50 uh mark or if you wanted to uh you know, replace your Claude Max at $100 uh with this as a developer, you absolutely could. Um, but you know, you just have to get used to that um that thing. I think people are kind of getting used to that. So, I'm not sure how long subscriptionbased pricing is going to last to be honest. Uh, as I mean in the future I could see other models just deciding that they're going to say, "Hey, you have a $100 cap. When you run out, it'll be more transparent." So, um, there's that there. Okay. And so, uh, these pricing models are available obviously for the Spark models. not going to be for Glimmer, not going to be for Llama as those are ones that you run locally. Um, and I don't know if they actually serve uh Glimmer or Llama up anywhere besides, you know, with other providers. I don't believe Meta has their own specifically to serve uh Glimmer. Uh, but that's a non-issue as there's a lot of providers that can do it for you. Um, in terms of pricing, we are seeing uh pricing for input at uh 1.25 25 USD for and then uh10 cents per million. So it's very uh inexpensive. I think that their input I think it's their inputs a little bit more than other providers but their output is is pretty cost effective here. Uh for rate limits we have 3,000 for standard contributor is much much lower. So that'll be some consideration that you'll have to have. Um and so you know just consider that. But yeah just look at the price difference between contributor and standard. It's insane uh the jump in difference. So you know if you can handle this uh lower requests per minutes and you have that then that will work really really well. The one question that I would probably have is like you know what does it look for batch uh batching right or do they even have batch capabilities? Give me one moment. I don't think I checked that. Okay so currently they do not have batch pricing. So maybe that will come down the road but what would be really interesting is that you know if you have contributor and you have batching that would be insane for me right? So like because I can get around this 100 100 per request uh limit. Um but that's just one thing you have to consider if you are going to use contributor. Um oh they also have web search grounding and so it is a a higher cost here. Um you know so per per thousand search queries. So just consider uh that if you do want to ground information u it's going to be a little bit more. Um so that or you can just bring the information in uh that you need grounded but depends on what kind of app you're building. In terms of benchmarks, I would describe Meta as a Goldilocks model. It's not at the highest, uh, but it's not the lowest. It's not, it's somewhere in the middle. Um, and in here, we can see it right there. It's usually in the upper middle, uh, area. Uh, so, you know, I would think of it as like, you know, we'd say like the third best model in everything. And so, that's really useful when you want something that's fast, cost effective, and you can broadly use everywhere. Um, so you're going to just again see it. It's going to be uh in the upper middle of most uh leaderboards. And I had a hard time finding a leaderboard that I use specifically for Japanese learning, but um I have it somewhere in my my documentation, but I it would have been interesting to show that because again and again it just keeps showing up there in the upper middle. Uh and so to me that that it's kind of interesting. Um it uses the REST API as per usual. Its endpoint is going to be Meta AI version one. Uh you can see that it's using a uh bearer uh API token. So that is uh pretty straightforward there. Uh what's interesting is MetaMuse supports multiple protocols. So you have the responses, the uh chat completion and messages. So basically um because it has that coverage, it's really really easy to drop into existing SDKs. In fact, they don't have their own SDK um because they are encouraging you to uh utilize existing ones and um I mean to be honest when I build stuff I use the rest APIs. I don't even use lower lower SDK. So for me this is perfect for uh for my use cases. But um you know that's their approach. Um, in terms of what they support, we have obviously the ROS responses API, the chat completions, we have uh search grounding, image understanding, video and audio understanding, structured output, function calling, uh, file upload, streaming, temperature and sampling parameters, model selection. So, you know, basically everything that you generally need in a model. Um I said that they don't have their own SDKs and that is absolutely true but they are meta API open AI compatible uh and also with anthropics um messages. So whether you want to use OpenAI or Anthropic uh you just basically change the base URL. Um one key difference here and we find this out later is that uh for this one we do not put the hyphen or for/v1 on here. Um these examples are using 1.1 because I just pulled them out of uh the documentation from meta. Um, but I did test both and they they worked exactly as expected. Um, so that was really easy. But you know when we say open AAI compatible, we don't just mean with OpenAI, anything that is OpenAI compatible, right? So it's broader than what is being shown here. So you can work with Langchain, Llama Index, Versell AI, a bunch of stuff. Um, so that's really really nice. Uh, in terms of coding harnesses, uh, you can basically work work with a bunch. So open code, uh, cloud code, codec. So I test cloud code u I don't test open code and codeex I mean they're very easy obviously to get working with and uh they have their own muse code. The thing I did notice is that it's not like a perfect transition especially with cloud code is that you can plug it in there uh but you'll get some weird artifacts um uh just because that doesn't mean that it doesn't work as expected but the UI will will show you some messages that will make you think that things aren't working exactly as expected but it works totally fine. Um, but that's pretty part of the course with claude code. Okay, open code's going to be a a very direct integration. Uh, but again, I don't explore open code. I'm really interested in Muse Code and Muse Code performed extremely well. Um, I think I only had one little UI issue and I think it was mostly because I was um increasing the font size on my uh text interface uh to show to you folks. But when I was running sub agents um and I had to do those approvals, I I just couldn't always see what what was happening, right? Um but other than that was like very very good experience, extremely streamlined um model. The only thing I think I would want in it that it didn't have at this time was uh a way of troubleshooting MCP as that's always kind of a pain and cloud code and other providers solve that. So that's just one little gap they have but pretty good solid uh coding harness to begin with. Um, the way we are going to uh get our keys and work with stuff, we're missing the Dion here, folks. Um, is via the dev.ma meta.ai playground. And so we can go over there and this is where we're going to get our keys, our usage, uh, everything like that. Um, so it's pretty straightforward. Building is a little bit different. So you aren't saying, I want to load up $20. you're setting a um a very specific um uh cap of saying like hey uh you know charge up to $30 and then notify me right um so it's a little bit different um but it's nice because if you are used to like claude or other providers where you have a minimum of $5 you don't have to set a minimum here okay they're going to only charge you once you go over a dollar uh or or there's something like some logic like that so pricing is a little bit different, but it's totally fine. But anyway, I think that's all we really need to uh know to jump into um Muspark and Musepark code. So, let's go ahead and do that. Okay. All right, folks. So, um I want to just quickly show you um I already have an account, but basically, you'll get started. You'll connect. You'll get in there right away. And then after that, you're going to probably want to load up some money. So, I do have some credits to play around with here. Uh but originally I did load up um 30 bucks on my credit card here. I've obscured that information. Um and so in order to start utilizing you attach your credit card and I would set a spend limit. So I set mine as 30. So when you reach that balance then that's uh when we will pay. It's a little bit different than other providers. Other providers you load up money and then you run out. This one is uh different. Okay. So just be aware that you are setting your limit and it's kind of open uh in terms of uh that spend and you know just be aware of that with your API keys. Um and I believe that yeah there's now glimmer. So I think even when I started this glimmer wasn't out and now it's out. So we have metaspark 1.2 and 1.1 and this is the open model that you can download. So I I assume it's very similar to llama. Uh so if you ever want to download one and work with it, glimmer is now here. Um, but yeah, if you want to follow along with this stuff, you do need to load up or you do need to attach a credit card and set a limit, whatever it is, $2, $1, whatever you're comfortable with. Um, uh, but you don't, again, you don't have to. There's no minimum of like $5, right? Um, or $10 like other providers. So, if you want to come in here, experiment with$1 or $2, you absolutely can, which is a great option for you. Uh, but I just wanted to point that out before we get started. Um, so yeah. So, if we want to start working with these models, what we can do is go to um developer.ma.com. And right off the bat, you can see that we have Muse code. Now, if I just clear this out here and go to the main page, we'll just see where this brings us. So, it brings us to developers meta.com. But if we go here, let's try AI and see if we can get to our respected area. So, this will bring us back to the same place. So, I've already created an account. Um, so I'm going to go ahead and just get started here. I think I just used um, uh, Gmail like clickth through to get through here. And obviously, there are many ways that we can get installed here. But the thing that I want to focus on is actually just showing you the model usage. Um, I originally did put money uh onto this account and then I I was able to get credits later on. So, I do have some credits that expire at some point for experimentation. Um, but I'm here to show you what you can do. I don't know how you can get credits. Um, but again, you know, I would just say load up $5 or $10 and you can get the uh similar experience and they go really really far. I don't even think I needed uh credits honestly to do what I wanted to do. Um, but anyway, so over here we have uh 1.2 and 1.1. Um, so the thing is is that I've already said this in the slides, but um there there's not a huge difference between 1.1 and 1.2. 1.2 to is just a newer um checkpoint and this might be the future and there could be something even newer uh here that is here you have your usual controls u you can change your reasoning level you have streaming you have uh grounded search grounded search does cost more per token to utilize but um it is something that you can do and there are other capabilities that we have like putting in structured JSON schema and additional messages so um the playground is a great place to start. We will pro programmatically use this later on, but let's just see if we can uh see what it can do. So, um I think again we'll go ahead and start working with uh Spark 1.2 here. And uh I really like learning Japanese, so that's something that I spend a lot of time on. So, and it's a good benchmark for me. So, I'm just going to see if it can produce that at a medium level. And we'll see what happens here. So, we'll just say uh you know, can you give me a uh list of uh grammar points I need to learn for the JPT? I'll just pull this up here for the JPT. Um I guess I'll have to expand this out. It's not it's not the friendliest when it comes to expanding here, but the JLPT JPTn5. Okay. And we will see what it comes back. One mistake that always happens that if you ask for Japanese sometimes they give you everything in Japanese but generally it goes up in level but it's a really good test because um you know languages like Japanese are are very comprehensive and uh this is where I can kind of spot failures u but we will give it a moment uh to produce here and here we go. So here is the complete uh JLPTN5 checklist. The JLP does not publish an official list as true and there's 40 grammar points. It's a very good summary actually right off the bat seeing this. Uh we'll see. I think one thing I really like about meta is just not like for this. It's just how it brings back data. Um I would say OpenAI is pretty good. Uh um uh what do you call it? Anthropic is uh I do not like its formatting. It's always too verbose and whatever. So whatever they've done to fine-tune this here, it's uh it's really really good. So you can see here it's giving me uh a really uh concrete example of list here. So we got through particles. Yep. And then we have basic sentence structures. Yep. Yep. And so this is really really good to the point that I'd probably save this for later. I could give them a nice good response here. I'm actually really happy with that. Um and I probably want to save this for later, but I'm just noticing here that they don't have a copy feature. It's the playground, so it's not that big of a deal. Um but that is fine. Uh let's go take a look at its vision capabilities. Um so uh there's a website called NHK news. NHK news easy. And so this is a website for people learning Japanese. And it's supposed to be like really easy articles when you're learning. And so I'm going to go ahead here and enter it. And I just want to take a screenshot and see if it will transcribe the content. It shouldn't have an issue with it. Um, so we will grab maybe this one here. And so you can see these are very very short. And so I'm just going to go ahead and grab this. One trick here is it has these little characters for so that can sometimes mess up um transcription. And so it'd be very interesting to see how that does. So we'll go ahead and we will paste that in. I can't actually paste that in directly. So what I will do is open up paint. It's not a big deal. We'll just do that. And we'll go ahead and save this to our desktop. Okay, that is now saved. And then I'm going to bring it in here. I just stopped the video. I don't like to show all my local files. And I have now attached the file. And so, uh, I can just say transcribe. Now, I'm not going to do this, but like if it was a book, let's say it was like a full chapter of a a published work. Some LLMs will refuse to, uh, to do that. They'll recognize that they are copyright and might not do it. Um, some have more free liberty. They might say like, "Yeah, we'll we'll transcribe this, but you know, we were not going to do certain things with it." Um, so I don't know what meta is there. I'm not going to push the boundary of that, but I'm just curious on how the transcription worked. Uh, and so, uh, we will just take this as a comparison here. And actually, you know what? I can just feed it in here and ask it. So, we'll grab this here. I can turn the furry gun off here. So, I can go ahead and just turn that off. And we will go ahead and copy this in here. So, how well did the uh transcription go compared to the original? Let's see if it can reason that original and we'll see how well it did. It's on medium effort. We could turn it up here. The transcription was 100% accurate to your original. Um, every kanji hiragana katakana I like. Maybe it knows what's going here. The only difference I had the Ferono readings in parenthesis that were written in small text. I think that was the only thing that was a little bit um unusual. There are these three characters. So what about what about these things? Uh no characters are misrecognized. Okay. What about these? Maybe it's just not showing encoding. Those are not the original image. They are replacement characters which means my output had encoding glitches and failed to render correctly. Um, so aside from that, the render the results of the transcript was 100% correct. And if I just read this quickly, maybe the first sentence here. Mhm. And it looks good. So that is uh one good example. Another thing that we might want to check is to see how it builds out websites as that's always really fun. Um, so let me just figure out a page that we want to build. Um, give me a second to think about it. Okay. You know, I'd say something I have a lot of, um, nostalgia for is PHP Nuke, uh, with this like the lefth hand column and the righth hand column kind of website. So, let's see if it can replicate this for fun. Uh, and so I'm going to go ahead and grab a screenshot. We'll have to open up Paint and save it there. Be nice to be able to paste directly, but again, it's a playground. It's not, you know, it's not supposed to be a full featured chat system here. And I'll just go ahead and save that. Okay. And so I'm going to go all the way back up to here and we will uh go here and attach that image. Okay. And for fun, I'm going to go ahead and change the reasoning up to extra high. I'm also going to give a system instruction. Uh you are a website uh designer uh or like a you are a front-end web developer with designer skills. Um you will take a concept with reference image and build out a single page website um all self-contained uh within a single page of a website within uh a single HTML page. Uh so you know please don't use a CSS framework. Um okay so just you know straight up do it here. uh use flexbox uh as much as you can and keep the markup uh keep the uh markup and CSS selection uh as lean as possible. Okay, so we'll do that. I probably give a better instruction for that. So, um, you know, I really like the era of Nuke PHP communities, PHP new communities where they have lots of uh, plugins that show on the left and right. Um, and they have the three column design. I have uploaded. I've provided you an image of the original PHP new template for uh reference. Um I want a concept for a website. Um I'm trying to think like I could do Japanese of course, but I think that it would be more fun if we did it something grounded that we all we all enjoy. Not necessarily a gamer site, but like a tech site. So, so I want I I I want a concept of a comm a a social social community, social tech community website um for tech professionals. um you know learning you know the broad landscape of tech as in you know DevOps cloud AI security you know uh you know maybe not yeah I think that's fine so so hopefully that is a good sense here so please produce concept as full HTML page okay also make it mobile friendly, you know, think of some fun plugins to to conceptualize and show. Okay, great. So, we'll go ahead and we'll see how that does and we can fiddle with all this stuff, but I think that's fine. The big thing I think is the X high. We didn't turn on uh search grounding, but we can try that later on. Um, additional messages. I think that's just you stacking messages uh from from prior, but we will give this a moment here and see what happens. Okay. And here it goes off to the races. Producing HTML pretty quick I would say. Um it says single file retro PHP new concept built for modern tech community three column flex layout. Now normally what you'd probably want to do is say like hey can you give me a concept and then I'll review it and give you at least let it have its thoughts out and uh that but I'm really single shotting this because I just want to see how it performs at base here. And so we have it. Obviously, we can't view it directly, but we can um copy it and save it as a file. Okay, so we'll go ahead and copy that and just give me just a moment to go ahead and save that. So, I have uh saved the file locally. Let's take a look at uh the website of produce. And wow, does that feel that feels so much like uh what I am used to. I'd probably change it a little bit, make uh make a bit more spacing. I think it' make a huge difference. But like uh what do we have? We have modules. I like how they called it modules. That's really fun. We have the system load. Um, I guess that could tell you what's going on with the current machine, which is fine. Who's online? That's a pretty common feature. Uh, select your stack. I don't know if that really provides much value. Again, we the single prompt, right? We're not asking to do tons of stuff. We have our contributors down below. Um, how the server is doing. Uh, nuke chat shout box. Um, so that looks pretty clear. feed doc submit post topics top 10 and how do we cut Kubernetes cost down by whatever without losing sleep so it's fun but you know I think I would I would like it to take one more pass at it and see if it can make funner module so uh can you in summary so the the page looks great uh could you um uh the uh there are multiple plugins about the performance of the website. I think the plugins I'm interested I'm interested in con uh concepting are ones that will uh create community engagement. Can you first uh suggest in summary uh single point bullets um ideas that I can uh review? Okay, so we'll go ahead and do that. Again, I'm on X high reasoning right now. We're not I'm not really keeping track of my costs to be honest. Um, so I'm not really concerned about that for what we are doing here right now. Um, and so we'll take a look here and see what they have. So we have uh deploy confessions anominous 140 prod stories. Others react with f or or or fixed. I don't understand that part, but that's okay. Oneclick random 50-minute coffee match with someone outside your stack. That's interesting. So, like a pairing thing. Uh, post a snippet community votes. Code review. Thunderdome. Uh, okay. Stump the stack. Weekly impossible bounty question. Kudos terminal. Send kudos shown as a live tracker. Sure. Project M. I'm just trying to see if like any of these are are good. I mean, like I not expecting any AI to really do a good job of of choosing these, but I'm just curious on how it's done. Okay. So, matching up projects upcoming live ask me anything uh mentor questionship. Okay. So, what I'm going to do is like can you uh you know instead of grounding it to specific examples can we can we create a visual mind map of uh points of community engagement? Uh uh you know can you make this a mermaid diagram? Okay. Delete chamber polarizing pole with threaded with threaded need data set labler. Okay. Let's make sure that is. So we have a mind map here. I'm just curious as in terms of what it's produced. You would think like with meta because and I'm not sure what their data source is, but like you know they're a social platform. So I feel that the you know in their training they might have something there that might be interesting. Uh and so I'm going to go ahead here and just uh save this as a file. One sec. It can be a bit hard to uh get Mermaid to display. So I'm just going to go I was trying to get a Visual Studio code extension, but I'm just going to paste it in here so that we can see. And let's take a look at what we have in terms of data. Um and so in our Wow, this is kind of cool. So we have um our tech community. So we have learning, growth, skill building, daily challenges. And so the idea is that I would think that the outside would be the kind of task that we would have, right? And so here we're talking about learning and growth and then we do skill building. So we have daily challenges or curated vault. Uh I don't really know if I know what that means, but that's fine. I guess maybe like stuff from prior that was really good content that has been uh definitively made. Okay, that makes sense. So we have experimentation, exploration, and so I would think that um we have participation. Maybe this is more of what we're leaning towards like ask questions, debate chambers, shout boxes. And so you go all the way around here and you can kind of see uh things materializing. One thing we do not see is like individualized um ideas. So this is where I would ask it to go go on the outside of the branches and say, can you give me now plug-in examples from this? So we'll go back over to here. I'll say that's great. that that that uh that mind map is great. Um for the out for the outmost branches um can you now create you know two to three examples of uh plugins or engagement uh plugins or engagements modules that are grounded with uh with with act with examples. Okay. Um, and just color them uniquely the same color so I can distinguish them them in the uh the tree here. So, we'll go ahead and do that. We'll give it a moment to come back here. Okay. So, we'll just chill out and give it a moment. And literally took a second. I didn't even have to stop the video for that. I'm not sure why I even bother doing that, but we'll go ahead and now we'll paste this one in. So, I'm curious to see what this one looks like. And we'll go ahead and paste it in. I'm not sure if that works. So, I'm going to go ahead and delete that out. We will go back over to here. Copy this. Go back over to here. Give it a paste. And it is not pasting here today. It's just refusing to do so. So, I'm just going to hit copy a bunch. It can It's often my computer the copy paste. It's kind of frustrating. There we go. I just I kind of I had a I think it was this editor here that was giving me the problem here. So, it says fix the syntax error. Where is it? I don't see it. So, let's go back over to here my map because I kind of couldn't paste it in exactly how I wanted to. So, it's giving me a bit of trouble. So, I'm going to do is I'm going to just try to copy this way. It might be the the the class definition here down below. It might not be able to handle that. That might be the reason why. Oh, you know what? It's incomplete at the bottom, too. I don't even think it copied the whole thing. So, we'll go ahead. We'll paste that in manually like this. No, it's just this editor is kind of mucked up. So, what I'm going to do is I'm going to go back over to here. Whoops. Can I get a new one here? Give us a refresh here. And I'm going to just I think it's this editor. This editor is giving me some trouble. And um there's probably a plugin for Visual Studio Code. I just can't seem to find it right now. It's really not pasting. Let me fiddle with it. One second. Okay. So, I I think it maybe it doesn't like that custom color. It can't handle it. So, I'm going to try this and see if that fixes it. I think this editor just sucks. And uh you can see it's a little bit hard to find one. This is frustrating. The mermaid part, not the the model. The model seems to have produced uh what I want. Okay. One second. All right. So, I just sucked it up and I made a new folder and placed them in here. And I got a plugin that should be able to render it that renders it in line when you do this. So, let's take a look and see if this works. So, this is open as preview. Um, and there you go. Okay. So, now we can see it. I mean, it was prettier before with all the coloring, but this still does uh does the job. And so, what I'm looking for here is did we get the same thing as before? Learning and growth, mentorship. Um, is this the same as before? I'm not sure. It looks a little bit different. So, I think I'd have to have the other one pulled up as comparison. Let me go back to this one here, the original one. So, we have um identity, belonging, member presence, who's online, stack identity. And so, here like we see those, right? And I'll go back up to here. And so that one was recognition uh identity and belonging right here and member presence on call status dots avatar. So, uh, close, but I think I think you, uh, ended up removing a layer from our, uh, our tree, uh, you know, example we had before this. And you're supposed to like, you know, grounded example, grounded example. And I mean, some of these don't really require grounded examples, but we'll go ahead and try this. Let's see if it can revise based on that information. We'll give it a moment. Okay, here we have deepest leaf set. So, it went a little bit deeper and I don't know there was maybe limitations on mermaid. I don't know the limitations of mermaid that well. So, it might have just pushed back so that it wasn't super complex. Again, I don't really know. Let's go ahead and see if this is even easy for us to visualize as it'll have much more information. And we'll go over to here. Wow, look at that. That's a lot. Can I zoom in on this? That's my question here. Um, not really. But I mean, again, this is the limitation of this thing, but you know, if I squint, I can kind of figure this out. I know you won't be able to read it, but I will just go through here. So, we have learning, growth, curiosity, experimentation, try this Slack button, uh, sandbox labs. Okay, fair enough. feedback raids, feedback cards, participation, um, dialogue, debate chambers versus debate arena. Okay. Or debate or dialogues, shout box, um, coffee match, low Friday entry, quick polls and reactions, Instapole widget. just kind of looking at this kind of even, you know, even if I don't want to use this stuff. Like one thing I thought was like, well, what if you had a website where you could only join every Friday, you know, those kind of engagements I think are kind of fun. But uh anyway, that is just something that we have over there on the side. And I think we kind of spelled it out there. So I'm going to stop the video here and we will explore individualized things like JSON schema, which we definitely want to check, and grounded uh search grounding. Okay. So I'll see you back in just a moment. Okay, I want to continue on using Muse Spark 1.2 here as um there's some other capabilities that I would like to uh try. So, one thing might be doing uh search grounding. So, that might be uh useful to do. Um I've been doing a lot of car repair as of late. So, uh grounding a search in car repair might be useful for me. I'm just trying to think of an example where uh it matters. So, I have a uh Dodge I have a Dodge Grand Caravan. I guess a good comparison would be to compare it without the grounded search and then afterwards. So, that's what I'm going to do. I'm going to open up a new tab here and we're going to create a prompt. Um, so I have a Dodge Grand Caravan 2017 and um I need to replace my control arms. uh my control arms. Can you find I'm in Canada. So we'll say I'm in Canada. Can you find a reputable reputable brand um that will be cost effective but also good? Where what website am I buying from? And I have high extra high reasoning on. You don't necessarily have to have extra high for that, but I'm going to leave it on. And that's my prompt. I'm going to go ahead and hit enter. I'm going to go over to here, and we're going to uh turn on search grounding, and I'm going to give it high for fun. And we'll go ahead and give it a comparison here. So, normally doesn't take that long, but my idea here is that because it's not grounding the search, it's not going out to the web and getting current information. And this one actually is. And so, it'll be curious to see what we get. Um, and I'm just going to give it uh, you know, a minute here and I'll be back in just a second. Okay, so literally 10 seconds later, and the one that's not grounded has already returned. This one is still working on it, which is fine because it's going out to the internet here. So, best brand for Canada, Mevotech, Supreme as a Canadian company is best price ratio here. Don't buy cheap white stuff box off of Amazon, eBay. Definitely not doing that. Um, Supreme, this is what most Canadian shops use. is better than the OEM. Lifetime warranty. Comes with ball joints and bushings. Pre-pressed, etc., etc. with a number. Um, town and country price 130 to 190. Best heavy duty. Then they have Moog. I I always think that this is OEM when I see this, but maybe it's not. The old problem solver gold standard. Excellent quality, but more expensive in Canada. Definitely is. I never even heard of this one. I'm not sure which one I bought. Give me just a moment to check. The ones I bought say Dely Technologies, but I don't know if that's actually the company. So, here, yes, for caravan, you always want to buy complete arms of ball joints. That's what I did. So, best websites, partsavvatar.ca, which is I didn't know about this. This is the one um I went to, which was rockauto.com. Auto parts. Uh, everyone recommends this. I've never heard of this one, actually. Uh, interesting part. My wife used to work for an auto parts thing like this called the Wrench Monkey. I didn't order from them, though. Sorry folks, not helping you out. But I I ordered from this. The reason why is that I know that they don't keep a ton of this in stock and so I don't want to have a headache trying to order from them. Um but anyway, so I guess there's parts Avatar which I didn't check. The hard part here is the cost of shipping, right? And so um that was one thing to factor in which we'll take a look here. Oh, look. It says the wrench monkey. Look at that. I didn't notice that there. Also top competitors. Um if you want the absolute cheapest rock auto But the shipping cannon is inflated and you wait for seven days. And that's a thing that that I never considered. Um, and so buy the pair. If one side is gone, the other is close behind you. And you save that. So I actually ended up ordering both here. And so I'm going to go back over to this. I can give it my postal code. So P 0 P. Oh, this is uh we're mixing them up here. So this is the original one here. Sorry. So here, parts avatar. It didn't even mention wrench monkey if you don't mind waiting. So, we have that cost there. Um, repair in pairs. Do you just need the front lower arms? There's there's only two on the bottom here, right? So, you will need wheel alignment after a budget of 140 for that. So you know the question I would have for it is um you know can you uh uh can you determine the cost of rock auto shipping um and versus parts was the first one parts avatar.ca CA because maybe uh you know the parts are cheaper but the shipping cost doesn't make it worth it. Okay. So, I'm going to go ahead and copy that and I'm going to go over to this one and I'm going to ask the same thing if parts auto is out of stock for more than 400. And sometimes the thing is that even if it's doing grounded search, they can't always get to the data. Um, so like, uh, I know this for certain because there's, um, you know, like when you're looking at products and stuff or event pages, they'll purposely block, um, agents, right? And so then you'll need another service that will actually that that can get around and have like a bunch of different ways of scraping the data. Um, uh, and I mean, that's not the purpose of search grounding, right? Like search grounding can't just penetrate through everything because they have to be generally generally honest. But there are, again, I'm not I'm not going to say questionable, but there are ones that are more comfortable going and grabbing the data that that websites don't want them to grab. Okay? So, um, that's why I'm not saying like tell me exactly what part and find it and whatever. But, I mean, technically, you know, like we could find things off of Amazon.ca, but whether it'll let us search rock is a different story, right? So, here the shipping for the job is $0. So, parts uh avatar provides free shipping for all orders. Um, so here is 300 to 380 cats. You automatically qualify under the the thing. I think I paid likeund uh 20 or 40 per each does ship to Canada everywhere, but for control arms it's expensive because of that. So no surprise bill at your door. Um, the bad news for heavy part shipping often raises the cheap part of the cost. So for your van would be similar per arm. So here two supreme 384 560 to 650. I mean I didn't pay 560 to 650 for these but um I do believe that it's right that the cost is going to be higher here. Um, but if we go back over to here, um, parts auto shipping to Canada, zero. And so it's interesting like this one's probably more in line. Um, but uh, yeah, I don't even I think it was like 300 320 bucks I paid. Maybe I'd have to go double check. So anyway, what's interesting is that I I learned is that uh you know, I should have used parts parts avatar.ca. But uh you know, I wasn't using models for this. I was going based on recommendations of what everybody was saying. So um and I think if I need more parts, I'll probably order from parts avatar. Sorry, the wrench monkey. I'm just not ordering from you. I'm not giving you free advertising here today. But you can see they was grounding that information. And um surprisingly, the built-in data was really, really good um for that. So but uh obviously grounding is uh what is what is interesting here but anyway we will continue on with uh other things here. So just give me uh a moment here uh and we'll stop the video and we'll look at structured JSON schema which is absolutely essential for any model. Okay. All right folks, we are back and uh we had just done grounded search and I would like to move on to structured JSON schema as that to me is you know one of the most important or valuable things here. Oh, they have example schemas. Oh, okay. So we have summary text. Um and so it looks like we are looking uh we're using the usual structured meta schema JSON schema. Yeah. So it looks like we are using JSON schema. Okay. So the first thing is that I need to think of like a data structure that I want. One thing that you should consider with JSON schema is that it's not just great for getting out schema. It's great for getting a result that you want, right? Because you can kind of constrain the intelligence through that if it has to reason through something. And so I want to create a grading schema. So I want to create a a grading schema uh a grading output using JSON schema. So I want a rubric. It needs to grade my Japanese four and four. Uh give me and four and five challenges. Uh let's create a rubric and a feedback and ideally what would we should have done. Okay. Uh this is for structured input. Okay. And so we'll go ahead and let it do that. We're still on extra high. We do not need to be on high for this. It's ridiculous. We'll turn it down to high. It would take a lot of work to to figure out the different side. Like I think high and whatever. I've been doing really well on medium, but we'll leave it at high. I never seem to ever want to use extra high. It always seems ridiculous to me. But we'll give it a moment here to get some structured output. Okay. And then we will plug that into the JSON schema. And it's outputting HTML. So stop stop. All I wanted all I wanted was the JSON schema reference JSON schema structure think uh you know like I'm not sure why I started creating the rubric which is fine because there's a very specific name for this format e so like oh I I'll just give an example here you know like this you know eg this. Okay, we'll let it try again. Okay, and so now we're getting output back. Okay, so we have this here. Um, rubric, criteria, particles, grammar, uh, vocabulary, verb, conjugation. Okay, I mean like yes, that's that's an example of it filled in, but we are using uh JSON uh what's the thing called? JSON schema. Okay. Unless it gave me it to me above here and I just wasn't paying attention because we do have more than one example. There we go. Okay, great. So, now we have it. Now, I'm not saying I necessarily like the structure, but I mean I think that this is just something you need to work with. And so we'll go ahead and I'm just going to save this in my little thing over here. Just call this uh structured. So JP JP.json JP output JSON just so I don't lose it here. Actually, this is a bit easier to see now. Um, okay. And so what we'll do here, we'll save that. And so now we have that structure JSON. I'm going to make a new chat here. Uh new chat. And I'm going to go ahead and add a new system prompt. You are a Japanese um teacher. You are you are a Japanese grader. Uh you uh I am attempting to uh the user is provided a challenge and you will evaluate their challenge sentence. Okay. So we'll go ahead and we'll save that. And down below here we'll add additional messages. And so I'm going to say uh you know please give me a Japanese N4 challenge sentence that I need to trans uh translate. I'm going to go over to here. Sorry there. Um I'm going to go over to here and um just a second here. Okay. I just need another uh meta tab here. So, give me just a second here. We'll open a new tab and we are going to go over to what? Um, what do I want to do here? I want to Yeah, the same thing. I I need the same thing here. So, we'll go ahead. We'll grab this line, paste it here. I just want I probably should have turned this down as we'll get more out output here. And that might might be something I don't want. Oh, it has the search JSON on here. Sorry. One second. One second. One second. We'll take that off here. And new new chat here. I just want to clear this out. There we go. Save it. So, we're just going to help it along here. I could have added it after the fact here. That would probably would have made more sense. Sorry, no Japanese, just a single English sentence that I will translate. I barely wrote English there, now did I? Now, I'm not going to bore you with the the translation. I will pause the video and do that. In order to pass next week's exam, I have to study for one hour a day at the library. So, that will be our challenge here. I'm going to go ahead and paste this in here. Um, like that. Save messages. Okay. I'm going to make sure that schema is still here. It is. Good. And so, the idea here is that now that is queued up. And so, um, that is what I'm going to attempt to, uh, translate. So give me just a moment here and I will do that. All right, let's check out my uh answer. So in order to pass next week's exam, I have to study for 1 hour a day at the library. So we have rishu next week. No shinken. So that's exam. I don't know how to say to pass. So kate is like I think to win like to basically like if you're fighting somebody, you're winning a match or competition. So, uh, I put nudu, which I don't know if I can put sudu on that, but I did it anyway. And so, I'm I put, uh, tom is like in order to or the cause or reason. I don't know if I'm supposed to put a no there, but I did it. So, we have I study for one hour a day at the library. So, so every single day, the library day at the library. So, one hour, which is to study, one hour to study. which I believe means like like I should I should study. I have to study but this is like well I should study. Um so I'm hoping that that is close to correct. I'm not sure. I mean I always get this stuff wrong but it's okay. We just got to try and see the grading. Let's take a look at what it produces. So this will be fun for me. So go ahead and we'll paste this in and we will give this a try. Okay. And while that's working, I'm just going to go ahead and save this as a prompt just so I don't have to like hunt this stuff down later. All right. So, we have something back here. And it took uh just a minute to get this result back. But I mean, it did give us a lot of structure JSON. The more structure JSON, the more thinking, the more effort it takes. And so, we do have a structure back. So, I'm going to copy this for a moment out of here. And I want a nice page for this to display. So, what I'm going to do is create a new chat. I'm going to clear out uh this schema here as I don't want this anymore. We'll save it. And uh I'm going to clear this out as well. Save. And I'm going to put on X high reasoning for fun. I'm going to go ahead and give back the JSON structure here to it. So, I'm going to copy this and say, can you please uh use this JSON to create a single HTML page so I can uh see my uh graded report. Um, okay. So, I wanted to do that and I'll download that file and then we'll take a look at it together. Okay. And so, now we have a uh a page. We'll go ahead and I'm just going to go ahead and just give me my results. So, I'm going to make a new folder here which will be just Japanese grader. This is something I've actually built in uh really really granular detail in another project. Um but it's called Hajimari that's kind of just sitting there that could be revisited as models have gotten a lot better at their intelligence and and cost. But I'm go all the all the way to the top here and copy this link here. And we will go and make a new file here index html. And we'll go ahead and paste that in here. And I would like to uh take a look at that now. So if we could where is our preview button? So, I'll have to open this in a browser. One second. Here we go. So, what do we have? 70 out of 100. Good. Oh, wow. There's actually a lot of stuff here. Because I didn't like analyze the structure so detailed, I had no idea uh if all those points were actually useful or not. But let's take a look here. So, you understood the overall structure well, especially the have to grammar. Oh, so nice of it. Good attempt. You understood the overall structure. The main mistake was the vocabulary for it to pass. I knew I didn't know that. So here we have uh uh yoku yoku deki masha. So fairly um able to oh like able to could be it. Yeah. Uh boon no something something. I I don't have my thing uh my tool to turn this on right now. So I can't tell you what that word says there. Um so we have reasoning. Oh, you know what? This is basically the same thing here. I think uh they're doing here. Yeah, that's what they're doing. So they're explaining in uh both here in English and Japanese. Um so we will go down below here and take a look. So the model answer in order to pass the next next week's exam I have to study for one hour a day at the library. So uh oh this is the ideal answer. Okay. So what's interesting is that this is completely almost correct. The only thing I didn't do here is I I don't think I did Masen. Uh let's take a look at what I did. Uh Nanai. Yeah. And so I mean this is kind of nitpicking here, this one part here, because this one is plain and this one is more uh I guess polite if you will. Um but the key thing that I'm messing up here is this right here. So whatever this word is here, u I'm really surprised I did that well to be honest. And we have yeah gokaku Goku. So that was my only mistake. So down below let's take a look and see what kind of corrections we have and why it thinks that we need those corrections. Uh so here tadashi oh you have an explanation down here. So also the particle tadashi uh verb that's the word for verb. blah should have been used instead. Oh, go to pass. Yes s uh kiu to selfishly do. That's right. You know what? I knew that this is actually a fixed phrase to selfishly do. As soon as I put that knee there, I should have known better without permission. So I that's completely wrong, but I was thinking because of this it was the uh like to to fight, you know, k or whatever it is ka. Um also the particle is ni uh not wo for this um and for the verbs in order to it's tame not to no tame. Okay, fair enough. Like oh if it was like ending with this. Okay, that that makes sense. Again, folks, I know you don't care much about this, but I'm going through it to see its quality here. We're talking about a duration of time. You don't need to use well. You just provide the time. That makes sense. Okay. Uh perfect use of day. correct position correctly. Use the N4 uh this detailed rubric. So, vocabulary, grammar, grammar, vocabular particles and try to remember this next time. Wow, this is really really good. Now, I spent a lot of time last year trying to perfect uh this system and uh I think I was using open AI at that time and uh sadly enough, this is performing extremely well. So, I think that um I think that this might just replace my whole tool. Uh and this is just a simple experiment here. So, again, I'm saving all this stuff because I might want it later. Um but I think that was quite the fun uh test there and that was a good test for us. Um let me just go pull up my example code here and we will move on from that. So in here we have this. So please give me the Japanese in order to pass. Uh and I will go back here. I think I'm just missing my system prompt that I want to save for later. Or did I lose that? I lost it. Oh well, that's okay. But anyway, uh hopefully that was fun. And we have now checked out I think basically everything that I wanted to uh check in here. We don't even really need to fiddle with these. I think I think that those are pretty straightforward. I don't need access to other models. There is a contributor model that will give you a lower cost. I you probably access that programmatically and you probably have to ask for access I would imagine. Um but we will now move on to programmatic integration. Okay. Hey, this is Andrew. In this video, I want to show you how to programmatically work with uh Meta's API specifically for the Muse and models. Um, now we can use Muse Code and all these other editors, but I just want to work with the code directly. And so, the easiest way is just to start uh utilizing it via the API directly. So, we're going to go ahead and generate a new key. This key is going to get expired anyway, so I'm not really concerned about showing it to you here on my screen, but I'm going to go just say example. I'm going to go ahead and generate myself a new key. I'm going to copy that key and I'm going to go here, make a new folder. I don't know what I want to call this right now. It's just be called untitled and I'm going to make myself a newv file here. I'm going to paste it in and I'm going to just set this as meta API key. Okay, look, I don't need LMS to do this basic stuff. It is super simple. We're going to make our way over to chat and I believe that they might have code examples for us. Uh and so the meta meta API is compatible with um different uh different uh libraries. So you can use the anthropic one, you can use open AI uh and so they don't necessarily provide a direct one. I mean you can obviously just use the rest API directly which is one way. But I want to plug this into something that um uh we we've never used before. So we'll say open AAI uh metamuse. We'll just see if we can find a quick code example, right? to see if we can get that. So I'm just looking for that code example, but it might be as simple as resetting the open AI URL. So here we have an example of some code where we are doing that. So again, I'm not using anything special here. We could have used meta to ask them for that information, but right now it's okay. So we'll just say um uh agent.py. It's not really an agent per se, but if we're going to go ahead and just do this. So we'll go and grab this, paste this in here, and I will add my requirements.txt. txt requirements.txt and we will add open AAI here. I always kind of forget um uh how to make virtual environments. So I'm going to try to cheat with not cheat but I'm just going to try to not make it a virtual environment here as I never can remember off the top of my head. We'll say python um install r requirements.txt txt as that is the only requirement we need here. We'll open a terminal and I'm going to go ahead and see if that works into our untitled directory here and uh let's see what did we do wrong. So, we'll go up here for a second. Oh, I think I pasted my code in. I didn't actually paste in this line, which is fine. Sometimes that happens. And so maybe it's Python 3, which is fine. And that didn't work. So I'm going to just type in cond list Python, right? We have Python. Python hyphen hyphen version. We must have this. There's no way we don't have Python at all installed. Here we do. So we have Python 3. Oh, sorry. It's pip install. What am I What am I doing here today? We'll say pip 3 install. Maybe it's pip. Maybe it's pip 3 install. Depends on what you have set up. Okay. And we will go ahead and install that. So now we should have OpenAI installed. We have our ENV. Another thing I'm going to need is env. I believe that's all it's called here. Env. And we will do a pip install on that. And we just need to import that. So my guess here is import.env. Just going to look it up really quickly. Python env. Yeah, it's load env. That's what it is. And folks, we can use AI for this, but like it's so easy and I've done it so many times that I feel that I can just do it this old way and save myself a few credits. Okay. And yeah, that will load the file that is sitting in that directory. Uh, this is model API. So, we're calling this the meta API key. At the meta endpoint, assuming that is the correct endpoint, it says 1.2. You're helpful coding assistant, write a a quick hello world function. And so, this should be in theory the most basic thing that we can do. So, we'll just say basic API usage or we'll just say OpenAI uh SDK as an example of this here. Okay. So, uh, we'll go ahead and do Python 3, uh, agent, I think we said agent.py, and we'll see if that executes here. It'll work or it won't work. Could be an endpoint wrong. Again, that was, uh, Google's results producing it. We didn't look up the actual key here. And it also said the role is developer, which I'm not even sure if that's correct, but uh, we'll either get something back or we won't. And so, uh, I don't see anything here, but we didn't log anything out. Uh, and it did take some time. So, that's usually a good indicator. So, we're going to go ahead here, and I'm just go ahead and print out the response. Okay, because it probably did work or came back with an error, whichever. Uh, we didn't specify things like its effort or level or things like that. I think we'd have to look up the chat completions API. So, we do get a result back here, which is really nice. And so you can see here uh here's a quick one. Print hello world. You uh can also make it a string. So it's giving back an example. So there you go. It's as simple as that. Um let's go ahead and show off the anthropic one for fun. Anthropic SDK. And I'm just going to put in here. Uh I just wanted to ignore any files. I don't have this committed to a repo, but I'm just going to go ahead and make sure that that is committed like that. So that's a non-issue for me. I'm going to go ahead and just copy the contents here. We're going to go over into this one here and paste in the same contents. And instead of having this one, we're going to get the anthropic SDK because I'm told that you can use it, the low-level one, anthropic SDK, uh, Python over here. And so this one is going to be just anthropic. So I'll go over to here and we will replace OpenAI with anthropic. We'll go into our agent code and we will just port this over line by line as I do not mind taking my time to do things manually. Okay, so we have that and I think that it's going to use the same thing. Uh it's an API key. I think it's base URL as well. So we'll go ahead and try that out. and paste that in there. So, this one, it's not chat uh chat, but it's uh it looks like messages create here. And I'm not sure if we set the model here, but I'm going to try it. Yeah, I think so. Yep, same thing. And here it says message content. So, it says bring back a message. Um I mean, that's the one they're showing us. I'm not sure if there's a newer one here, but um that's okay. Okay, we'll just give it a go here. Now, the structure might be different. It says role user and so we're not say developer, you're a helpful coding assistant role. So, uh that that might be a little bit different. Um so go over here and say anthropic message schema as theirs is probably a little bit different. I don't think they call it developer. Yes. Can we see an example, please? Python as an example. So, all I'm doing is I'm just looking for an example. Create a message content ro user. And we're looking for the messages structure here. Assistant. Okay. So, we'll go over here and write me a quick thing here. So, I think the structure is more or less the same. Let's go ahead and see if that works. And so, we'll just go back. We'll say anthropic SDK. And we'll do a um what would you do for this? Uh Python 3, sorry, Python 3 or sorry, pip 3 install-r requirements.txt. So that's going to go ahead and install the anthropic libraries. Let's go ahead and see if this now works. Python 3 agent.py. Um expected max tokens messages models or max token messages models. Um where on what line? Line 14. So on line 14 it's expecting a model. We provided that messages. is we provided that and max tokens. So I'm not sure what max tokens we need, but we'll just do the usual 1024. That might be too little. I don't really have a good sense of token size ever, no matter how much I've worked with this. Says invalid API key unauthorized param authentication error. So this is where uh we are having a little bit of an issue. Let's go ahead and take a look here. TheMV is here. So that should be a non-issue. I'm going to ask the meta model. Oops. So, I'm going to go ahead and copy my code into playground here. Copy. Paste. And we'll just go here. Uh, and I'll just give it the information that it has here, the error. How do I fix my code? Okay, we'll hit I'll put it on high. We probably don't need extra high. Medium is probably fine, too. Bad habit just putting everything on extra high. And so, we'll give it a moment to think. All right, so let's come back with some code here. And um I think the structure that's different is the messages. I mean, it's saying system. I guess that makes sense. It would probably be actually system. Um I know that this meta API should be loading. So, I think that's a non-issue. Alternative use the open. Well, I mean, we already used the open AI. We don't want to do that because we hear that we can use the anthropic one. So, that is our goal. I'm going to go ahead and So, it should be an assistant with a trailing space is a valid role. Your partition prompt should be in messages as assistant. So, probably that messages structure was wrong and I wasn't paying close enough attention. That is kind of my guess. Um, but it doesn't really matter. If it just works, it's fine here. So, we'll go ahead and paste it in and yes. Yes. Okay. So, we'll go ahead and give this a try. And version one was not found. Okay. So, compact anthropic version one was not found. Okay. So, we're going to go back over to here. Go back here. We'll just say uh anthropic SDK with uh metamuse because I'm almost certain that you can utilize with it with the anthropic SDK allowing you to point. Okay, sure. But is only with the NodeJS one and not the Python one. It says the Python one here. Basure replace with the meta's actual model API base URL. Okay. Max messages ro user token. So it shows an example that it can can be utilized and they suggest that it isn't here in the anthropic code right and so it's saying that it can be done if we go up to here we have the messages API and it could be the endpoints a little bit different so here we have base URL this is what it's telling us to do right and so here's the example code and so here you can is a little bit different. So I think that is our problem. Okay. Um 1024 you like I just put that in there as if I know any better. Uh it's just again something hardcoded my memory. So that's probably the problem we're facing here. So we'll go ahead and paste it in there. So they had the code examples all along folks. We don't need to use AI for everything especially getting started. Um but it definitely is something that is fun and useful to use. And I'm going to use the example they have because I'm hoping that it just works. Okay. And we'll go ahead here and go up. Hit enter. And what do we have? I think it's working. And we get a nice print afterwards, too. Message is not defined. Oh, because I call it response. That's why. Fair enough. Okay. So, we'll try that one more time. Now we're not setting any of the options like uh reasoning and uh you know things like that. I'm not worried about that right now um as I'm sure we can solve that very easily. But here we are getting data back and our structure. So you can you can see you can use open AI or anthropic uh for whatever reason meta decided not to roll their own. They just want to integrate with other ones which is totally fine. That is just an approach that you can take. Um I mean personally I just like using the rest API directly. I don't even use low lower level SDKs um because it's so easy to use REST API directly and they have examples for that but you know if you already have one you want to drop it in place you can absolutely do that there. So I think that is pretty good for that case. Um I'm just curious if there's anything else here. I mean obviously we could use VL VLM but I think that covers basically the first level which is working with SDKs and libraries for the low-level ones. Um I think I would like to take a look at uh using any kind of um uh agent SDK because that's where I mean I again I've rolled my own but that's where it would be very useful to find out. So we'll do that in a separate video here. But there you go. We have the anthropic SDK and we have the open AI SDK. Hey folks, in this video I want to take a look at utilizing the agent SDK framework. That's something that's going to get you up to speed quicker uh building out agents. Um I personally roll my own because I I believe investing my into building my own baseline agents, but you know if you are familiar with things like agent SDKs from Anthropic or OpenAI, then you can apparently utilize them directly. Uh, so we could try that. I think Langchain would be a good example. I'm sure Langchain will work because it works basically with everything. Uh, but let's first just do Anthropics SDK. Uh, open eyes is okay. I just don't care for it. So, we'll go ahead. We'll just say anthropic agent SDK. And we'll go ahead here and make ourselves a new requirements.txt. I'm going to bring in from our anthropic one. Uh, well, I'll bring over the meta key, of course, and we will paste that in here. And then I will go into our requirements.txt txt and copy that over as well. Um, the import's going to be different. It's probably be anthropic SDK. I'm just guessing here. That's probably what it is. And we will just cd into the correct directory here. So, we'll say agent SDK. I'll bump up the font as well as I know it can be a little bit hard on people's eyes. And we'll do a pip 3 install rquirements.txt. Now, I do believe that they have an example for us. And um I I'm not sure why it's saying that. So we'll try that one more time. pip 3 install r requirements.txt. Oops. Okay, sure. I mean, I don't care as long as it's there. I might have already installed the agent SDK before on this machine. Uh but normally I would expect that to show up. So we'll go over to Python. It says claw agent SDK. So let's go take a look here. Maybe the name's a little bit different. Yeah, it's Cloud Agent SDK and it hasn't changed since then, right? As they like to sometimes change names. What I really dislike, and this is a a GitHub complaint, every time I'm trying to drag down my bar here. I always get this darn button that I just want out of here. So, we'll go ahead and we'll fix that there. And so, that's Cloud Agent SDK. Now, Cloud Agent SDK can help you to I again, I don't know why this is doing this. Just give me a second to fix this problem. Okay, chat GBT says it's not a a problem here. So, I'll ignore that. But, um any I was saying something I don't remember what it was. We'll go ahead and we will create our PI file. And now we're actually creating agent. I'll just zoom out so I can have a way of dragging this bar up and down. And Meta seems to have an example for us. So, we will go in here and take a look. Um so, I do believe that they have a starting point for us. And I mean, this looks pretty good. So, we'll go ahead and copy it. Okay, we're just really validating making sure these things actually work, right? Because sometimes you do use these things and they don't tend to work out. But so far, everything's been on on point, on key here. And uh I'll just go ahead and grab this top here. And we'll go to the top here. Paste that in. And I'll just take out anthropic as we're not using that right now. And OS is already defined here. Put that at the top like that. And put that at the top like that. There we go. Okay. And so we have an example. Add input validation to sign up handler for run tests. And we'll just switch this over to 1.2. Current working directory is actually the directory we're in right now. Um so I would probably want it to be here. I'm going to go ahead and just make a new folder here as an example. So we'll just say um well we'll make a folder in here. So, just say code codebase and uh I'm going to go ahead and CD into No, I don't need to CD into there, but I'm going to go ahead and get the full address here. So, just say pwd on my machine. And I'm going to go ahead and grab this. And above, I'm just going to say uh path, right? Like this. And this will be codebase. and they'll just this is changing the current working directory. your coding agent make minimal well- tested changes readedit whatever bypass permissions um that means that it just it won't ask you for permissions which you know I understand if you're trying to get things done so that's totally fine um though you have to be a bit careful with that so down below we're mapping them to different providers so obviously all we have is muse spark so we'll go ahead and do that it is not model key we call it um meta meta API key which is fine we're getting readedit whatever your your coding agent. Well, minimal tested changes. Add input validation to the signup handler and run the test. So, um we don't have a signup handler here. So, I'm going to have to go ahead and just make some code. So, I'm going to go here and uh make a new file. And you know, I like my Ruby. So, I'm going to go ahead and say game.ruby. And uh we'll define a very simple game. um create tick tac toe uh for the uh command line. And I'm going to go over to here back over to our agent. And I'm just going to put my prompt up here just so it's a little bit easier for me to work with. Please code a very simple tic-tactoe game in the game.rb file uh using Ruby for the command line. Okay, so we'll go ahead and do that. And it seems like this should be fine. So we'll go ahead and see if that works. But anyway, there's agent SDKs that are like coding agents like what we're using right now. And then there's agent SDKs for like building actual agents. Um, so we might need to do a test with lang chain for fun, but uh I'm going to go ahead and see if this works. We'll go ahead and give that a run. And yeah, we'll go ahead and just do Python 3 agent.py and we'll chill out here and see if it comes back and actually codes that game. All right, so let's take a look here. Uh it didn't take very long and uh I want to see if the code is actually here. So we do have a code output and so you can see it's very simple to work with existing agent SDKs. I don't feel that we really used an agent SDK as in to make an agent uh as this is obviously a coding agent. You can use the framework for for that but I wouldn't recommend it as this is a specialized SDK. Um so we will go and make another one and maybe use lang chain. Okay. Okay. So, u what I want to do in this video is take a look at using uh the meta API to uh use a framework like Lang Chain. So, let's go ahead and look up Lang Chain. It's been a while since I've used it. I generally don't like using it to be honest. It's probably gotten a lot better since last time, but I just want something that we can plug this into. Right off the bat, it's trying to make me sign up for something. I don't want to do that. So, we'll go over here and type in Langchain agents and see if we can get to those uh docs with with less trouble here. Um, and see if we can get installed very very quickly. I want to use Python if I'm going to keep using something. Uh, do we have to use TypeScript? I don't care. We can use it, but it would have been nice if we could use Python. I don't see the option. So, I guess we're using TypeScript here today, folks. That's okay. Personally, I prefer Ruby, but that is whatever. So, we'll just say uh we'll just say lang chain uh lang chain SDK and we will go over to here and make ourselves a new file. This is a little bit different because we're using TypeScript. So, what I'm going to do is go ahead and copy this line and I'm going to go back for a second and we're going to go ahead and put that line in there. And so, that should create a package.json JSON here in this directory. While we're here, I'm just going to add a dot getit ignore as I'm going to want to ignore the node modules. I'm not committing this to a repo, at least not yet. I can later. Um, but right now, I'm not doing that. So, we're going to go ahead and ignore the node modules directory in this directory here. Um, and so now we can kind of get set up. This should be straightforward. Lang provides integrations to hundreds of LMS. So the question is like okay can you do that but can you do it for meta? I mean like it's open AAI compatible so we probably can do it through there. I'm just curious if they have a first class one here. So that's what we're going to look for here is the meta one and I'm searching. I don't see an option for it. All providers are over here. Um so I'm looking for meta meta meta meta meta meta. And we'll just type it here. meta have got metadata and so that's fine. We'll just have to use the OpenAI integration I believe in order for us to do that. So we'll go over to here and we'll look at the OpenAI integration. And it does say that uh Huh. So this is where I'm not totally sure. So I mean we could guess, but I'm just going to go ahead and see if Meta can help us out here. So I'm going to go say, you know, I want to use lang chain with um metamuse model uh for TypeScript. Can you give me a uh skeleton start uh skeleton file to get started for configuration? Okay. And so what I'm expecting to do is to pick up OpenAI and show that as the installation method. I might also have to ask it for the um the notes here uh like the what to install as in the packages. But we'll give it a second here and see what it produces for code. So we have output here and I'm going to go all the way to the top and yeah that's what it's doing. It's bringing in um OpenAI which is what I expected. Uh and we are using MV so that's good. So we'll go ahead and while I'm doing this I'm going to save the instructions as you never know when you want these instructions later. Now, we could again be using the um uh like Muse code, but I just I don't feel like doing that right now at this stage. And so, we're going to need av here, which says Muse API key, Muse Mo um Muse model. Okay, sure. Fine. Fine. That sounds fine to me. And we do have here that key. So, we go ahead and paste that in. Uh the model we're going to use is muse spark 1.2 muse base URL. Okay. So we'll go ahead and we have all those three in there. Now we can go ahead and create ourselves uh our initial file. I'm going to go ahead and just call this app.ts. They're like call it muse. I'm not calling it muse. I'm calling it app or bane. you know, that's what we normally call these things. We'll go ahead and paste that in. And we have a bunch of stuff. I haven't uh uh set any of the installation yet. So, that might be a little bit what we have to do there. So, we'll go all the way to our readme here, grab these three lines, and get initialize. Though, I think it would initially create that file. Maybe it wouldn't. Usually creates a main, right? And so it looks like we are good. And we have a TS config now. Type scripts in here. So that is good. Uh but we'll go back over to here. Oh, so we have an index and the muse. Okay. So that's what it's they're doing. All right. Well, we will just do what they want to do. It's not that big of a deal. We'll follow along with what they want. And I'm going to go ahead here and make an index. index ts. Yes, index ts. Interesting. They're like include the js file, but I guess it gets compiled out. So that's probably why. And so here it's trying to import those there. Package. JSON. Yeah, that's what we're going to need to get it started. So in here, we will grab in this top part. So that should get started. And then we just need to do npm rundev and see if that works. Now it's having some resolution issues because it cannot find the lang chain SDK. Import from cannot find module. Oh, we're not in the source directory, right? So we'll go ahead here and just make a source folder. And we'll drag these into their appropriate location. That was probably the problem. And now it's having an issue with the import. So does not have an export name of chain example. I think it's because it has to compile the code, right? So if we go back over to our package JSON file here, we did mpm rum dev, but that doesn't compile the code. But it it does do tsx, right? So okay, you know, why do you import a JS file if we are using TypeScript? And so this might be just a failing on that output here. Give it a second. All right. So let's take a look here and see what it says. Um, good catch. It's confusing, but it's intentional for the ESM. If you use ESM, you must use the GS file, which is fine. This is correct. So it depends on what's configured there. I mean, I'm following the instructions they had. And so, if we go here, I'm not seeing I see ES next. Uh, it said is node next as opposed to that. This is the default. If you did, then just remove the extension. Uhhuh. Well, that's not what it actually did. Then do this. Okay. So, what we'll do is I'm going to go ahead and just change that out. as that might give me less problems to be honest. And we'll go back over to our source here. And I would prefer to do this and then we'll just do muse model on this. This example is a little bit more complex than I would have wanted to be honest. Um, we just needed simple chat. We didn't need the chain example. But if we go back over to our muse.ts. Oh, let's just save that. Maybe I never saved the file. That could have been the problem the entire time. And so what I'm going to do is just undo this for a second because I'm wondering if I just didn't save that file and that was my actual problem here. missing credentials. Please pass the API key uh and other stuff. So now it's saying there's no key. Um and so we do have a key here, but maybe the key is supposed to be something else. Now what's interesting is that we could have used our um I don't know why we don't. In fact, I think I might do that is that in our previous one, we actually have the anthropic uh agent SDK which would allow us to uh uh fix it. So, I think actually I'm going to go ahead and do that right now and just change the repo. So, I'm going to go ahead here and just switch this out to this. And I'm going to just say in here instead the we say lang chain SDK and in here I can just fix the prompt. I am trying to get my uh example of lang chain uh working with meta muse API. I have the uh I have av with the um meta API key. I think that's what we called it. in this one here. And we have too much stuff open. So now I can't see where I am. So just close a few here. Oh my goodness, there's so many. Let's just close all these. I can't even see what I'm doing here. There we go. Okay, so um we'll go back over to our agent. So, I'm trying to get my example of Lchain working with Metamuse AI and I have it with the meta API key, which I do believe that I do. Um, but I'm getting I'm getting this error. Okay. And so I need a way to do block uh quote blocks. So, let me see. Python uh block uh block uh strings here. I'm just doing this off screen here really quickly. It's triples. It's triples three like this. And then I can go all the way down here and do this. Um I was using back ticks. It's just uh three triple equals. There we go. Okay. So we go all the way back to the top here. There we go. And so now we have that prompt and we've changed its location. And so I'm going to go back a step here and then we'll go into our enthropic agent SDK. And I'm just going to ask it to fix that for me. Uh so we will do Python 3 agent agent.py. That's going to go ahead and try to fix that other code there as uh it's a bit of a headache. So we'll give it a second. So after quite the uh little wait there, it seemed because it would have been doing iterative, it apparently has fixed it. So I think what it did was it not only um uh fixed it and made sure that it worked. It's kind of cool to to watch it uh do that, but this would be no different than using um uh what do you call it? Clawed code with it. Um and so if we go back over to here, I think it just solved all my problems, whatever they were. Uh so yeah, that's good. Like I don't know exactly what it did, but it Oh, I know it told us up here. Okay, so uh credentials error your original message muse API is missing. So it needs to accept either this so we have the wrong base URL and it fixed that. So even though we originally used right we originally used beta uh but within this uh coding harness agent SDK it just it had more time to loop around and fix its problems. Uh so that's good to hear. Let's go over and actually look at the code now. Um, and I would like to run it manually myself first. So, we will go into lang chain SDK and it's going to be npm rundeendev I believe and we'll have a little simple chat here. We'll watch the results first and then we will go look at the code. How can I help you today? Okay, that's fine. So, now we have chin example. I don't know what it did as the chain example, but maybe it just asked the next question. This one's supposed to be streaming. It doesn't look like it's streaming, though. And uh the agent wouldn't know that it's not streaming. It would be very hard for it to detect the streaming information. So, I would imagine that this entire time it's supposed to be streaming. Okay. And so, it didn't it didn't actually stream the last example. But, uh that's fine. We'll go over to here. Uh I I don't care about trying to fix the streaming. I'm just more interested to see how this code works. And so I don't really need three examples. One is good enough for me. And we'll go over to Muse here. And let's just take a look at the implementation. So we have uh chat open AI. We set the Spark model here. Here it's defaulting to Muse API key, Met API key or open AI key, which is fine. And then we have the uh the fallback over here 1024. As per usual we are going to invoke our model add our system message our human message. And so that is our simple chat. Okay. Our chain doesn't look like a whole lot uh whole lot of a difference. It just looks like we are creating a template for messages. Okay, which is totally fine. And then down below we have our streaming example which didn't actually stream but I'm sure we could fix that if we wanted to. So there we go. So um we are able to get meta working with different coding harnesses and an agent SDK. I'm sure we could utilize anything else as long as it's open AI compatible. You basically can slot Muse in there. But uh now that we finished this we'll move on to something else. Okay. All right. So, I think it's time for us to go ahead and use this with an actual coding agent. Now, I do want to uh show you how to use um uh their own coding agent, but I think because there's multiples, I would rather start with a another one first and then we'll move over to uh uh Muse Code. So, there is Open Code, Cloud Code, Codeex, stuff like that. We'll go over first to Cloud Code. And so, I already have Cloud Code installed on my machine. Uh and it's not hard to install, but the idea is that we need our API key. we're going to have to export it or set it somewhere. Um, and so it looks like we need to configure all of this information. So, what I'm going to do, I'm just looking at this for a second because we do have these set, but these are the default keys, and this could be kind of annoying for me if I um have to load them in there. So, what I think I'm going to do is make a new start file here. here. So, I'm going to go over to here and I'm going to make a new file or new folder. And this will be uh claude code launch. And uh where is this? And so we will make a new script or actually I might just go make this top level here. So I'll make a new file called or new folder called bin. And we'll just say cloud code. Okay. And the idea here is that we have this stuff here. And so what I want to do, and I'm probably just going to use my regular Cloud Code account because I just want this to to work here in two seconds. And I'm just going to go ahead and just type in Claude here real quick. I'll just say, you know, I have a I have a claude code uh file. This is supposed to be a bin file, and it I want it to uh load the envir load. I'll just hardcode this. No, I'm gonna actually just copy this over. Paste. So, I have a cloud code file. This is supposed to this is supposed to launch cloud co cloud code configured for meta uh meta muse model. Um I have in my meta API key. So, I want you to write a bash script that will extract that will um inject the meta API key into the correct place. And um we load these envirs and we start up cloud code. The only thing is that if I do this, I'm not going to be able to point it at other directories. But um I think that we could probably fix this by, you know, I want you to sim link the script into a global path pathway. So I can do uh muse claude claude code museclaude to start uh start up with the config. Okay. So we'll go ahead and uh have that do that there. And so I'm just running this on opus 5 right now is you know I don't I again we could install meta and I'm sure it can do this but I'm just trying to get this to work really quickly. So and I'll just come back here when the script is ready. All right. So looks like we have a wrapper. So it resolves through its own sim link. Uh so it works from there. Uh so the question is like will it contextually work anywhere? So um I guess we could just check the the tech tech.nuke. So I'm just going to cancel out of this for a second. We'll go back up a directory and we will go into tech.nuke and I'm going to type in museclaude and we'll see if it loads the model. So it's saying yes, it wants this location. Excellent. We'll accept that. And we're now seeing it's using Muse Spark 1.2. Cool. Um, I'm kind of curious on the code. I guess it doesn't really matter because it does work, but I'm just curious what the code looks like. Uh, says Claude code. That was the original one. Muse code. And so it actually named it what it should be, which is fine. We'll delete this one. And it works. I don't know. It does something. Okay. So, we'll go here. And I'm using Muse now specifically Claude Code. And I'm just trying to think here what I would like to do to this file. Can you refactor refactor this file into several files? Um uh so uh I'll just say like you know can we refactor out uh the CSS and JavaScript into a assets JS and assets CSS and can we add a a bin uh serve script that will start up HTTP uh server which should be already installed via node global. Um, okay. And so we'll just ask it to do that. Very simple task. I'm not sure what level we're using. I guess it's on high effort. And so that would probably mask because you're masking to those specific models underneath. Um, so it would probably mask to that. So we have bash uh denied by auto mode. Again, I'm not sure. I've never seen that before. So that's a new one. It says classifier unavailable. So again, we're not using the direct model. So there could be some differences here. Um, but it is working. So we'll give it a moment here and see how it turns out. All right. So it looks like we're back with some code here. It has moved things into assets. So we have CSS and JavaScript. Um, was there any JavaScript? There apparently is some JavaScript. We'll go back over to our index html. And so we do have some stuff going on here. I mean, it's just our our usual code here. Um, which is fine. I'm just checking how clean the uh the markup is. I don't like the fact that there's uh inline styling. So um I am seeing inline styling uh in the HTML. There should be none. It should be using selectors. Okay. So I mean there could be a case where there's like a little bit variations here. Yeah. Yeah. like the width and stuff. I'll leave it alone for now. But anyway, my point is is that we have loaded um uh cloud code. And so we have the process there. And you know, if we want to load other ones like codecs, we're going to have something similar. So we're going to be using a config.toml. Okay, fine. Um if it's open code, it looks like you just install it and use it. I'm don't really care for open code too much, so that's not really my preference. Um, and so I think now that we are we've at least touched this cloud, anything else besides the Muse code, we can go ahead and start you working with Musecode. Okay. Hey folks, we are back and in this video I want us to start using Musecode. So we'll go ahead and install it as it's a single line install. Um, and I don't think it matters where we run this, but we'll go ahead and do that. And so it is downloading now. This is a very minimal um not in a bad way but like it's minimal in the sense that uh there's not so much configuration nonsense or constant features being pushed out like cloud code is. Um so that is very good that at that regard. I'm just trying to point that out that your experience is going to be a little bit different. Um we'll go ahead and just trust and continue here. And it looks like I might already be authenticated. If you're not, it's very easy to fix. Uh I can see right off the bat it's trying to load uh bubble wrap which is a way of sandboxing your environment has voice input. I have never used voice input and I don't have the means to do that on this computer so I'm not going to be able to show that off to you. Um but you know there is basically all the usual suspects in here. And so we will systematically go through some of these features here. Uh but I just want to show you that it does work. Notice we have bunch of skills in here that it's loaded from all over the place, which I think is kind of cool because um uh one issue that I have is that if you use something like uh OpenAI or Claude, uh you don't get those skill those skills uh across the board. And so for whatever reason, Musecode will bring them all in, which is what I like. Um but anyway, so we'll go over to here and I just will do a demonstration of it doing something here. And so, uh, I'm going to ask it to build out the other pages. So, um, can you please build out, uh, the, uh, a few more key pages in our technique example? Check the navigation, uh, for that. Okay. And so, we'll go ahead and hit enter, and we'll be back in a moment when it is completed. Um, and so, if there's any permissions, we'll just accept them, but should be pretty easy to work through. And just to show you, it did break up the tasks and it understands what it's supposed to be doing. So, it's off to the races, doing a good job here. Okay, I just wanted to show those uh that task breakdown. And here it is asking me to uh run particular commands. I would just say the only thing that I would watch out for for abuse code as it is, at least at the time of this creation, it is a newer um uh coding harness and so sometimes it likes to delete files and recreate them and maybe you have things you don't want to be destroyed. And so, um, I would carefully watch that. Or you can update your agents, your agents file to just tell it to never, you know, just move things. But for the most part, I think they might have corrected those things as that was in version 1.0 and now we're on version 2.3. So, um, I think I I mentioned it to somebody and uh, they it might have been passed forward there. But here, you're just it's constantly asking to run these commands. I guess it's just inspecting those pages manually. Um, so it's outputed them and they're just making sure that they actually work through. I don't know why it doesn't just look at the code here, but that's totally fine. As you can see that it's curling it and then looking at the results. It has the files, right? But it's treating it because it has a web server. Right? Now, if this was um uh, you know, server side compiled or something, I can understand that, but it doesn't necessarily need to do that. But also, there's nothing wrong with it working that way. So, I have no concern about that. We'll go over to our ports. It seems like it's running on 8788 as it's running this uh Python script here. Um I never told it to do that uh because we have a bin script, but I mean like it's fine. It's just using what tools it has to test. But I think I would have preferred it uh to just utilize what we have here. But I do again I have Python installed so it's a non-issue. So we'll go over to here and we'll take a look. And so we have this expanded. What did it code? It probably will tell us here in summary. So, we have the feed, the docs, the submit, the topics, the top 10, and then it add the navigations. Love the look of this. I'm sorry, but I just love I love uh PHP Nuke. Um because it's it like I'm it's trash, but it's not trash for me, right? So, we'll go ahead and and give the feed here. And so, we have our community page and our docs and our submit post and our topics. I love this. This is just so much fun for me. And uh let's take a little look at the mobile. I never did that earlier, so I'm kind of curious. Oh, it's perfect. It's perfect. Okay. But obviously like a lot of these things are not linked up. So, uh we'd have to do more more work with it. Um I kind of feel because I have all those credits, I kind of feel I want to make this for real. But um what we'll do for now is we'll let this sleep and uh we'll start looking at some capabilities of what we can do. Now I've covered this stuff a lot of times in the past but we should give the treatment here and make sure we go through all the features or is most of the features that we should care about when using Muse code. Um but yeah that's the start of this. Okay. All right folks in this video I want to show you uh the agents.md file. Also, agents.mmd is just like your claw.md or uh you know gemini.md. Um and so meta has chosen to go with the generic agents.mmd and we can create it manually but I figured since um we already have kind of a project set up here. I'm going to go ahead and do uh muse init. And what that will do is analyze this repo and we'll create us an agent.mmd. And wow, was that fast. So, Musecode reads this file as a project rules and common commands. No standard build or tests detected yet and it has the layout. So, I don't know why that was so darn fast. I know that for larger ones it's it's taking a bit more time. Um, but that is totally fine. So, let's go in here and see what we could do for our uh agents.mmd. Um, so it gives it some basic information. So, the question is like what are we going to benefit from adding to our agents.md? Um, I think it doesn't understand some of our goals or our our information there. Um, so that would probably be something that I would want it to know is the the context of this project. Um, and so we'll go back over to here and uh, so we don't need that because we know that's what it does. We don't need this. So it didn't really do it didn't really do a whole lot for us. Okay. Um, so what we'll do is we'll just go I guess go ahead and write whatever we want in here. So we'll just give it um business use case. So um TechDoc Nuke is a tech community uh that is inspired by the experience of um Nuke PHP forms found in in the uh 2000s. Okay. So the idea is that we right so lots of uh plugins and uh different points of interaction with a busy uh three-page layout. However, it's a modern website, so it works in mobile and will bring forward other uh modernities. Uh, is that a word for like I'm think I'm making up words here, but is that a word for like modern stuff? Modernities. Or am I just making things up? Oh, no. Oh, it is a word. Wow, look at me. I'm fancy. So, um, we have that there. Um, and I'm just going to go here and just say like, uh, target audience, tech professionals, uh, that work. So we have like DevOps, security, uh AI, um cloud computing, data, things like that, broad broad categories, uh you know, stuff like this. Okay. So, and I think that is a good start there. Um, so now it has context every time it starts up. It knows what it's trying to work in. One thing that I would like is that if it can load um conditionally other files is that's a very common thing that we would like to do when we're working with uh this. So let me see if it has that capabilities. And it doesn't seem like it can do that. Okay. So, um I the only thing I'm thinking is like there could be things like you you might specify um you know like the style that we want to adhere maybe some like guidelines that I I would provide here. So stack guidelines, stack guidelines or technical goals, right? We want uh the uh we want to we want the stack to be the lowest cost possible operating on a single uh VM. Okay. So, and so that's something that we probably would want to explore separately here, but I we can come back and expand that later, but that's our agent. MD. And if we were to uh you know do something with this, I'm just trying to think of something that I would like to do uh that we have not done here. Go here and take a look at our site here. Um at this stage, yeah, I'm not sure. I don't think I want to um do anything right now. So again, just showing you the agents.mmd and that's what it's called. Um but I really can't think of anything that I I want to add here. So we will stop it here. Okay. All right. Let's take a look at where we can set our configuration for uh Muse. So Muse allows us to have a docig file in our home directory. So we'll go ahead here and I'm going to cd into my home directory here. And I'm going to make a new one called config if it doesn't already exist. Whoops. That is not a proper file name here. I'll just remove that one as that makes no sense. But I'm going to it looks I already have one which is fine. So we'll go in here and it looks like we have muse already which is great. And so in here we have our settings.json. We can cat out our o as I'm going to get rid of that access token anyway. So it's not a big deal. Actually this is a different access token so I will have to remove both of them. But you can see that we have our credential information here. That's where it's being stored. And if we uh cat out our settings page here, we can see some of our settings for uh that uh and we can cat out our um trust file here. Trust. And so we can see what folders are trusted. So I'm going to go ahead here and just for fun, we're going to update the settings.json file here as we should be able to set something here. Let's see if there are any options that we can configure. And what I'm looking for here is a simple simple settings. Let me find one. Okay. So, here it's suggesting um Google suggesting some settings. I couldn't find where their settings were. And I mean, there's nothing for me to do, but I guess we could just set these here for now. Okay. And so now it's set to extra high reasoning. If we go to this one, it is set to something. I don't know. We'll go ahead and restart this. And from this, you know, I think they should have probably put on what level of reasoning is at at uh whatever it was. So um we'll just take a look at the effort. Oh, there we go. Now it's telling us it's extra high. Okay. And so we'll just stop this again. Start it again. Oh, I think it's it would normally show. It's just because bubble wrap is not showing installed here, which we'll do in a separate step. So, yeah, you notice as soon as we started typing it, now we can see what's loaded and what's in here. So, we're on extra high. Uh, and so we'll just make sure that this actually works. So, maybe we always want to come in as medium. Okay, we'll just stop this. Start it again. And I'll just type that. And so, now we are on medium. And there you go. All right, let's just take a look at how we can set our reasoning effort. We actually just saw in the last video as we used it as a demonstration, but I just want to show that if you want to override this medium here, we can go ahead and type in muse and we'll say reasoning effort and I'll go x high here. And so now uh I'll just type forward slash. We can see that it started with extra high. If I was to start it normally, you can see I'm hitting forward slash here that it's now at medium. And of course, we already did this, but we can go here and say low. And so now we have low. Uh, what's interesting is that it just changed that default there. Oh, does it actually change it each time? Effort X high. Oh, look at that. That's interesting. You'd think that like if you set it that that wouldn't overwrite it. Um, and that this would only be per session, but I guess that's the choice that they made there and that's just how it is. Um, so there you go. All right. So, we just ran the resume command. I'll just show that again so we can get back to the same spot. So, we'll type in claude. Oh, I'm typing in claude. We'll type in muse. I'm sorry about that. And we will go ahead and type in resume and we'll go with last so that we don't have to click in again here. But what I want to see is that we can compact the history here which will uh save our our size here. Sometimes they they give us an option to see how large our current context is. I'm trying to see if that command is there. Show a recap of the current session. Actually, I kind of wouldn't mind doing that first. Let's do a recap. And let's say we just forgot what was going on here. And so we it's really long. We don't remember. Delivering the technique site with five key pages wired to navigation. So that was nice. Um, but what I'm looking for in here is a way to see if we can see how much like how size how large our context is. And so I'm going here and it probably is status. There we go. And so we have extra high uh what we're set to our usage tokens, our context which is 93% right now, how many turns we've had so far. And so that is great. So let's go ahead and compact that so that um we're going to get fewer information. No compact compatible compactable run is available. Uh well I mean if we go back and resume right can we compact that? Nothing to summarize. Okay. So I guess it's not there's not enough going on there for anything to compact. So let me give it a large job for it to do. um so that we have something to compact. Okay. So, what I'm going to do is I'm going to go ahead here and make a new doc. And um I just want to get the base functionality implemented here. And so I'm going to go ahead here and just say skeleton uh backend app. And so I want the most cost effective solution. I think it's going to probably be a golang application. So skeleton backend. I like doing this when I'm making plans. So just say name skeleton backend and this will be uh description um and we'll say to create the initial uh to create the initial MVP uh background uh MVP backend application that will run our uh tech form. Okay. And so I'm going to go over to here and uh specify so scope or business use case. We are building a uh social plat social community platform driven around uh around forms around forums like PHP Nuke. Uh so we are building similar to PHP Nuke. Um we want this we want the implementation to be very coste effective. Um and so we should choose a a stack that is known for being uh extremely optimal. Okay. And so maybe we don't have to be so descriptive here, but like uh tech choices uh tech stack golang um API only. Okay. Uh runs on a single VM delivered uh delivering a single um delivering a single binary. Actually, that's not even sure how that would work because what would you use for that? I don't even know. I'm going to go over to here to the meta API really quickly. So, we'll say metad API. I think I actually already have it open as a tab right here. Okay. So, you know, I want to use Golang to build my uh my form, but I need to choose a uh I need but I would think we need a web server that will load balance multiple instances like Ruby Puma. What are we using for Go? because I don't actually don't know for that. And a few other things here that I would like is I would like to have runs on a single VM delivering delivering a single uh it should um in place deployments. So like SSH will SSH in. Similar to Capistrano, Capistrano was very popular because it had very fast deploy. So very fast deploys uh zero downtime, very fast roll backs, right? Uh database lives on on the same server. I don't know if SQLite would be a bad choice. because it's not super performant, but I mean like it's probably fine. So, let's go up to here for a second. And so, and Go doesn't need it. Go routines are extremely lightweight. Uh, so they're packaged already. Each request is a Go routine and gets to your own code compiled by a single static site. So, in Go, you just do guil go build your web server. It uses all CPU cores by default. You only run multiple instances for high availability or horizontal scaling, not to handle concurrency on uh one machine like Ruby. Oh, that's good. Um, and so you run multiple copies of your binary. Do we even need that? We probably just need one, right? What is the what is the use of the form itself? You don't need a framework like that. A router is enough uh for a form. Uhuh. So, there's that. We might want to make a choice in terms of what we might want to use. I I know I know Jyn, but I don't know echo. And like I said, I mean like I know the name of it. So, we'll go here and say echo golang. Yeah, let's use echo for fun. It says it's minimal. And so we'll go back over to here and we'll say uh echo. If it's going to be a small community, uh let's say like really how much can you really have active? Let's say like 10,000. Even even if it was like let's say 10k active at max. Can we do that with Esco Light because I'm not sure what the limits like I I know Postgress can do it but I'm not sure what SQLite can do. So I'm just trying to push the limits of a smaller production site. But I think what I will do is I'll just use escolite for now. So database lives on the same server. So, SQLite Escolite 3 um authentication lives on the server. So, it says yes 10k is the perfect size. It seems to think it for form you don't even need postgress at the start and personally I that's what I prefer is just to have it. So, how handles concurrency default SQL light is bad for web but wall mode fixes it. Under wall mode, you should be able to default any production deployment concurrent uh never blocks. Okay. So, yeah, that's true. This what you must do for go delete default journal mode will give you the database is locked instance instantly. So, and so I'm going to go here and just say like make sure we need to ensure we can handle 10k users uh not not active at all all at the same time. So like eg, you know, journal mode equals wall, things like that. And obviously it said that up there, so I feel like it could figure that out. Um, so we have that database lives on the same I'm doing this all just to show you compact by the way folks. So um Golang API only in place deployment D this is the same server authentication lib server. So the the only thing like I care about is I want raw SQL raw SQL um saved in a SQL directory using a template language uh so I can easily uh read read queries use some kind of active record. Yeah, use some kind of uh active record like structure but uh but only for uh saving and uh and very basic queries find by like find by ID not for uh any complex queries use SQL instead. and skip the OM. Okay. Um, what other options do I want? And so now we're just talking about like feature set MVP feature set. Um, create an account with uh display name avatar upload, email, password. Okay. And then um maybe like description or profile description. Um, we'll just say disk here and you know like forms, threads, posts, comments, right? Pretty common stuff. So like I should be able to go let's take a look at the actual application as I've already forgotten what it does here. We'll go over to here. So the most basic thing is probably we have post type, topic type, title, tags, repo if there is a repo, body markup which has markdown supported, toggle preview, topics. So I guess there's no like there's no forms per se. I mean generally you would have um forms within topics but here if we just have topics and then posts. So that I think is one issue that we have in our design that is an issue here. Okay. And so what I want to do here is is just think about this for a second because this isn't fully um realized. I mean should you have forms here? H every stack tribe has its own feed vault and chat. Says feed vault and chat. pick your poison or run random stack roulette. And so I mean there's some kind of interesting things here, but like um you know we'll probably have to reverse engineer some of these features here. And so I'm going to go ahead and save that front end back uh you know and so here we have a problem which is like open questions open questions uh we have a design uh a front-end design but we haven't uh extracted out the um uh minimal structure for creating posts. Uh, and we don't have a design for those pages. So, maybe that's what we should do. First, I'm going to go here and just say like um in our design uh can we mockup for our page, for our website. the uh clicking into a topic and seeing posts and clicking into a post and seeing what a post looks like because if we if we can't see that it's going to be hard to map this backwards and so we'll give that a moment. Okay. All right. So, we should have a little bit more design here. We'll go ahead and give it a nice refresh. And I just want to see if I can click into any of these as I would suspect Okay. Are we clicking to one? Like I think they all go to the same place. They probably should, right? Oh, no. They made them all. That's a problem. I mean, it's not really a problem, but like if if we're worried about consumption in terms of our our credits, then I guess so. Like again, I have a lot of credits here, so I'm less concerned. But I guess I'll take a look at my usage here uh really quick and just see what I have. One second. No, says I still have quite a bit. So, there's a non-issue here. But anyway, um it went a little bit overboard, but I mean like it's nice to see that. Wow. It really it really didn't have to do all that. Look at that. Wow. Okay. Uh-huh. Can you believe it? It like hooked up everything. Did it hook up this as well? Are you serious? Okay. Well, anyway, I mean, it's cool that it works. The only thing it didn't do is pageionation, which is fine. But, you know, my question is like from a design standpoint, is this how it actually want to work as there's no form level stuff? Um, so I'm like imagining I'm in here and it's like you want to go take a look at Rust. The only problem is that um like yeah, topics are interesting, but there's no top level feed. Oh, I guess it just be the feed here, right? And this would be across all the categories. Okay, sure. I guess that's fine. Um, I mean, I kind of like traditional forums where you have some strange groups, but I guess the thing is that if you have topics there, you could put anything you want in a topic, right? So, there's necessarily no reason to group things together unless you're thinking, well, okay, I want to group all cloud things under under stuff. And so I would say the only that's missing within our category. So you know we we have topics but we don't have forms. So you know you might have cloud as a as a form and under it you would have uh well you would know would you do that because like if you had programming uh you know we have Rust and Go and other very specific languages but like do we even like in this time and day and age do we even need to have specialized language groups? Does anyone actually really care about that or is that more a uh a flag within something? Right? Because you do have tags, right? And so that would make more sense like instead of rust and go, you have programming as a as a tag. And so there is a bit of a challenge here to think about the level of of granular detail. Um, but we definitely want we definitely want to have topics and topics should have their own uh tags within them, right? And so, yeah, there's nothing in that one. We'll go back to this top level here. And so, yeah, we'll click into this one here, which is fine. I'm not seeing avatars in here at all. So, I would just say a few things in here. Um, you know, topics should have uh tags within them. So, instead of like Rust, you know, uh we'd have a programming topic and you could tag something as Rust. uh you know and um uh I don't see avatars. Okay. So, we'll go ahead and we'll give that feedback there and let it go through that for a moment. But, you know, that's one thing I think that was is missing. And really think of that structure is hard. But again, we're not doing this for for real. So, um what I will do here is is after this we'll let it uh go ahead and try to make that structure. All right. So, we have a little bit going on here where it has produced a bit more. I'm just going to go take a look and see what we have. And uh now we do have an avatar. It's really small. I'm not a big fan of it, but I mean it is a an okay start for this as we we can't really click on profiles, but I guess you kind of get a a little sense of it. Yeah, you don't really you can't really see anything. Okay. Yeah. Well, anyway, that's fine. Um I think that we have enough to compact and so I think I will stop this video here and compact in the next one. Okay. Okay, so now that we have more stuff here, I want to go ahead here and take a look at status uh in this current conversation that we have. And notice that we have 93% left. So, it's really hard for me to use up uh that there. But we'll go ahead and run compact, which is what I wanted to show you earlier. And we'll see what we get as it should reduce that size. 49 turns. uh 68.7 uh use so far and now it's compacted. So we'll check our status again and yeah it's greatly reduced. Now if we want to clear that out we can go ahead and type in clear. There you go. Now it's been cleared. So there we go. There's your compact. There's your clear. All right. So in this video we're going to take a look at the goal feature. Now this is something that I'm never exactly sure what to uh do. So I just fed it my skeleton back in into chatbt and I asked it like what I could do for that. So it says build initial deployable MVP uh supporting the accounts or whatever. So it would not put these into the goals. So the idea here is that um uh I guess it just drives it uh drives it and keeps checking to make sure that's the goal. But here so for document goal get a functioning backend constraint scope open questions. Um, so it's actually a good example of why goal could matter. Muse might spend 40 minutes designing a sophisticated persistent layer. The goal gives it enough context because this doesn't material advance the initial deployable of the MVP. Okay. So maybe it just keeps it on track a bit better. So we'll go ahead and give that a try here. And I'm going to go ahead and do this. Okay. So we've set a goal. Oh, is it now executing it? Oh, I guess it's off to the races. Well, um I guess I'll just let it run and if there's anything interesting to check, I will check into here. But, uh I think it's going to go ahead and do that. All right. What's really interesting, it's starting to queue up a a ton of tasks. Um and so, yeah, it really is interesting to see this go off and and do this. Now, I've seen goal setting for many different um uh coding harnesses, but I just generally don't use them as I I don't really know the fit here. But it seems like it is driving it and breaking up the task as it goes. As a goal management de decomposer, I think that they may just maybe not describe I'm not talking very clearly, but maybe they just do not describe very clearly how goals are supposed to work, right? So I think what it does is it takes a goal, it decomposes it into multiple tasks and it drives it across that and that might be a more efficient way um to run larger tasks. Okay, here it has stopped to ask me a question. So I will go ahead and uh give it access to what it wants so it can continue on. Also it's interesting it's showing the goal progression here on the right hand side. So that's also interesting as well. There we go. And after our really long wait um the MVP backend is completed and verified. So we have a gossql light. Um I guess the question is like how can I run this as I don't necessarily have any instructions here run locally. So we have that uh information. Um normally it' be very useful if we had a means to oh we do actually have a bunch of stuff. So we do have a make file. Okay. I was going to say like well maybe we don't have a make file or whatever but let's go take a look at the readme and see what information we have. Project layout. We can see our stack information. Um, we have all the instructions to start it. Yeah, we have everything. We have tons and tons of endpoints. Um, so that is good. You know, I would assume at this point it's not integrated into um the front end. So that would be my next step. Um, let's take a look at the code and see what we have. So we got a main go application which is great. Yeah, looks really straightforward to me. Um, so we have our database over here. No avatar stored currently. Um, and we can go into uh our back end here. I'm just curious like what the models look like. Okay. Because I was curious if it would use something that is like a an OM. It's not exactly doing that. But here we do have um our statements here. It's not using a templating language. So that was one specification I had that I wanted. It's not doing it. It's using strrus which is totally fine. And we have our very simple inserts. So that is totally fine here. I I don't mind that. Um I guess it is a compiled language so it might have an issue trying to bring it in that way. But uh we do have an SQL life file so that is uh like good there. Oh there's our queries. Okay. So, we do have it. Nice, nice, nice, nice, nice, nice. Okay. And we have the question mark where it's getting inserted. Um, so I'm pretty happy with that so far. I don't know if there's any caching layer right now or if it's even necessary to do so. We never asked it to do that. The big thing I want to do is to close the gap with the front end. And so, I'm going to need another doc here uh for our our front end. So, we'll just say um backend frontend integration MD. And so, I'm going to go backend front end integration. So, we we have a backend implemented. Um but uh we need our front end working. We should do the following. uh create a uh docker compose that with uh with a single uh docker compose up will serve the front end uh serve the back end. Okay. Um generally you want I would assume like like let's use engine X for the uh front-end serving. Okay. Um I guess the thing is that we never talked about where the uh files would go. So, um for avatar uploads, they will be locally uh stored with the um virtual machine, but I mean like they're really supposed to be in something like S3, like an asset layer, right? So, I'm not sure how we would mock that, but the the idea is like, you know, for uploaded assets, for uploaded avatar assets, they should be in S3, but for uh local, we need some way to mock that behavior, however you want to do that. Okay, so we'll just say that for that. Um and so there's that. So infrastructure work, right? Um I don't know if we have deployment solved in any way. So like this is just like like local like develop development infrastructure work the front end integration. So, you know, we need to uh uh port our um static website over to React. I I mean, I prefer Myithil to be honest. Uh that's what I like, but we could port it over to React. We don't want to use uh existing components from a component framework. uh we don't want to use uh a CSS framework. Okay. So uh so we want to port over to React uh we will need to hook up uh the MVP endpoints to our UI. We might need to adjust our UI or our uh backend endpoints. We are not hooking up everything. Okay? you know, like it's just what we do want registration. Uh, reset password. Um, login, create a post, uh, create a topic. I guess you can't create a topic. So log in and seed the initial topic uh topics and so uh seed initial topics users uh posts be able to create a post in a topic. be able to create a comment in a post. Be able to vote a post. Okay. So, vote up a post. All right. So, we have some very basic stuff here. And I really like that. That goal stuff was awesome. So, I'm going to go all the way down the ground here. And we're going to go ahead and clear that out. And I'm going to ask I want a new goal. So, I'm going to go over here and I'm I know I'm using static PT, but we'll go ahead and just like so I can say how do I formulate how do I make this a goal in for um meta muse code because it did a good job last time and no no it's trying to like write me a whole thing. No, it's it's it's the goal command. Mhm. Docker compose starts. Okay. So, I'm going to go here. I mean, like I can't paste that whole thing in there. goals are the finish line the not the design document use goal tracking. So but like how does it know those uh they can discover or you can use so does goal know of my doc Okay, there we go. So, described described in Sure. So, we'll go ahead and do that. So, described in docs uh backend front end integration MD. Okay. So, we will let it go ahead and uh do that because last time it went really well. So, let's get the front end working here. Yeah. I would just say the one thing that is kind of a pain is that you'll get these commands that pop up, but you can't exactly uh always see what they are, what you're confirming. Um, but yeah, I mean it's fine. So, I just have to keep hitting enter here and watching it carefully, but it's been very good at driving the skills. Miniio might be a little bit overkill or maybe it's fine, but we will just wait here. But it's getting pretty close to being completed. All right, so there we go. It should be done. Let's go take a look here and do a docker compose up build. And uh well I want to make sure I'm in the correct folder here. So just a moment here. Uh we will go into the php nuke technique. Technuke. Here we go. We'll do docker compose up. Wait for that to go up and we'll give it a moment here to build. We'll be back in a moment when all the ports are open and we can take a look at it. It might actually already be running and so there might be a conflict here. I'm not sure as I might be running some stuff already here. So, we do have stuff running and so I'm not sure if that would be a conflict for it, but we will go ahead and build it anyway. Okay, I can always just stop it here in just a moment. So, I'll just wait till it's done. Okay, so it seems to be running in the background here, which is great. Um, what port it's running on, I'm not sure as we have quite a few here. We have 8080 um 3000 9000. It probably would help if we took a look at the actual um uh Docker Compose file here. So we have back end, front end, and Minos. So Mino's running on 9,000 and the front end is on port 3000. So that's how we're going to take a look at this. So we will go and have a bit of fun. And it loaded just for a second and then it vanished. I'm not sure why. See, it's flashing. And so that's not something you want to see, but I mean like it's there. And then advantages. So I'm assuming it might be a small thing. We do have uh looks to be an error. So we'll go ahead and feed that back in there. That's not particularly a goal, but it is a problem. So, we'll go to here and just say um the uh the page uh flickers the UI and then it vanishes shows blank uh blank blue background. Um I think it's erroring out the front end. And I'm going to take a look at the network console here. I mean there is one error but usually it's XHR. So uh we'll go here and we get payload responses. So um no errors for XHR payloads. Um so maybe front end issue. We'll see if it can resolve that problem there. All right. We still seem to have a persistent issue here. Um though I mean I didn't restart it. So maybe that's something I should do. So remaining action docker compose build without a host in the sand uh sandbox. So I'm going to go ahead and just do a compose down here and stop the entire stack. Um and then I'm going to go over to here and we are going to bring that right back up. So we will stop that there and we will do a docker compose build and we'll see if that resolves our issue here. I'm not sure we'd have to build from scratch. Uh, and the avatar upload will succeed. Files changed. Seemed like it did quite a bit. U, but we will go back over to here and wait for it to come uh come up and we'll just confirm. All right, looks like it is now up. We'll go over here and take a look. Um, and so we are in the site. I'm going to go over to topics into DevOps pipeline and we can see stuff in here with reply comments. Uh obviously I should not be able to reply right now. We have to log in. So we will go and figure out how to log in. Um I will go ahead and create myself account. So say andrew@examppro.co. This shouldn't go to any real email. So it should be fine. And we'll say testing capital T testing capital T testing one two three whoops capital T testing 1 2 3 4 5 six and register. And so now I'm registered. I'm logged in. I can go ahead and submit a post. So we will go and I mean I don't like the UI. The UI needs to work but it's you know it's fun that it there's something here. And we'll go here and say AI, anyone know how to do X? I don't know how to do X. And we'll just put a code block of something here. And it says here needs two Thunderdome approvals to enter Vault. Interesting. So, we'll go ahead and publish to the feed. And so, if we go to our feed, we can see it over here. We can't we can't upvote our own. Well, I guess we never told it to told it to code that reply to thread comments on the first post. So, reply to that. Uh, again, the forms are confusing, but the point is is that it does work. It's completely running, which is really, really awesome. So, I would say that uh I like it. It's it's cool. I mean more work would have to be done to uh make this no no tables are harmed here built with flex blocks in pure nostalgia. I love that part. But um you know more work would have to be done to to make it more sense. I might just drop it down to two column and I don't know other things like that. But this is just for fun, right? And uh you know it's just done an incredible amount of work. I'd have to do a bit of work to audit the code. I know I like the backend code. It looks really really good. U but we will call it quits here and uh yeah the goal management works. Okay. All right. Let's take a look at how we can set the model. Again, this is going to be pretty straightforward. We'll do muse hyphen model muse spark 1.1. And so now we're on 1.1. We could probably go here and type in model and then uh hit enter. And then we could choose which one we want. So 1.2. There's only a couple models in here. And it does seem to be updating the settings.json which we just happen to have open there. Pretty straightforward folks. All right. So let's say we are getting tired of um having to confirm everything that uh this coding harness is doing. Well um you've probably heard of skip dangerously permissions, but for uh this one I believe for muse we can do yolo. And so that is going to give us the equivalent of uh full permissions. And so it's not going to ask us anything. Um and so you know obviously you want to be very careful here especially if you don't have a sandbox turned on which um I don't think I have bubble wrap installed at this time. I will have it installed at sometime in this video but this is a new uh virtual environment underneath so it does not have bubble wrap installed right now. And so that's just one consideration here. But it's not going to um ask me anything which will be a lot less uh annoying. Okay. Okay. What I want to see here is if we can resume a prior conversation. So I'm going to go ahead and type in muse here. And I'm going to see if we have a resume. And we absolutely do. Oh, we just do last flag. That's nice. But I'm going to hit enter and see what we have. And so it seems like the last one we have is only that last one there. And we'll hit enter. And so we can continue that conversation from prior which is really nice. Um so there you go. Okay, let's go ahead and take a look at skills for um Muse here. Now obviously every coding harness has skills and you know this one is no different. Though I do believe that you have to type in for/kll and then the name of the skill as other ones you would just start typing what it is. is. So, if we go take a look here and list at our skills, I have not imported any skills. Notice here that it's importing ones from Claude. So, I have a tech pros one, a skill creator. Uh, we have built-in ones. So, I never obviously created these. These come with it. So, we have crate skill, which is obviously a very useful one, and grill and other things like that. Though, I think that if I hit escape here, if I type for/grill, oh, it does show it. Okay. So, what if I type in um techros? Okay, so they do show up. Um, so I guess we can do skill in the name or whatever, but let's go ahead and create a new skill. So we'll say, can you create me a new skill in this repo? Um, that will I I don't really have a use for any skills right now for what we're doing, but I'm going to have to come up with something. Um, so our technique application is a social platform and uh, you know, maybe we want a Yeah. Can you create a new skill that will uh create that will create a new uh plug-in idea and ground it to the community MD. Okay. And so we'll go ahead and we will see how that works. Now it should invoke the correct one. The only thing is that I do have that uh that claude skill. So it could get confused. It's checking existing skills and it's using the built-in one and that's what we wanted to use. So that's perfect. So we'll wait for that to complete. I'm sure it won't take long and we'll be back in just a moment. Okay, so this skill is been created. I want to make sure it's in the correct directory. Um I mean like I prefer it when it's in my repository here. And it is here and we have our skill. So I'm going to go ahead here and we will try our new skill. So we'll say plug-in idea. And I'm not sure if it's picking it up, but I'm going to go ahead and restart that. There we go. And so to make a new skill, you got to restart. That's probably why I didn't see one prior before. And so, uh, you know, I want a plugin, um, uh, that will, um, have well, I'll say I have a plugin that is a, you know, hot or not, uh, but it's for a series of photos that is tech hardware. Right. Okay. So, we'll see what it comes up with here. Like, we probably should have told it a format that we wanted, but I just we'll see what it comes up with for fun. Okay. And so, um now we have our idea. So, we have uh swipe hot or not through the created hardware, photo sets, home labs, racks, GPUs, rigs, identity. So, we have community anchor. And so it's going to that to where it actually goes. Audience problem for developers etc. The home lab is identity members already share racks wire closets and stuff. Oh, I like that idea. So the idea is that people will showcase it and then people will publish hot or not or like choose hot or not. But uh solution core mechanic creator posts a rig set of 36 photos. Viewer sees one set at a time and votes hot or not. Score the decay weekly to keep the board fresh. Heat service discovery daily hot rig in the feed. user flows, lurkers, encounters, hot rigs in the right rail of the feed. UI placement. So cool. Yeah. And it gives you some structure. I mean, it gives me a little bit more than I need, but I have it on extra high. So, that kind of explains. It's not a dating app. Yeah, we we're not doing that. No faces, no no stuff like that. Lurker to voter conversion. Sure. So, yeah, there you go. That That's a skill. Cool. All right, let's go take a look here and see how we can execute uh in headless mode. So headless mode allows us to basically uh use it uh via a single line command. And so here I could say uh you know can you tell me what uh lang we are using for the back end. And the idea here is that we can go ahead and implement that. So it did not like what we did here. So I'm going to go all the way back here. here. I don't think I need the the doubles. And now it is going ahead and executing against our code space. Okay. So obviously um headless mode is very useful if you are uh if you just want to run commands from a bash script, you know, so maybe a remote server, that's where it's going to be useful. And so here we have uh the output. Very straightforward. Um we could ask it for JSON elements. So, we could go ahead here and say uh JSON and see what we get back here. So, yeah, it's streaming out JSON information. Uh we could also specify a prompt file. I'm not going to do that, but I'll just show you really quickly. It's just prompt file and then the name of the file, task.txt. Okay, so you get the idea there. Pretty straightforward. Um yeah, there you go. All right, let's take a look at uh the ability to have local memory. So, uh coding agents, sometimes you want them to remember very specific things um that it keeps making mistakes on. And so, normally the way this works is you just tell it, hey, can you remember this fact? And it will store it in a location. So, um in the documentation, it's not really specifying exactly. Maybe it's hidden in a tutorial, but it's not showing uh how we do that. And so, my guess is that we're probably just going to ask it to do that. So, I'm going to say, "Hey, can you remember uh that um I want all CSS to be uh external and not in line. Okay. And so I'm going to see if it actually creates a memory here and where it will create that memory as it could be creating it in a few places. So, we have personal project memory which is the default stored on your machine outside the repo, private to the scope, committed to the repo and and then your machinewide notes. Um, so I'd rather it store it in here, but if it doesn't, we can go check the configuration directory. It's not that big of a deal. Says save to your project memory. So it's suggesting that it's saved. Okay. Sorry. Did Did you save it in the repo? Project memory committed to the repo. Yeah, because I'd rather I'd rather have it in the repo. And so it will rework that right now. We'll give it just a moment. So, they probably have obviously a skill underneath that is uh the thing that is doing that. And we'll just give it a moment. It took it a while saying no, I didn't save it there. Yeah, move it. Move it to this this repo. So, you shouldn't have to ask it twice, but that's okay. Not a big deal. So, um it'll take a moment here and it'll move it into the correct directory. We're expecting to go to uh I guess agents memory. So, we will refresh here and see what happens. Now we are in Technuke. Oh, you know what? It might already be in the correct location. Uh, well, I mean, it's now in the location we want it to be. So, I think we didn't expand this directory and we were working here. But you can see here we have memory.mmd. Uh, there's a lock file. I'm not exactly sure what the lock file does as I explain it here that there is a lock file. Um, nope, no information about a lock, but that is totally fine. Okay. So yeah, I mean there's memory and you know it will pick that stuff up next time we are implementing something. Okay. Okay. So we have approval modes here and there are three modes that we can set it to. On request, untrusted and never approval modes. Um you know they protect you against it uh the the coding harness taking action when it's doing dangerous things like removing files and things like that. And by default, it's going to uh always ask you when it runs pseudo or running a remove command uh for your approval. You can move it up to untrusted, which is a stricter mode. Um, and I believe that it's going to be asking you a lot more questions, not just dangerous ones. So, I think it's based on uh, you know, your your rule settings or things like that. And then never it's never going to stop for approval, but everything's going to be contained in the sandbox. I would imagine to set that you probably would want to have sandbox uh enabled which I don't have at this point but you know if we wanted to switch to untrusted we can do that here. Um it's not showing it anywhere in the interface but if we go here and go to status there's no indicator uh where it is because it says trusted here but that's the workspace and access is approval normal. Um if I go here and just launch it regularly. Let's see what happens now. We'll check status. So I'm not exactly sure where that setting is because it's saying approval normal. Uh but obviously there is some difference. There is another flag as well if you want to turn approval judge off. Um so uh that is another option and that way every every decision you are making. Okay. So there are those two options. Um but there you go. All right. So in this video let's figure out how to get um sandbox mode turned on. It's usually pretty straightforward. You'll end up installing um bubble wrap. Uh so that will be what we'll need to do. Um let's go take a look at the instructions and see what they have for that information. Um so it says run inside the sandbox, but it's not specifying how. So I think what we'll do is just go install bubble wrap. Um as that's usually what we just need. So bubble wrap uh install Ubuntu. Different systems use different layers. So it's going to tell you what it wants. And yeah, it's just going to be pseudo app bubble wrap. I mean, that's what I was thinking it would be, but for fun, we looked it up initially. Okay, so let's go ahead and just install that. And I will put in my password, and that will install here. And we will make our way back over to here. Um, and close this out and restart it. Seems like I have it launched in two places or I don't know, but I'll just close it out and let's see if now it detects it. So now it's not saying any issue about sandbox. And so I believe that we are now operating within a sandbox. I think it's as simple as that. Um, so let's go take a look here. Shell commands run inside the file system network policy. Muse code refuses to run a shell command when it can't confirm that the sandbox is active. Fair enough. And maybe that's why I was getting a lot of um uh issues earlier. But over here we have control network access. So sandbox network where we can control whether it's proxy only, it's restricted or enable full access. So, this is something I noticed that when it wants to go out to the internet or something, it often will ask you. And so, here you can see that it is proxying uh by default, but if that really annoys you, you can say enable all. But, you know, if you start Skynet, that's your fault. Okay, because you're letting it out of the box. Um, but anyway, I didn't even have the sandbox installed, so I guess um maybe I started Skynet. Anyway, uh there you go. So, sandbox is now enabled. Um we'll just go ahead and check our status because it probably would show up under here. and sandbox is normal. Okay, it said normal before even when we didn't have it installed, but there you go. Okay, so we already looked at the YOLO command, but I just want to show that there are multiple guard rails that we could uh do. And so I just want to show you the three. So YOLO will disable approvals and the sandbox and trust the trust the workspace. So that means it'll disable everything. You can uh conditionally disable uh approvals or conditionally disable sandboxes. So, I'm curious to see like what it shows when we do that. Um, so we'll go ahead and just say disable sandbox and we'll go status here and go up here and just take a look here. So, it's set it's showing that it's disabled. So, if we probably go ahead and set this to uh yolo, it probably would disable both of those. We go here and they're now both disabled. And then for the last one, we will go ahead and say disable approval. Okay. And then we will try uh status. And they're both disabled. Oh, I mean that one's disabled, of course. Okay. So, you know, pretty straight straightforward. There you go. Just wanted to show that. Okay. All right. So, something that we will absolutely want to add is MCP. So, I'm just curious to see how we can do this. Uh, I just I didn't I thought there might have been a subcommand here for MCP. So, I'm just going to take a quick look here with the help. Um, so maybe not that way, but we'll go ahead and open it up this way. So, we can see MCP. It doesn't list it this way. What I'm seeing in the docs over here is uh MCP servers via file. So, maybe this is the only way that we can set it. So connect external tool through the model context protocol declare servers and MCP block servers. So let's go take a look at MCP uh servers or directory. Let's see if we can find something that is interesting. There's obviously a lot of marketplaces. Um so I'm just trying to find something that is fun. Most stars most installed. Um, well, we got a duck.go one. Sure. And so, we'll go over to here and we'll go ahead and add this. And so, I'm going to go over here and say, you know, I want to have access. I want to be able to use MCP server with Muse. Can you add this one for me? And I will just help it along here with the MCP server information here. And maybe it'll just place it in the correct directory. It's obviously going into the settings file. So, it's like it's not that hard to open up, but if it can configure it for me, that will take out a bit of my headache for me. I kept saying 0.2.1 or three. We're on 0.2.1, which is fine. I don't think the little version difference is going to matter when I'm talking about versions here, but anyway, we will give it a moment here and see what comes back. And here it's asking to edit the file. So here it's adding the duck.go reference, which looks fine by my standards. And we'll go ahead and hit enter. Like that's what it would look like. I would expect it. Um though I don't think we have a command to see what MCP servers we have, but we will find out here in just a moment. Um so I will uh once it's all done here, we'll stop it. We'll and we'll open it up and we'll see if there's any way for us to detect uh that it's loading that MCP tool. Okay, I'm just going to keep hitting enter here. Okay, so let's go ahead and restart the MCP server and well, Muse Muse. Okay, and we'll see if we can find it here. Um, so I'm not sure uh if there is any way for us to see it. skill site settings. That'd be local settings. I mean, it would show it here, I guess, if it was loaded, but there probably wouldn't be any debugging options for this. Um, most providers will have it because then you don't have to figure out whether it's working or not. But, uh, the way this is imported is pretty straightforward. Um, we don't have a slash command, so I'm going to go ahead and give it a try. So, can you use duckgo? Use the mcp duck.go go to uh tell me what the most uh popular JRPG of 2026 in the last quarter is. And so we want to see if it actually triggers um that MCPU. So that's what we're watching out for here. It's searching the web. I I don't know if there's any way for me to know if it's using the MCP server. How would I know? I don't know how I would know. So the MCP server is installed but there's no indicator uh for it. So we'll go ahead here and just say did you use duck go? It's not available in the session. I use it available in the muse web search. Yeah. So, you know, I, you know, I added it to our MCP, uh, set. I had you add it to our, you know, it's added to our our settings, JSON. How do we get it to work? You know, and you to be honest, like anytime I do MCPS with any provider, they're always kind of finicky. Um, but we'll give it a second here to see what's going on. Let's take a look here. So settings JSON is not in the MCP location. Um no MCP servers are correct. Why it's not working the session? MCP servers are loaded at the session start adding it requires Muse code to take effect. So exact changes I would need. Keep the file above. Pre-install the duct.go manually uh locally to node module. So npx doesn't need to cache it. Restart muse. Okay, go for it. And to be honest, you know, again, even with cloud code, I I run into this problem where I just I have to fiddle with MCPS to get them installed. But as long as the coding harness can get me there, that's all that matters to me. And so we will find that out here shortly. Okay. Okay. So, it says that it's fixed our issue. So, let's take a look here. MCP, what was wrong? You added it to I didn't add anything. You added it, but placed it into this directory. Um, current location is now this. Fix to apply. Um, so couldn't use the MPXY.gov MCP server because it was read only. Okay, that makes sense. Um, so we have verification. So I'm going to go ahead and I want to stop this and we will try this again. What am I typing? Muse. Muse. Okay. And actually in particular, I'm mostly interested in a game called um oh, what's it called? Well, let's just go ask again. So using duck.go MCP, can you please uh tell me the most popular um JRPG in 2026 last quarter? Okay. And so here we're going to see if it uses it this time. Now to me there's no indication here that it's Oh no, it checks for MCP configuration. Excellent. Okay. MCP JSON failed to read the file. Not sure as to why. Checking the server. Okay. Okay. So now it is it is using it. And normally it will ask for approval. This time it didn't bother which was nice. So it's trying to use MCP. That's good. Excellent. Come on. You can do it. Okay. So again, we're just seeing if it will work. Now, it's never asking me for approval. I mean, like, I would give it approval if it just asked, but I I think it knows that it's a lowrisisk thing and that it's just going ahead and and trying to do that. I mean, the tool of it is MCP, so it makes sense here. And maybe I just chose a a hard to use MCP server. But we saw earlier that it was able to work. At least it looked like it. So go here. It is installed but currently failing for all JRPG uh queries. Uh, some failed to get to the view viewd for the most popular. Um, fall back via web search as of today. Want me to rerun once the I don't not sure what VQD clears. What is VQD? VQD. I mean, I meant to say VQD. internal search token. So what it is so when you visit here this contains that information a shortlived hash token all subsequent API requests must include it without it duct rejects request why it failed. Um it does a live check and this is the sandbox request failure. So the regx finds nothing and throws that it's not your query it's the network anti antibbot blocking. Oh. Oh. So duck duck. So despite us having an MCP, maybe Duck Doto doesn't want agents uh using it directly. Exactly. The VQD failed its clue. So I would say that we got it to call MCP. Now this is a different reason as to why. Um, so if you need a reliable agent, brave search uh API, Bing or I never can say that Tavilli are designed for it, but duck go scrapeable keep being flaky. Fair enough. So we could keep running it and get the result. What was the most popular JRPG of last quarter? Dragon Quest uh 7 Reimagined. Cool. Tim would love that. He probably already owns it. Probably already played it. Probably would recommend it. Um, but anyway, we got MCP working. Uh, yeah. Okay. So, there we go.
Generated algorithmically for Search Engine
Indexing.