00:00.00 Frank never over it 00:00.54 James Welcome back everyone to Merge Conflict, your weekly developer podcast where my one and only co-host Frank Kruger doesn't pay any attention to anything that I do, but I'm one of your co-hosts here, James Montemagno. Frank, how's going, buddy? 00:12.34 Frank Oh, wonderful, James. I love how my camera always blocks the countdown to the show, so I never know when to come in correctly, and I never know what buttons you're pressing because you like to press buttons. Hi, James. We're back. We're back doing another show. How's it feel? 00:27.86 James Uh, it feels good. Feels solid. I would say solid. It's pretty hot and it's like hot and spicy, but yeah, it's good. 00:32.92 Frank Yeah. 00:35.45 James It's it's happening. you know, things are, things are rocking and rolling. I got open the garage up a little bit in the morning, a little cool down and hope that I'm not sweating ridiculous, you know, but it's also smoky. 00:44.02 Frank Yeah. 00:45.73 James So it's kind of all over the place. You know what i mean? The whole Pacific Northwest can't win. 00:48.31 Frank Yeah. Yeah, it's been a little bit smoky here too. And I keep wondering like, oh, what is this weird weather? Oh yeah, the state's on fire. Always forget that little trick in the summer. 00:56.63 James Yeah. 00:58.59 Frank I have to do, um I don't have any of those newfangled air preconditioning or conditioning devices in my house. 00:58.59 James Oops. Yep. 01:05.79 Frank So I have to do this thing called open the windows. And sometimes in the morning, it's cold. and but I have to open the windows in the morning or else guess what? In the evening, it's hot. These problems with life, you know, you you sometimes you got to think ahead and I'm not good at that. 01:23.80 James Yep. Yeah. And I i think that yes. and And it's the same, funnily enough, ah ah you know, it's a lot of the the country that's having quite a lot of not just heat, but also smoke. 01:37.37 James And my father-in-law, we like, he was like, oh, the AQI is like really bad here. 01:37.94 Frank Yeah. 01:42.33 James And again, because no one plans ahead of time, he didn't have an air purifier for the house. So we door dashed him from Walmart, ah air purifier that came that night. 01:49.37 Frank Oh, nice. 01:50.95 James Because I was like, oh, he's not going to go out buy one. So we're just like, oh, let's just buy one for him, you know? And then He's got it. 01:54.07 Frank Yeah. 01:54.62 James Now it's in his house. And I was like, wow, it's so much nicer. The same thing with the AC. But yeah, what would you even do? Like that's the, you know, you know, when i lived in Seattle, it was the same thing. it was just like open the windows and then, know, that's, you know, YOLO. 02:04.54 Frank Yeah. 02:05.85 James I mean, you could get like a portable one, yeah, know, what's again 02:09.14 Frank As long as you're like one IQ level higher than me and can remember that this heat thing happens every day, it wasn't just a yesterday problem. It's also going to be a today problem if you don't act ahead. But this is my problem. So most most people, I assume, are smarter than me and can actually remember to open the windows in the morning. 02:27.54 Frank But no, actually, um the air has been getting a little bit cleaner over here. the fires seem to be calming down. Obviously, it's location dependent. But for me, it's clearing up a little bit. 02:38.68 Frank Ah, summertime. It's hard to focus on work and the fires just make it more distracting not to focus on work. 02:46.85 James That's true. Yeah, I was up there this week Actually, I was there. What's today? 02:50.52 Frank Oh, yeah. 02:50.73 James Thursday? I was there on Tuesday. That's why we didn't record on Tuesday. I was there. Yeah, I was up in the GitHub office and it was, yeah i looked down the hay, the line where you see all the mountains and stuff and it all smoke everywhere. 03:02.79 James you know and We're used to it down here, stay below, but ah you know everyone up there is like, ugh. 03:03.42 Frank Yeah. 03:08.85 James It's the worst thing in the world, but you know, i just got to watch us, watch it out and see how it goes. But he had super sad. I was, someone who was, were at VS live last week. i was in Redmond. And someone was asking about the Oregon fires, all this stuff. and i ah And it was really timely because last week was like really, it was like a pinnacle peak. 03:27.54 James And I was sitting there, Kayla and I had just done this this work that session and someone was like asking about stuff and they asked me how fires. 03:27.70 Frank Yeah. 03:33.22 James and then I was like, I kind of froze up because I like read this article was like really emotional, right? Like you read what's happening Spokane, hear about like Eastern Washington. 03:39.99 Frank Had a little PTSD from the article, huh? 03:40.70 James up there I did and i started I started crying and I was like, I'm so sorry. 03:44.70 Frank Oh no. Yeah. 03:45.82 James I was like, i was like you know I've been more in tune with my emotions in the last several years. 03:49.66 Frank Trigger warning. 03:50.32 James And like's like it's it's so close to home. 03:50.42 Frank Yeah. Yeah. 03:52.84 James And also like I've lived and breathed it for like the last you know six, seven, eight years you know and it's not getting any better. 03:56.38 Frank Yeah. 03:59.56 James So it's super sad. and you know It's not just us, is it's all over the place. So you know we have friends over in Europe and things like that too. so it's it is a that I try to watch. I mean, I try to make Heather watch extrapolations. 04:10.82 James Did you watch extrapolations on Apple TV? 04:13.37 Frank No, no. God, it feels like there's a new Apple TV show every month that I haven't seen. i only subscribe to the show when For All Mankind releases new seasons, so I'm i'm a little bit out. 04:22.94 James Okay. So extrapolations, we might talk on the pod a long time ago, but it had one season and it was one of the original shows on Apple TV plus like three or four years ago. 04:30.58 Frank Oh. 04:31.63 James So it's OG. 04:33.26 Frank I should remember it. Okay, please continue. 04:34.39 James And it is, it, it is basically extrapolating out. So like every episode is either it starts in 2037, then it goes 2047, 25, you know, it goes like 10, sometimes there's like one or two years that it's like really back to back. 04:44.81 Frank Right. 04:47.48 James Cause they are extending an episode, but it's for all intents and purposes is extrapolating out climate change, big companies, you all these things out. 04:47.59 Frank Mm-hmm. 04:55.60 Frank Ah, OK. 04:57.35 James It's, it's, it's intense. And when I watched it three four years ago, I was like, well, that's, that's, yeah, that's pretty close home. It's not too bad. Now it's even more, but yeah, I made Heather watch ah the first episode. that i asked but I mean, I think it's as a show, it's a, it's a solid show. 05:12.70 James Um, but it is very close to home, but I still think it's worth, I still think it's worth watching in my personal opinion. 05:12.88 Frank Mm-hmm. 05:19.58 Frank Well, it's keeping the options open. I i personally think any prediction beyond, I mean, five years or 10 years is just making things up at some point because it's really hard to predict the future. 05:21.79 James Yeah. 05:29.60 Frank But it does remind you of possible futures that can occur if we're not all careful. So I appreciate it in that regard. I i don't trust anything that's predicting 10 years ahead. 05:40.32 Frank Otherwise, I would just be asking you, what what should I invest in right now with a guarantee? 05:43.30 James Yeah, totally. Yeah, and you know, it's it's obviously like, ah you know, it's there's a story arc and a characters and things like that. It's not just like, a it's a it's a drama. 05:51.22 Frank Drama. Yeah. 05:53.66 James It's ah it's a U.S. 05:54.65 Frank Yeah. 05:55.34 James drama. ah Yes. Okay, well, to change the subject, let's get to software development, Frank Kruger. you know, I talked... 06:02.30 Frank Something... less drama, I hope. 06:04.74 James You talked... 06:06.20 Frank little Decreasing the drama in the world. There's no drama in software development, right? 06:12.73 James Okay, well, we did a ah we did a podcast, you and i yeah What was it, like two? 06:17.50 Frank Once in a while. 06:19.68 James Let me let me go to the studio here. And we we did a podcast. it was gonna be... let's see, three episodes ago, a.NET MAUI AI revolution. 06:30.34 James And that was timely. 06:30.97 Frank Heck yeah. 06:31.22 James It was a very, very well ah viewed episode, which is great. 06:31.31 Frank Yep. 06:36.28 James And that was timely because I was going to VSLive doing a session I was talking to John Dick and I was talking to Gerald, and I was talking to the.NET MAUI team, David. and stuff. And I was like, hey, like you know I'm doing this stuff. 06:47.61 James you know I have a pretty in tune with what y'all have been building, but I wanted to get from yeah you know what's coming next. What should I be talking about? 06:55.74 Frank Get ahead of the curve. 06:56.13 James is my dad is yeah i get Yeah, get ahead. 06:57.69 Frank Ten years ahead. Extrapolate out for me. 07:00.73 James Exactly. Extrapolate out the next month, basically. 07:03.16 Frank ah 07:03.53 James So they talked about you know the work that they're doing in like the runtime. They talked about the work you know in the CLI and the new.NET MAUI CLI, the custom agents, the.NET skills, the dev flow. 07:14.72 Frank Mm-hmm. 07:15.13 James you know that type of stuff that's going on. So go watch that episode because it's really, really fascinating. So if you're doing Don and Maui development, it's really there. and then you said, man, wouldn't it be great if just like any app, you know you could have an agent interact with it and also you could have some sort of you know environment there. 07:27.26 Frank Yeah. He did. 07:31.74 James And John Dick took it a step further 07:35.29 Frank He did. 07:35.48 James this week by releasing the mobile iOS and Android Canvas extension for the GitHub Copilot app and a mobile device MCP server that enables your agents Uh, the same control that you would have to be able to inspect, view, take screenshots, interact with your application, uh, boot up emulators, see simulators and emulators and do things like that. 07:59.47 Frank Mm-hmm. 07:59.76 James So it's, it's actually independent of any frameworks. This is for any application. 08:03.26 Frank Yes. 08:03.63 James You got a swift app, boom, you got a react native app, boom, you got a MAUI app, boom, you got an iOS app that's just on at 10. Boom. It works. 08:11.56 Frank you're not bearing the lead because I think that that that is the most important part. um Devflow is super cool, but for people like me, I'm still kind of rocking the native UIs. I still don't actually have Maui apps. 08:21.51 James Mm-hmm. 08:24.08 Frank And that was one thing I was a little sad about was um those tools didn't really apply to me because I needed to kind of hack things up if I wanted to them to work for my kind of apps. 08:36.57 Frank But yeah, ah does he get a bell yet? Like pretty soon he's going to get a bell for us because he just solved a major problem for me. um Through all this agentic coding and all that, I've been a little bit envious, if I might admit, for all the web developers out there because they've been getting first class support with like... 08:56.25 Frank I don't know, you know, WorkTree is actually working on their apps, Linux environments actually working on their apps, screenshots working on their embedded browsers, built-in tapping and all this stuff. Every time there's a cool new coding agent feature, I'm just like... 09:12.09 Frank That's nice. That's nice for the web developers. ah One of the native app people are going to get a break here. Like, could you all focus? You know, we're all using native apps. Hate to break it to you, but all these things are native apps. Could you maybe help the native app developers out there? 09:26.72 Frank And John has done it for us. He came through. I knew if I just sat on my butt for a long enough time, someone would do it for me so I didn't have to do it. ah This is really cool. So I've been using it mostly through Copilot, the Copilot app. 09:42.87 Frank The GUI, I should mention, the native GUI copilot app. um And I do know they have the MCP server. So I haven't actually worked with that directly yet. But ah this person online, um at James, something I can't remember, said, you got to check out this Canvas extension. 09:59.13 James Uh-huh. Uh-huh. 10:01.26 Frank I'm like, that's cool. And it was a pretty simple install. I had to install a marketplace. I have no idea what that means, but the marketplace gave me a plugin. I know we covered it in an episode, still have no idea what that means, but I just kept clicking yes. 10:15.00 Frank And eventually nothing happened. i was like, oh, okay. Well, then I thought, what if I talk to this agent? What if I, what if I use the chat window to chat? And I'm like, hey, I did a bunch of installing. Can you like, maybe, um, like I put a lot of likes in, cause I wanted to know I'm hesitant. ah make my app like run on like an iOS simulator or something like that. And it's like, yeah, bro, got you. And all a sudden it's like, you got like 50 simulators. I'm like, just pick one. I don't ever. 10:45.74 Frank All of a sudden in a little canvas window, a little iPhone appeared with a little iPhone Chrome and it started booting up and it's like, I'm building your app, bro. i'm like, that's cool, bro. Stop calling me bro. And, but I kept doing that. 10:58.71 Frank And also my app appeared with the wrong what's new text. I'm like, that's fantastic. And I'm like, that's the wrong what's new text. It's like, oh, looking at it. Oh, we need to synchronize this and we got to fix this. So like very first thing that appeared on my screen, I realized was like a bug in the app because I hadn't committed a change that I thought I'd committed a week ago, which I hadn't. um And already I was like fixing bugs with this thing because for all this time, I never had that loop properly closed. where the agent spews out some code, actually runs the app, and then is able to look at screenshots and give me feedback. And then it felt like the first properly cooperative experience there. And now I know what it's like to be a web developer. Man, they've had it good for a while. 11:45.78 James They have the multiplayer mode of it all really, ah really starts to kick in that loop that you're talking about is so ah engaging and really ah and insightful. So let's let's take a step back here and let's build up to the the canvas app because there's going to more people using other agents, VS code, ah CLIs, all this applies to everybody. 11:57.74 Frank Mm-hmm. 12:04.79 Frank Yep. OK. 12:09.00 James So it's for everybody. 12:09.94 Frank Sure. 12:10.84 James So 12:10.94 Frank I mean, there's a new coding app every week. I think Meta just released something. like It's just every week there's a new one or two. 12:15.90 James Yes. Every week. well Well, let me talk about first you asked what is a marketplace? What is a plugin? Let me break that down for you. A marketplace for all intents and purposes is just a GitHub repo that can have multiple plugins in it or other things that it may expose. So it may say, Hey, I'm a marketplace and I have these MCP servers. I do things. Awesome. Copilot, for example, is a marketplace and it has a bunch of prompts and MCP servers and canvases and, um, 12:49.78 James ah skills all in there, right? It's a way to basically say, i am a marketplace and I'm going to update and version my things. Remember we talked about versioning of things. 12:58.36 Frank Oh, boy. 12:59.91 James So these would be distributable. 13:01.27 Frank try not to. 13:02.42 James So a good example of this would be, imagine if Frank Kruger you like, Hey, I need the Proclarum marketplace for myself because I don't want to copy around a bunch of files all over the place. 13:15.09 Frank Mm-hmm. 13:15.21 James I want to be able to install them on any machine. So you would publish the Proclarum marketplace and you would list all of the plugins and all of this stuff that are in there. Now, what is a plugin? It's a good thing that you ask apply, you know, a marketplace is just a registry of things that it's in it. It's as a manifest, a plugin for all intents and purposes is a way of bundling up a bunch of different stuff into a single package. So for example, if you wanted to, in this case, um, get the, uh, you know, mobile canvas or mobile device, you know, plugin. 13:50.40 James there's going to be multiple things in it. So it's going to have a canvas and MCP server. It might have an agent file, might have skills. Instead of having you install things separately, it gives you a bundle of goods in a single plugin fashion. 13:57.52 Frank Yeah. 14:04.67 James And fact, funnily enough, you know, the VS code to marketplace, when you build a plugin for VS code and you build like a, you know extension plugin, it can bundle up MCP servers and native integrators. 14:16.45 James So it's kind of the same. It's like you're you're building in a bundle of stuff and some of that might be a GUI. Some of that might be Markdown files. Some of that might be an MCP server. It could be a bunch of different things that are built in there. 14:28.61 James So what you did is you registered RETH slash Mobile Canvas GHCP, bad name for GitHub repo. hope I'm sure I'll fix it. It should just be like, mobile i don't know. 14:39.08 James I don't know what the name is I was thinking about. 14:39.70 Frank Yeah. 14:40.56 James I was know what the good name for this is. 14:42.20 Frank Agent stuff. 14:42.65 James um 14:43.00 Frank Agent hyphen stuff. Yeah. 14:44.47 James Mobile device agent marketplace. 14:46.26 Frank Yeah. 14:46.66 James I don't know. 14:46.87 Frank It 14:47.26 James so when you went to go do that, he exposed one specific plugin, which was mobile device or something like that, which is this bundle that gave you the canvas and gave you the M C P. 14:53.17 Frank does. 14:58.82 James Now let's first, does that make sense? ah problem Did I, did I solve it? 15:01.59 Frank It does. 15:02.66 James Yeah. 15:03.06 Frank um It does. i kind of glommed onto that. It's just how many levels of abstraction are we going to get into? i do appreciate that like a plugin is a combination of MCP things. 15:13.67 Frank That's how I'm going to think of it, but I understand skills are a thing. I'm still skillless. Frank is still skillless. 15:18.10 James Yes. 15:19.03 Frank um And we should say, in case you don't use Copilot, Canvas is just a way to add user interface stuff to an agentic app. 15:27.67 James Wow. 15:28.17 Frank It's Copilot's way to do it. 15:28.31 James just just It just ruined build up when we were going to get there. 15:30.49 Frank Was I... ri 15:33.10 James We're talking about MCBs over first. 15:33.56 Frank Oh, I'm sorry. Well, you said, I like to define my terms. 15:37.59 James Define those terms. 15:37.68 Frank But um yeah, so that makes sense. ah Plugins are a a combination, bundling all those things together. And then a marketplace bundles a bunch of plugins together. I can't wait for what we call a bundle of marketplaces. 15:53.83 Frank We'll call it a menagerie, I suppose. 15:55.74 James Well, if you go to, for example, getup.com slash dot net dot net slash skills, you will see that there is a bunch of stuff in there, including a dot clog dash plugin, a dot cursor dash plugin. And then inside the GitHub folder, there's plugins and then there's the plugins. 16:12.06 James And then there's like a codex thing. There's a bunch of things. And there was no standard for this up until yesterday, today, yesterday, today. 16:19.39 Frank Oh, really? 16:20.27 James Yep. 16:21.07 Frank Cool. 16:21.29 James Yep. So, um, 16:22.93 Frank Look at me. I'm like on the curve finally. I'm usually, you know, before before three years ago, I used to be ahead of the curve. 16:25.75 James Now the curve. 16:30.18 Frank Now I feel like I'm always behind the curve. I imagine everyone feels a little behind the curve these days. 16:32.02 James It's in there. 16:34.65 James It's in the box. So just like skills kind of got standardized, MCP got standardized, MCP registry got standardized, all these things. Vercel, it seems to be leading a lot in this because I think they're kind of like over here, right? They're kind of like this. 16:46.65 Frank We need a third party watchdogging all these people competing for users because it's a wild, wild west. 16:46.74 James Nothing like it. Yeah. 16:52.92 James Granted, Granted, they also have V0, so they're also competing for some standardization there, too. 16:56.68 Frank Oh, geez. 16:57.72 James so But, um you know, and Anthropic does this, too. 16:58.07 Frank Okay. 17:00.72 James So all of them do, and and we do, is so participate. 17:01.88 Frank Yeah. 17:02.90 James So yeah, agent plugins, it's an open vendor neutral standard for plugins to extend AI agents. So they started off 1.0 and has a bunch of stuff like MCP servers and skills and stuff in there, and it makes it simple. So you just have... 17:16.20 James a plugin.JSON and it has skills and blah, blah, blah, blah. And then they even made it extensible. So certain clients can have certain things that they extend that maybe are unique to them. 17:25.02 Frank yeah 17:25.05 James So, Hey, listen, all of us have skills. or Don't reinvent the wheel. So they're in this. So that's in, um, open AI, um, Microsoft, GitHub, cursor, AWS for cell. 17:29.93 Frank okay 17:37.62 James Um, any spheres, all those, these are all taken part of this thing. So it's really cool to see. So, yeah, so, so it's been out, it's been out there, but now there's a standard. So i'm I'm hoping this will be even further adopted, which is great. 17:49.30 Frank Yeah, that's fantastic because um I live most of my life in co-pilot, but i I do use up as many codex credits as I can too. I like to spread my money out over the universe and use multiple apps and all that kind of stuff. 18:00.50 James Yeah, I got you. 18:02.58 Frank So that's actually good to know. um Knowing the industry will probably take them a couple months to catch up. i' I'm curious to see when everyone gets this kind of stuff implemented. I know Anthropic is especially terrible at all that's playing along. 18:12.08 James Yeah. 18:15.26 James Yeah. 18:17.50 James Yeah. We'll see how that goes. They weren't on the list, but hopefully soon that'd be great. 18:19.26 Frank okay ah 18:20.42 James um So, so the first thing that's in this ah mobile device plugin is this MCP server and it exposed a bunch of agent tools. 18:26.59 Frank Yeah. Right. 18:28.33 James And these are tools that your agent, when you're chatting with it through codex or VS code through anywhere. So, so you can install this plugin by command line or through the GUI and whatever thing you're in. VS code has one, get up, copod up. You can install the plugins anywhere. 18:40.15 James So once you do that, it'll configure the MCP and then you could do a bunch of stuff. So funnily enough, it's quite similar to the capabilities of the Maui DevFlow just without the Maui stuff. So it gives you bunch of discovery, list, get catalog, select, get selected, display. So you can like list all your, you know, you know, stuff basically. 19:01.37 James You can create, boot, shutdown, restart, reveal, erase, delete emulators and simulators. 19:06.37 Frank Ooh, scary. 19:06.46 James You have input, tap, long press, swipe, type text, press key, press button, rotate. It's kind of reminding you playwright right now. 19:14.07 Frank Yeah. 19:14.64 James Media, screenshot, start recording, stop recording, and then recording status. 19:15.09 Frank Yeah. 19:18.12 James So you do all this. So the normal flow would be list and then select and then read the u UD ID from the result and then deploy your app to that exact device and then drive it with the input tools. And that would be the thing that you could do. 19:29.29 James and that sounds like you were kind of ah having it start to do, like run the app and do the thing and figured it out. 19:33.62 Frank Yeah. Yeah, the thing I wanted, what I thought I wanted the most when when I saw your tweet was the screenshotting, because that's been the big deal. That's the part that's been it personally annoying me a lot, because I've been doing the manual thing of screenshotting and then like dragging it into the chat window. So just not having to do that was... 19:54.33 Frank I thought 90% of the problem. But the moment you get that up and running in the canvas that we shall not talk about until you find it an appropriate time, the first thing you wanna do is tap. 20:03.37 James Thank you. 20:05.50 Frank like The first thing you wanna do is actually start interacting with this thing. Because like once you get that screenshot up, you're like, oh, okay, I can properly close this loop. I don't just say, hey, 20:15.86 Frank Actually, the very first thing I said, hey, what do you see? like i wanted to know if it could actually i visual you know visualize. All these terms don't make any sense in the AI world. But could it see the screenshot? Yes, it could. 20:27.86 Frank um and the And the device popped right up. And almost immediately, I'm like, let's interact. like it's It's very fast. like You accept what you now have, and you want more. That seems to be how this world works. So immediately, I wanted that interaction component. And there was one little trick there, I realized, but everything you said, yeah, the the MCP installed smoothly. didn't even know it was an MCP. I have no idea what skills were added, any of that. I just started talking to it in natural language because that's the whole point of these things. You you should ideally not have to know any of that garbage. 21:02.33 Frank And I should also say i was using um Sonnet for absolutely no reason. I feel like i I choose a different model every time I use Copilot these days. I just wanted to see what, let's call it a medium level model, could do with all this stuff. 21:19.34 James Dude, I used, I used Terra High. 21:19.78 Frank Basically, I didn't want to pay for Fable at the moment 21:24.42 James That's my new default. 21:25.19 Frank Terra high. That's what you're digging. 21:26.16 James Terra High, the default is actually medium behind. 21:27.13 Frank I can't keep these things track. Is Sol better than Terra, better than Luna? 21:30.30 James Yes. 21:30.65 Frank is it Is it by mass? 21:31.09 James Yes. 21:31.97 Frank Is it by volume? Is it by spatial orientation? How do you remember which one's good? I can't. Like, Sol, in my mind, should be the best one because it's the sun. 21:42.99 Frank It's the giver of life. 21:44.44 James That is the most expensive and the biggest one. That is the big model. 21:47.06 Frank Okay, so it is by mass Okay. 21:47.41 James So is the big model. 21:49.09 Frank Okay. 21:49.40 James I think by mass. Yeah. So, so soul is the big, big puppy. That's your opus. That's your fable model. That's your big model. 21:54.95 Frank Mm-hmm. 21:55.50 James Right. And, uh, then you have Tara. 21:56.50 Frank Yeah. 21:58.67 James That's the media model. Now the interesting part is that opening, I just reduced the cost. I think of Tara by like 30% and Luna, which is the small one by like 70% or something. 22:03.62 Frank Hmm. 22:08.54 Frank Okay. 22:09.21 James Um, And I've been using Terra on high and it's Terra. 22:12.63 Frank Tara, hi. Okay. 22:13.94 James Yeah. It's super fast. The, the reasoning just ticket up a little bit is really good, even though you shouldn't test reasoning, but it's good. It's fine. 22:21.27 Frank Hmm. 22:21.86 James I just been experimenting a little bit with like, it you know, cause the default anthropic is high and the default on GPT is like medium, but both are pretty solid. 22:28.34 Frank Yeah. Yeah. 22:29.46 James And the, the cost doesn't seem to be too big. And then baby Luna is like actually really good model. Very small, very fast, very cheap. Uh, and the thing is That, um, they seem to do the job really well. 22:44.85 James I really like them obviously so really exploratory, but the main thing is that the cost per token is like very low. It's like, it's it's like super low. 22:54.71 Frank yeah Well, that's why I wanted to start on a media model like Sonnet. 22:59.42 James Medium model. 22:59.72 Frank I don't know how that compares to the OpenAI lineup, honestly. 23:00.42 James Yeah. I think that's like ah more in the Terra space. 23:02.80 Frank but 23:04.17 James Yeah. Yeah. Yeah. 23:04.70 Frank Yeah, because um i knew just knowing how AIs work, this was going to be token heavy. Like every time it clicks, it's going to be sending out tool calls. 23:17.11 Frank It's going to be receiving tool calls. It's going to be getting screenshots. Like, do you know how many tokens a screenshot is? 23:21.14 James Vision. Oh, yeah. 23:23.35 Frank like it's ah And i don't they don't even talk about the pricing for images. 23:24.22 James Hmm. 23:28.39 Frank you know we We don't talk about that. But think about like images get tokenized. I don't know if they're from the same token pool or anything like that, but an image is a set of tokens depending on the resolution they send over and all that kind of stuff. 23:41.11 Frank So I specifically didn't want to try a giant model because ideally I would be doing this kind of loop stuff, UI work stuff with Kind of a dumber model, to be honest, because I'm not asking it to like reinvent physics and implement a simulation engine. 23:56.91 Frank You know, I'm just like, hey, is that button red or blue? 23:58.07 James Yeah. Yeah. 24:00.27 Frank I think it should be blue. Make the button blue. like That's what I want out of this kind of closed loop UI kind of stuff. 24:03.61 James yeah 24:06.95 Frank And it really shouldn't take that. Um, large of a model. And my experience there is I run 27 billion parameter model myself. I know what it's capable of. 24:17.73 Frank So I'm fine with running a smaller cloud model because it ought to at least compete with my $27 billion, dollars or billion dollar I wish, billion parameter model running on my machine. 24:29.27 James Yeah. 24:31.96 James well Well, so I think what's interesting, so the so let me tell you about a little bit of the difference of the Maui DevFlow versus this experience, because that while they're similar, they're also vastly different. 24:39.10 Frank Mm-hmm. 24:41.59 James Because in this experience, um this mobile um device MCP, Doesn't know anything about what's in the app, right It's not connected to the app. 24:52.50 James So there's no agent running in the app. 24:53.22 Frank Yeah. 24:54.50 James It's just running the simulator, grabbing that flow and understanding, okay, here's a screenshot. It's in the top left. I could click on that. I could find something, bring up, do around. 25:04.31 Frank Yeah. Stop. 25:06.42 James It's it's doing a lot of heavy lifting compared to the Maui dev flow, which is actually an agent running inside your application connected to your agent. 25:09.59 Frank Yeah. 25:18.31 James Sorry, let's just make this. 25:18.84 Frank and but stop yeah i know 25:20.37 James There's an there's an there's an theses are a web host API running inside your app, talking to your agent. And the agent is going back and forth, talking to it. And the power of that means that because that API is running inside the app that is the running or debugging, it has tons of information. 25:37.72 James and since it's built into the framework itself of Maui, right it can like read the the visual tree, just like you could read the Dom, like in a web browser, you can investigate, you get highly optimized. 25:46.26 Frank yes 25:48.48 James You can, for all intents and purposes do a lot more. I think there's like 50 tool car calls compared to like maybe 24 tool calls that the puppy can do. 25:55.16 Frank Yeah. 25:57.02 James So that means that that this one, while is powerful because it works everywhere, does have that slight limitation, uh, because it, it's not running inside of, or connected to something running inside your app. 26:10.71 Frank 100%. In fact, 1 million percent. And you feel that difference, honestly. um I've been working on like a little game engine in my um ample spare time. 26:15.79 James Yeah. 26:21.03 Frank And i'm calling it an AI-first game engine because I'm building these kind of like talking points, these little API access points. right into an MCP server built into the game so that it can actually basically reverse engineer every pixel on the screens. 26:37.67 Frank Like, why is that pixel red? Here are all the reasons that pixel is red and that kind of stuff. And you really need to bake that in and the input system and all that, because I'll tell you what, the very first time I told it to dismiss my what's new dialogue, oh boy, it missed. 26:51.50 Frank It missed the close button. 26:52.27 James Yeah. Yeah. 26:53.14 Frank It's like, I'm tapping, baby. I'm like, yeah, you're tapping in the wrong spot. You got to work on your scaling code and all that stuff. 26:57.46 James yeah 26:59.46 Frank um So what it does do is use the IDB. And this was new to me. um um money Interface, I suppose, that meta slash Facebook slash Muse released at some point in time. This was all new to me. I didn't know about this thing at all. 27:19.00 Frank But um it's kind of a standardized way to talk to Android devices and iOS devices. So this MCP server uses IDB to do the kind of low-level communication and the low-level talking to all these simulators and such. 27:35.16 Frank And the very first thing, when I tried tapping, I said, you don't have IDB installed, buddy. And sadly, it's not in the setup instructions. And they really need to add that to the setup instructions I need to email. 27:44.68 James It's in requirements. It's in requirements. 27:46.71 Frank No one clicks requirements. 27:46.96 James What you should have said is just, well, all you got to do, Frank Kruger, all you got to do is install it for me. 27:48.63 Frank Who clicks requirements? 27:54.14 James And guess what? It'll ins install the brew for you. 27:57.56 Frank Kind of. the The brew you have to trust. 27:58.52 James Yeah, it definitely does. 28:00.18 Frank And no, there's there's weird security things with brew. 28:01.30 James ah 28:03.54 Frank But yeah, fine. It kind of does if you're in a pseudo environment, et cetera, et cetera. 28:04.62 James I know. It kind does. 28:09.94 Frank But that that was actually kind of cool because I didn't know about this tool. And the way the tool works is basically like most UI testing frameworks these days is it uses the accessibility identifiers actually to find things on the screen a lot. 28:25.27 Frank So there's one of the commands is excuse me it's something like uifind. And the agent will use that a lot. So if you ask it to click a button or something, it'll first try to go from the screenshot, probably miss because its math is a little bit off. 28:37.91 James Mm-hmm. 28:39.13 Frank And then it will uifind, try to find the element. It'll actually get a set of coordinates from that. And then it'll finally click in the right coordinates. Again, this is a lot of back and forth with tokens. So try to use medium to small models for this kind of stuff. 28:53.69 Frank And it's a little bit frustrating because you start to realize the limitations of the accessibility model, at least on iOS. This is where I'm spending all my time. For example, if you have a toolbar in your app, toolbars are hosted in a very weird way these days. 29:09.18 Frank And toolbar buttons, even though you can add accessibility identifiers to them, 29:09.98 James Yeah. 29:14.30 Frank none of those accessibility identifiers come up, at least in iOS 26. I should try 27. But it's it's a little bit frustrating. So if you ask it to click a very specific button on your toolbar, 29:28.41 Frank probably going have a little bit of difficulty. And i'm I'm working on that, but these are just limitations of that MCP server using that way of accessing the DOM, whatever you want to call it, the the visual tree. Whereas if you have something like DevFlow built for Maui where it actually knows the real Maui tree, it can just say, hey, there's a button there. I don't care about all these iOS shenanigans. Go click that button and that kind of stuff. So you actually do feel the difference But i i'll I can work around that and I can deal with it for now until it gets super frustrating. 30:03.30 Frank it's It's all Apple's fault. Like we we shouldn't be we shouldn't be using accessibility to do UI automation. And this is Apple's fault because they started doing this with UI testing. 30:15.64 Frank And they're really conflating two different things. 30:16.23 James Actually, it's awesome. 30:18.00 Frank Accessibility is for humans. this stuff is not for, this is for robots to talk to your app. 30:24.31 James Yeah. 30:24.91 Frank And it should be a whole different visual tree. It should be a whole different set of identifiers. I get why they did it. We all understand why they did it, but it's wrong. It's just wrong. So we're limited by it. 30:33.66 James Yeah. In an ideal world, there would be some way for, you know, something else to reach in and say, give me the, give me the, the whole visual tree. 30:45.32 Frank actual visual tree like it used to be. 30:46.72 James Yeah. 30:47.25 Frank Yeah. I mean, in the early iOS days, it used to be, but Apple moved so many so much stuff out of process. 30:47.96 James Yeah. 30:53.69 Frank So because of XPC, multiple processes communicating, but still on screen at the same time, like you're 30:54.29 James Yeah. 31:01.72 Frank File open dialog on Mac is the classic example here. That's it running outside of your app's process. And you could you could have a debugger attached and you could be you know bit twiddling, going through every byte of memory, and it's not going to be there because it's in a whole different process that is isolated. 31:18.75 Frank So it's funny how quickly those things come up. But I find it funny that just within 10 minutes of using this tool, I was already kind of hitting those things. Like was saying before, that the moment you're given something, you want more. 31:31.33 Frank I thought I'd be happy with just screenshots, but no, now I want like, I want a hundred frames per second. 31:31.92 James Yeah. 31:36.65 Frank Cause I have an animated app and it's, it's getting confused with the like one second refreshes screenshots for whatever reason, take one second. And then ah it can't click the right toolbar button. And already I'm like, come on, come on. 31:47.52 Frank You're so stupid. And I just got this feature 10 minutes ago. It's so funny. 31:51.48 James Yeah, ah I would say yeah someone wrote a comment back and they're like oh why is it so slow? It's like, well, it's slow because of what we're talking about here, right? This is a good like you know um you know thing. 31:59.32 Frank Yeah. Yeah. 32:00.60 James I think on Android, it doesn't even have some of those features and capabilities. I was running on Windows. you know Android emulators themselves are so you know slower and clunkier and getting them in and and up and working is is fascinating. 32:13.59 James Now, that being said, there is a lot of value even if it is just taking the screenshot, reading it, validating it, and getting there. 32:24.98 James And then additionally, one thing that I think is of interest is I'm, you know, maybe when you're building this up is I'm curious if you just start to end up having it self-document success. 32:25.25 Frank Yeah. 32:36.32 James So for example, Remember, as UI automation, right? When you write a playwright script or you write a cucumber thing or whatever it is, like, you're just like, hey, do these things, click these things. 32:47.78 James So for example, in your app, you'd be like, okay, now here's this accessibility layer, here's this X, Y, Z coordinate, or here's this thing, right? Blah, blah, blah, blah, right? And then you you wait have a skill that's on demand that's like navigate to the settings. 33:00.33 James And it's like, oh, I know now how to navigate to the settings and boom, boom, boom, boom. 33:01.24 Frank Yeah. 33:03.37 James boom But have it document itself, right? 33:06.30 Frank Yeah. um I haven't gone quite that far, but I'll tell you what, the very first code change I had to do was please go through every UI element and make sure there's an accessibility identifier on it because I am not playing this game. 33:17.56 James ah Yeah, yeah, yeah, 33:20.30 Frank And that was my very first commit was adding a whole bunch of accessibility identifiers everything. I just spent all this time complaining about the toolbar, but for the most part, accessibility at identifiers work. 33:31.34 Frank So you just, and it has a little tool to go search them. 33:31.80 James Yeah. 33:34.02 Frank So i'm just like, basically spam my code base with accessibility identifiers so you can just target everything more quickly. So everyone, go do that. 33:42.18 James Yeah. 33:43.86 Frank So I guess we are improving. 33:44.06 James Yeah, go do that. and That's a good... 33:45.46 Frank Yeah, just go do that. 33:46.17 James Yeah, totally. and And like the frameworks that you're using, if you're using Maui, so obviously if you're using Maui, just use DevFlow. But there's still a lot of actual really good things about this that we'll talk about, ah even if you are using Maui DevFlow, because of some of the features that it brings to the table in a visual way, because I'm a i'm a big GUI person, Frank. 34:06.66 James i don't know if you know, i love a GUI, which is why vs Code and Visual Studio and 34:08.10 Frank This is this. 34:11.67 James the app resonate with me a lot compared to the CLI, which I do use the CLI a lot. It just doesn't it is a 2E, so it is a little bit of a GUI, but it it resonates with me a little bit less. 34:18.94 Frank instance 34:20.67 James I do like it. ah But the the unique thing and the thing that i really focus on for my video ah was the visual aspect inside of the app, which is a canvas that allows you to see, boot and interact with Android and iOS simulators and emulators. So what is a canvas? A canvas for all intents and purposes is an app that you build that is bi-directional that lives inside the GitHub Copilot app. It can live across all of your repos. 34:53.17 James It can live in your project, in your source control, or it can even be for a single session. So that means that you are able to create custom user interface on demand. 35:04.82 James to do just about anything. And it has an API built in that allows you to get access to basically anything in GitHub that you have. So all of your runs, actions, information about yourself and anything about the session information of the sessions you're running. 35:20.44 James So everything, basically everything that the Copilot app has access to, you also have access to. And it means that you can send information to this canvas, the surface that pops up as a little web preview inside of the app, inside of a session. 35:33.64 James And also, um it can speak back to the active session. So for example, you might build a custom Kanban board for an Epic that you're doing and you can drag things across and it would say, oh you want to go to in progress and you would code up when I go to on progress, do this thing and it'll go and it'll talk to the the chat and it'll fire off a session and do a thing. 35:43.00 Frank Mm-hmm. 35:55.38 James And then the, the chat can update the canvas. So I have a canvas with my podcast software. That's literally this Epic tracker. And as I'm assigning it, I have a button that like analyzes the next readily available. 36:08.42 James It kicks it off. It sorts an orchestration. And as that kicks off. In those instructions that says, please update the canvas. So I have a canvas of all of the agents that are working the status of what they're working, what they're doing in real time. 36:18.60 Frank Yeah. 36:21.06 James And if any of them are complete or idle or stuck or anything like that, or need my attention, i have this visual dashboard so I can orchestrate these agents and boom, it's there. um So that one's really cool. I have another one that is an action hub. So I use this one all the time. 36:34.72 James GitHub actions. I got like a bajillion GitHub actions. And right now, if I want to kick off a GitHub action, I got to go to github.com, find my repo, do a thing, go see all the status. I never want to leave my GUI, right? 36:46.38 James I want to stay in it. 36:47.00 Frank yeah 36:47.64 James So I built a custom... canvas that shows me everything inside of it. So everything that is in my actions, I can kick them off. I can orchestrate them, see the history, all this stuff. Burke made an awesome one. You're going to love this, a SQLite browser. 37:00.92 Frank Yeah. 37:01.59 James So inside of it, you can point it at a database file. 37:02.49 Frank Cool. 37:06.74 James It'll show you all your rows, columns. You can query over. It gives you rich IntelliSense inside of it. And I just challenged him because you have access to the Copilot SDK. Say little button that says, hey, what do you want to query for? 37:19.48 James and then enter what you want, fire it off, and then boom, it should generate the query for you, right? 37:19.87 Frank Yeah. 37:23.71 James So you could build those things on demand, which are so cool. 37:23.99 Frank Yeah. 37:26.39 James So what John Dick did, and I love this because it's the essence of a great little extension UI that makes sense if you're building mobile apps. It has nothing to do with AI at all, except for that it lives and breathes inside the Copilot app, right? 37:35.55 Frank Yeah. 37:39.25 James And that yeah the agent can speak to it through agent tools, but he basically created a full view 37:39.32 Frank Yeah. 37:45.53 James that will show you all of your emulators and simulators. you can You can basically do anything that the agent can do from it. So you can obviously list all of them, boot them, create emulators and simulators, delete them, erase the data. um You can take a screenshot, you can do recordings, and then you can tap interact. 38:05.06 James rotate, do all these things for you. And it's basically a window inside of it. I don't know how it worked on iOS, but on Android, it booted up the Android emulator, which was like running behind the app. 38:15.70 James And then it was like viewing into it. Like, i don't know exactly how he did it, some magic, but it was is quite cool, which means as the agent is interacting by calling all these MCP tools, 38:18.88 Frank Okay. Yeah. 38:26.62 James you can see it in real time happening. And that's quite magical inside of it. If you want a full screen it, obviously you could just run the simulator side by side, but there's something magical about it being there and happening inside of the GUI itself. 38:39.77 Frank Because that's where it belongs. It's not magic. that's It's an integrated development environment. It all should be integrated. I don't need 60 windows to do. I'm like, we're not going backwards in time. 38:51.33 Frank We're trying to go forwards in time. No, it's a fantastic job. 38:53.15 James Yep. 38:54.90 Frank And I hope, I know Microsoft and slash GitHub needs to keep their competitive lead over everyone, but I kind of hope these become vaguely a standard because i do bounce around between the apps and such. And it's such a cool feature that your IDE adapts to you or specifically to the app that you're building. 39:15.36 Frank I think this has been a goal for a long time. VS Code has had extensions forever, but every time I went to write an extension, I don't know, it just got... weird and very typescripty and I would always give up about an eighth of the way through. 39:27.82 James Yeah. Hmm. 39:28.40 Frank Now I'm just like, build me a canvas that does a blah, blah, blah. And it's like, here you go. And I'm like, well, that's completely wrong, but could try here. And then and now let's iterate on it a little bit. And it's fun. 39:38.84 Frank it's It's actually fun to build. I have yet to, in the same way that I still lack skills, I lack can vi canvases, canvies. um But I know you, you you've generated like 100 canvases. 39:51.10 Frank um i'm I'm hoping to get there. I've built a few throwaway ones and all that. But what I find really cool is that this plugin marketplace MCP thing also has a UI. Like, of course it should. 40:04.92 Frank This is... 40:05.13 James Yeah. 40:05.56 Frank this is What I appreciate is um I was getting a little bit nervous about these coding agents and the overly simple UIs that they were presenting to us as developers because the whole TUI thing happened like 2025 2026 are just sadly going to be the year of the But a lot of those bad things from the TUIs came into our GUIs because like all they can show is text and a few basic pictures and a few graphs. 40:36.22 Frank So what did all our apps become? Text and a few basic pictures. So I appreciate that they're making it easy to build actual GUI stuff into our GUIs. And now that basic thing is okay because we can accentuate it with more advanced GUI kind of stuff. 40:51.80 James Yeah. 40:52.12 Frank So I'm feeling more optimistic about the future. But what I also appreciate here is I was always a little bit confused on how you actually distribute these canvases. So I'll be actually having fun looking at how the sausage is made a tiny bit and seeing how he packaged all this up together. 41:09.24 Frank And i assume it's not rocket science. so So I'm excited to see how I can start building my own little universal canvases that i can make sure are installed on all my machines. 41:18.26 James Yeah, I'm super interested too. I haven't, I guess i I think it's just in there. Yeah, I'd be very, very interested to see. I'm just looking at his plugin. He has a package.json, but I wonder if he has like a plugin.json. 41:30.47 James I'm not sure. But whatever he did, I'll just point my agent at this and be like go do this. ah Pretty much. 41:34.65 Frank Yeah. 41:35.11 James oh Yeah, so he has a marketplace and then he has a plugin in it. And the plugin has the canvas and it has keywords. 41:42.10 Frank Okay. 41:42.52 James Okay, let me see what's in the plugin.json. Plugin.json has some keywords and then it has ah extensions. 41:51.22 Frank Okay. 41:51.52 James Extensions folder, mcp servers.mcp.json files. 41:53.04 Frank Sure. 41:54.90 James So just like four lines of code like, oh, so, cause I think what happens is that it clones the repo locally and then it exposes the stuff to it, right? 41:56.63 Frank Not rocket science. Yeah. 42:02.68 Frank Ah. 42:03.77 James The mcp server isn't distributed with your app, but the configuration for the mcp server is. 42:03.83 Frank That makes sense. 42:09.75 Frank Oh, okay. It's all quite a mystery on what's getting installed and not installed, to be honest. 42:12.28 James Yeah, it's quite a mystery. But like you said, the nice thing is that if he updates this, which he just released this yesterday, and I know he's already shown me some major enhancements that i think solve some of your problems, you know, just for speed and visibility. 42:23.66 Frank Cool. Ah. 42:26.52 James So um and once people use it, and I'm sure once you complain to John Dick about it, that he will go and fix it. But he's he's actively revving on it. and tons of PRs is coming in too. 42:35.52 Frank Yeah. 42:37.40 James um He has a pull request, by the way, because this is open source, so I can see it which is add VS Code to mobile device support, which is to put, for all in intents and purposes, the GUI inside of VS Code. 42:41.68 Frank Yeah. There we go. 42:49.46 Frank Yeah. Yeah, it's very cool. I mean, honestly, he did a service to the entire mobile community here. This isn't him just contributing to Maui and.NET people. 43:00.25 Frank Like, as you said in the very beginning, this is completely usable if you're a Kotlin developer or a Swift developer. And that's what I like. It's kind of a unified tool he basically built here. 43:11.70 James Yeah. 43:11.76 Frank Where no matter what technology I'm using, I can use the same tool so I can get good at this tool. i can know the little tricks to play with it and all that kind of stuff. I think that's the biggest concern that I have with the Wild West that we're in with this plethora of tools that we have is I'm not getting really good at any one of them. 43:28.93 James Hmm. 43:31.51 James Hmm. 43:31.68 Frank I'm getting mediocre at a bunch of them and I don't like that. I always pride myself on being a bit of a power user. 43:35.87 James Hmm. 43:37.82 Frank So I like to get a tool that I can really obsess over and get to know the nitty gritty and become really good at. And I feel like um this thing, even though it's just a canvas, just an MCP server, this is one worth getting good at and making sure that my code adapts well too, because this is closing the loop. 43:52.54 James Yeah. 43:56.60 Frank This is a very important part of future development. 44:00.81 James No, I totally i agree with you. No, it's super good and I'm excited that it exists, that it's in there and I'm excited to use it more and more and more because like you said, I do this in the box, you know, with websites all the time, no matter what you're building. 44:13.72 James Like there's just a browser you can do it and I can see it. 44:13.87 Frank Yeah. Sure. 44:15.68 James It's easy. and Now we have this capability and I'll just continue to improve. And and I know John's not the old new one working on I've seen a bunch of other people on Twitter doing stuff. So so i'm hoping that there comes like this, you know, open source rally behind these agent mobile tools. 44:29.70 James I think John did a really banger of a job and to integrate it into these other tools that we're using, which is so cool to see. So yeah, be super fascinated to see how it continues to grow and can leverage. 44:39.84 James So give it a spin and give John the feedback, open an issue up. 44:43.66 Frank Yeah. 44:43.97 James you know That's the biggest thing you can do. he just He literally like honestly in the morning, he was like, Hey, check this out. Do you think this is cool? And I was like, I'm gonna do a video on this. And then like, you know, three, I came back three hours later. i was like, I did a video on it. 44:54.98 James How is it? He's like, this is amazing. it's like I'm publishing it. And I was like, I'm publishing it. Let's go. you know, it was like a really fun collaboration on it in general. 45:01.24 Frank yeah 45:03.14 James And, and, you know, I just, it was, it was fun sites. It's on the the LinkedIn, on the Twitter, on the YouTube and stuff. I'll put a link in the show notes if you want to kind of guided walkthrough, but it really is just that easy to get up and running and, and experimenting with this thing. 45:15.18 James Just ask the agent to do the thing. I love that. That's kind of my, my new thing. I was, I was doing this workshop. And ah we were were going through the GitHub copilot apps. 45:25.35 James We did the CLI, the copilot app VS 2026, and then we did the SDK and we were in the app. And one of the starts of it was like fork this repo and then like clone yours and do this. 45:36.90 James And the one person like made a mistake and like cloned the original one and not the fork. So when they went to like do merge merging in, it wouldn't let them eyes and have permission. 45:42.81 Frank Okay. Oh boy. 45:45.86 James So I said, oh okay, hold on, hold on, hold on. I said, well, this is easy. Watch this. And I hit the microphone button. i was like, Hey, can you just go and like create, you know, a repository fork off of this one. And what I want you to do is like replicate all the commits that I have in this session in that one, and then open a new pull request on that one. It's all like, yeah, I can do that. And like one minute later, it was like done. 46:09.22 Frank It's like, unlike you, I know how to use Git. 46:12.34 James Exactly. Exactly. exactly Oops. That's true. It's true. It's true. 46:17.45 Frank Yeah. 46:17.45 James It's pretty funny. 46:18.55 Frank And it's funny. 46:18.68 James Yeah. 46:19.11 Frank And it's it's not like I'm excited for this for the UI development um parts because, again, like that's the most important part of these apps. But I hope to try other little things. Like I have um a help file and documentation that is years out of date from a screenshot perspective. 46:35.22 Frank And I've been really holding off on doing screenshots. 46:35.60 James Yeah. 46:37.74 Frank I'm hoping I can just use this thing but like, hey, can we just walk through the existing help file and go get some new screenshots? Because they are old, buddy. 46:44.86 James yeah 46:46.13 Frank So let's let's work on this together. 46:46.39 James yeah 46:47.93 Frank So I'm excited. And that's it's definitely not a feature built into this one. But because this is a combination of lots of pieces, I'm hoping to be able to do those kinds of tricks. 46:58.42 James And the one thing that I didn't actually see if he could do, because only iOS and Android, maybe you can pull request it, is like, I wonder if he can do like Mac and Windows applications too. There shouldn't be anything really stopping him. 47:07.00 Frank ah There's no reason not to. or then it It looks like he's kind of baked into this IDB toolchain. 47:12.97 James B. 47:15.38 James Yeah. 47:15.48 Frank So an IDB does not support Mac. So it just depends on how factored his code is. 47:18.23 James Oh. If he can get there. Yeah, that makes sense. That'd be really fascinating because then you could really have it walk through. 47:25.75 Frank Yeah, 100% though. 47:25.97 James i was thinking about this recently with some workshops. I'm like, oh, you could go through the workshop and take screenshots like of the thing as you're going to, you know, and have a drive in. Oh, you could snip it. Like it could snip it itself. 47:37.00 Frank Yeah. 47:37.13 James Right. So, um, that's been interesting to kind of like experiment, like how far can you push it? 47:38.14 Frank Yeah. 47:43.09 James And I think that's, I tell, you know folks, 47:43.80 Frank Sure. 47:47.16 James you know, every time it's like, Oh, if it didn't do it last week, try it again this week. Right. Like there might be some new update, some new plugin that does the thing. 47:52.41 Frank Yeah. 47:53.68 James So give it a go, but no. 47:54.84 Frank And this isn't the end of the road. Like we both said, like DevFlow is actually closer. That's a better road to be on where our frameworks have integrated agent, agentic aspects to them, where they expose more features to the agent. Because honestly, it's really silly to be taking a screenshot of an app screen and going and looking for the text. 48:16.54 Frank Okay. And then reverse engineering the screen coordinate of that and then sending a tap. 48:17.69 James Yeah. 48:21.90 Frank it That's ridiculous. 48:23.74 James i think what I think what John needs to do is probably make like a Swift library and then a like Kotlin library. 48:30.33 Frank Yeah. 48:31.21 James And then he can like make wrappers on top of all of that for the different frameworks, however far he wants to go. 48:32.06 Frank Yeah. 48:36.22 Frank Mm-hmm. 48:37.56 James so i like a.NET one and then whatever. So it's like generic it's like a generic dev flow agent that is then exposing whatever is exposing through that little. 48:39.51 Frank Sure. 48:43.07 Frank Right. 48:46.14 Frank Yeah. So like a screenshot should be a visual tree. It should be a JSON basically to start with. 48:50.58 James Yep. 48:52.48 Frank But you need something like this to learn that lesson. 48:55.71 James Yep. Yeah. Yep. 48:55.93 Frank Like we we you have to have this in play with it. Find out what the weak spots are, what the good spots are, and then you can go develop that. Otherwise, you're developing a tool without any guidance or anything. 49:06.81 Frank This is an important first step. So I'm happy to use this one for a while. 49:11.64 James It's cool. All right. Well, that's going to do it. 49:12.86 Frank Yep. 49:13.14 James Check it out. I'll put links in the show notes wherever you're watching this, whether it's on YouTube or you're listening to it on your favorite podcast application. Don't forget to like subscribe on YouTube. you're brand new, we were about to bust over the 1000 marker over there, which is really good. 49:26.95 Frank Woohoo. 49:27.62 James So share that with a, with a friend. 49:29.45 Frank We're so close. 49:29.78 James We're at nine, nine 27. 49:30.05 Frank Please tell your friends. Yes, we're so close. 49:33.09 James We're 49:33.21 Frank i don't even care how many subscribers we have, but I hate being close to a a little hurdle to get over. 49:37.30 James close. 49:38.69 Frank i like getting over hurdles. 49:39.15 James It's the goal. or ramping up on it, go do that. And of course, ah go ahead and i don't know, do all the things like subscribe and find it on your favorite podcast app. 49:49.42 Frank Sure. 49:51.93 James right. was gonna do for the Merge Conflict. So until next time, I'm James Montemagno. 49:56.18 Frank And I'm Frank Kruger. Thanks for watching and listening. 49:59.67 James Peace.