Transcription
Heat. Heat. N. [Music] Woo! [Music] Woo! Heat. Heat. N. [Music] Woo! [Music] Woo! [Music] Woohoo! [Music] Woo! [Music] Hello, hello everyone. Happy Thursday. Happy release live stream Thursday and happy release Thursday. My name is Olivia. I am on the VS Code team as a developer advocate and I'm so excited to be here with you all today.
Um, if you are new to these live streams, once a month we do a release live stream where we bring on people from the team, engineers, both VS Code and GitHub. Um, and then we bring on some friends and uh other partners as well to talk about the latest in the VS Code release. Um, so today is an exciting one because the VS Code release went out like literally an hour ago, I think. So this is really cool because this is kind of a first look. Um, if y'all aren't uh kind of caught up on what's going to be the latest, you will know by the end of this what some of the biggest highlights are, this is the chance to get to actually interact with the engineers and the people who make the features. I love this opportunity to get to bring everyone together and just see what's coming, see what's the latest, and get all your questions answered.
Um, I already see there's a lot of people in the chat, so let me know where you're watching from. I already see from the UK, from North Carolina, Texas, Mexico. I love seeing where all of our viewers are coming in from. Make sure you're using that chat all throughout so that way we can get all of your questions answered um and help you out along the way.
Uh, with that, I like to always start these release live streams um with just taking a quick look at our release notes um and in particular a um section very near and dear to our heart, the thank you section. So at the bottom of every single release notes um we always have a thank you section. Uh, if you're not aware, VS Code is open source. Um, including the chat functionality if you missed that announcement a few months ago. Um, and so we like to really take a chance to acknowledge all of our amazing contributors um, for all of your work here because we really couldn't do this without our community. Um, it really means a lot. So, if you're watching right now and you're on this list, thank you so much. If you want to be on this list, we have some really awesome contributing guidelines. Um, so make sure to check that out on the VS Code repo. Um, and then again, it's always uh I feel like every month it gets longer and longer to scroll through this, which I love seeing. Um, so thank you, thank you, thank you to our contributors, to our amazing community. We could not do this without you.
Um, so again, before we kind of dive into demos, just a quick overview of what's going to happen. We have an amazing lineup today, um, showing a bunch of different features from the release. Um, make sure you are dropping all of your comments in the chat. And with that, I know people just want to dive in. So, we are going to start with our first demo and it's going to be from Alex and Baldo from the VS Code team.
>> Hello. Hello. Hello. How are you all doing today?
>> Hi, Olivia. Doing well, thanks. How are you?
>> Good. Good. So excited to have you here. Um, Alex, I know you've been on one of these release live streams before, but it's been a minute. And as Valdo, I think that this is your very first one. Um, so with that, I was hoping you all could just do a quick intro of yourself so people know who you are.
>> Uh, hi, I'm Alex. You've seen me here once before a couple years ago, so probably don't remember me.
>> Long. Oh my gosh.
>> I think it's been that long. I think it's been that long.
>> That's crazy.
>> Um, I work on I'm a developer on VS Code and I also work on the GitHub pull request extension for VS Code.
>> Sweet. Yeah.
>> And I'm Osvaldo. Uh I also work in VS Code. I mostly work in search related stuff. And um the cool demo that we're going to show you uh today. Uh I'm actually I think one of the latest people, the latest person to join the team. Um so yeah, I'm um very new to VS Code.
>> Yes. Well, welcome to the live stream for the first time. um you've already done amazing work on the team. Uh so if y'all haven't already seen kind of, you know, if you ever follow along with, you know, the VS Code internal or iteration plans and things like that, you'll see Waldo's name on there and all the great work he's done. Alex, obviously you've been around for a little bit. You also have done amazing work, so thank you for kind of giving that overview of y'all's roles. Um with that, should we go ahead and dive into your demo for today?
>> Yeah, let's do it. Uh so I want to show first what the GitHub copilot coding agent is. So both uh Oswaldo's demo and my demo revolve around this. So quick overview of what the coding agent is. So you can assign tasks to the GitHub copilot coding agent just like you would to a human developer and it will go off and work on the task that you assign it. So here I simply assigned copilot to my issue that I got last week and it reacted saying it saw it and then immediately created a pull request to start working on making the change and you can see here that it has a reasonable title has a reasonable description and this issue and what we've been working on is adding this into VS Code. Um, my favorite part about using the coding agent, by the way, is that I can fire it off and then not think about it until I'm ready to context switch again. It's not using any of my local resources. It's just working in uh in GitHub.
>> Yes, I to it's so powerful and it's so nice. Um, you know, I think a lot of people be like, well, why do you why do you want that? like and it's like it's very nice to be able to just kick off either work that maybe you want to not spend so much brain power on, right? Maybe it's a simpler task and you just want to be like, "Okay, why doesn't why don't we just let coding agent go do that and then I'm going to go focus on this other thing that I want to do." Um, and I feel like when you think about it that way, it just like frees you up so much to do the work that you want to do. Um, so yeah, I'm super excited for people to see this. Um, if y'all haven't tried this out yet, um, if you have, there's really cool improvements from this release as well.
>> Yeah, I love that it's not taking up any of my local clones of my repo, too. It's very convenient. Okay, so you need a couple things to get started. Uh, you need the GitHub copilot and chat extensions, of course, bundled, and then you also need the GitHub pull request extensions. So once you have those installed and signed in, then you can see your issues in the issues view here. And I'm just going to search for the one that I want to look at. Okay, so this is the one we're going to ask.
>> Extension is so nice. I know that you've been working on the GitHub pull request extension for forever. Um, but I love that it's kind of getting even more like love now with that coding age integration.
>> Yeah, it's been really nice to get to focus on it again with the coding agent integration. We've been able to do a couple quality of life improvements which I'll show in a moment too uh with the renewed focus. Okay, so we're we have this issue. Um and I think it's a good one for the coding agent to work on. So I'm just going to assign it to copilot. Uh and you can also do that with this quick assign button here. Um now it's assigned to co-pilot. If we scroll down, you should see that. Well, let's refresh. Hasn't refreshed yet. We'll see that co-pilot has not started working on it. Well, that's unusual.
>> It always anytime that there's demos >> something.
>> Exactly. Let's see. Come on, Copilot. Here we go. Yeah, there we go. It's uh started looking at it and if we refresh
>> I love the little reactions that it does to the comments on here.
>> Oops. Sorry. We'll see that it has in fact started working on it. And if we open the PR here, you can see it's created a work in progress title. It has said, "Oh, it's thanked us for assigning the issue to it. I've never seen that before. That's nice." And if you want to see exactly what it's doing, you can take a look at the session log here. And this is going to show exactly what the coding agent is doing as it works on the PR. Um, personally I usually don't spend a lot of time looking at this because for me the greatest value is, you know, firing it off and seeing what it's done when it's ready. Um, but it can be useful to see what to take a look at this to see what decisions it's made along the way. Um, you can see here we also have a little one in here indicating that we have a change to our co-pilot um, created PRs here. See, there it is. Um, we can see the status here. It's in progress. little yellow in progress thing. I have one that errored out earlier this week. And then these are all PRs that Copilot created for me that uh it's finished working on and I haven't had a chance to review yet.
>> Um there is a question in the chat if we can take it just real quick.
>> yeah, of course.
>> What what branch is um coding agent working on and can you select which branch it it starts from?
>> So when you just assign copilot to an issue like this, you cannot choose which branch. However, Ovaldo will show uh way later I think where you can kick it off from your current branch even if it's not the the main branch.
>> Cool. That sounds good. And then we have a comment from Doug. Hey Doug. Um saying that this is awesome all in VS Code. Um you don't have to navigate to the web. So um yeah this is essentially kind of if people have used coding agent in you know github.com we basically just brought those that same tracking into VS Code right.
>> Awesome. Yeah, it's that's exactly right. Um, there are a couple other places you can assign the coding agent from. So for example you can rightclick and assign to a coding assign to the coding agent here. This will do the exact same thing. It just assigns the issue to the coding agent. Um, another thing you can do is you can use a to-do comment to assign to the coding agent. So, um, here we have some unfortunate technical debt. To-do is almost always technical debt. Uh, but there's a code action here. Uh, and the new one is this delegate to coding agent. And this will kick off the coding agent. And instead of assigning an issue to the coding agent, this one will give the agent the context of the file and the to-do comment and it will be able to go from there and work on the the to-do comment.
>> Very cool. And that that's new with this release, right?
>> Exactly. Yep. That one's new.
>> That's awesome. Um, another uh question in the chat. Can we have multiple coding agents working at the same time?
>> Oh, yeah. You can have as many. Well, I don't know about as many as you want. I was about to say, but uh you can have several. Yeah, no problem there.
>> That's awesome.
>> Okay. And I just want to show a couple of our little quality of life improvements that we've gotten to do. So, if you're a longtime user of the PR extension, you may have been frustrated by these uh web views, these issue and PR web views not restoring upon reload. They do now, which is uh very convenient. So, you can keep track of which one you had open last. Uh, and then another little thing that we've added is you can ask co-pilot in the chat view about the current and active PR. So the active PR is the one you have checked out. We don't have a PR checked out right now. Um, but you can also ask it about the open PR, which is the one that's currently visible in your editor here. So I can say uh let's see summarize the code changes in the open pull request and the hashtag open pull request context will tell co copilot chat all of the stuff about the PR that's currently open here and then of course you need to give it permission to read the open pull request because we don't know what could be in here. Let's just allow that. And it'll take that information from the the open pull request and be able to Oh, there's not there aren't any changes yet here. So, it doesn't have anything to summarize.
>> Okay.
>> That's very cool though. So, you can kind of just like almost like check back in periodically too on the progress then, right? Well, like like if you're kind of already in your your zone in chat, you can just be like, "Oh, wait. Let's go check back in on the coding agent, see where it's at.
>> Yeah, you could if if it's open in the web view here. Yeah. Um or if you have it checked out, then you can refer to the active poll request. Yeah.
>> Awesome.
>> Okay. So, I was hoping it would be a quick one, but it's still working on it. So, let's take a look at one that we've that I've started in the past. Um so, I'm going to check out this PR. So, this is one that uh I asked Copilot to work on for me uh I think yesterday. Um it's a pretty simple one. It's just a string change, but we'll check it out. Um, just like always, like with any pull request, you can check out um, your pull request using the PR extension. And this will check out the branch that the PR is on. And then you can build and try the changes out locally. Particularly useful for the co-pilot changes as it could have done anything and you want to see what it's done.
>> Um, so here, let's see what it did. I mean, it was a very simple change. That is basically what I wanted it to do. But let's just ask it to be more verbose. Uh, let's spell verbose, right? Although copilot probably doesn't care.
>> And this will kick off the coding agent again to start working on this change that I asked it to do.
>> Kind of do like a back and forth essentially.
>> Exactly. Just like you would any pull request from a from a co-orker, from a contributor. So, you can see yesterday it started work and then it finished it. And here's me just reviewing it now, asking it to be more verbose. There are the eyes again, saying that it's seen it and it's started working. Uh, and it looks like it saw it, but it hasn't quite started working on it yet. So, we'll take another refresh and see if it started. And here we go. It's started. Um, and we can see back in the session log chat what exactly it's it's doing to work on this change.
>> Very cool. Um, kind of going back to to one of those questions earlier about can you have multiple coding agents um running at the same time? How do you personally kind of manage uh going between those multiple sessions?
>> Well, so what I usually do is I'll go through my notifications and see when I'm ready to context switch, like I finished working on a feature or a bug, I'll go back to my notifications, see what Copilot, see what see if there are any notifications from Copilot and then check those out if uh if that's the next thing I want to work on. But yeah, usually with notifications.
>> Cool. That makes sense. Okay. So, you can kind of just like
>> The other way though is uh you can keep an eye on it in here and once there's a change to one of these, you will get the little badge on the view. So, if you're a little more if you want to be notified more more quickly, you can use that.
>> Cool. Um, and then there's some good feedback in the chat um about the open pull request um saying it would be nice if the open pull request was auto added as context um in chat. So, some good feedback there.
>> That's a good idea. Yeah,
>> thank you, Peter. Cool. All right. Well, this is very awesome. Um, again, I've used this a lot. It's super handy for um, you know, any of that work that like you're saying Alex you just kind of want to like okay go do this and I don't want to look at it until it's done and like we'll review and I can go focus on other things. Um, and then yeah, again, while it's not using your local resources, super handy. Um, so I know there's even more in this release. Do you have uh other uh features you want to show in your demo?
>> Well, actually what I wanted to do was hand it over to usaldo to continue demoing other ways that we've integrated the coding agent.
>> All right, that sounds great. Let's do Valdo.
>> Cool. Uh, yeah, I saw in the chat that uh people were asking if this is only GitHub and um the work that Alex showed it is uh a GitHub service, right? But um we also built a view within VS Code for you to manage all your agents and all your agentic flows, right? Like people are using agents more and more these days to like do all the work. Um, so you can see you're familiar with regular um propil chat here and you can be um people usually go into agent mode and say like uh change the port to 6000 for example. Uh, and we're very familiar with this. Um, it's just going to go ahead and do the change. um you can accept it, you can keep the the change and that's pretty much it, right? Uh, so we built this new view here uh that you can enable by setting this setting uh agent sessions view location to set it to view and then this little guy will show up here. And then what this does is just helps you manage all your chat sessions. Everything that you do in chat, whether it's uh on the chat widget here that we showed or if you create multiple um chat editors, they will all show up here. Um, and we'll keep also a history of all your previous chat sessions. So you can just go back and see like why did I do this? I don't remember. Uh, so you go into the chat and like you can see the history and everything.
>> super handy.
>> Yeah. And this um this is pretty cool. It will let you manage all your agents locally. Um as well as your you can see here uh you have the GitHub compiler coding agents which are the ones that Alex was showing. And let's go ahead and uh click on this. Oh, I think people cannot see it. Um, but This is strange, but you can click on on these um context menu uh to select show rich descriptions. And this will bring a little bit more context into your um agent um and all your agent uh agentic flows. So you can see here it tells you the PR number, it tells you the diff um which is pretty cool. Let's go ahead and open it. and it will create this um chat editor that shows you all the work that it's been doing um what it did um and what uh files were modified. Let's go ahead and kick off one from directly this view and say um make a really nice uh hello world app in React. See what happens. And so this will kick off a GitHop coding agent and it will show up here. And then it's kind of like a way for you to manage all your um work as synchronously. Uh, while this uh happens in the background, let's go ahead and I I want to show you the way that I do it the most. Um, the way that I kick off new agents um which is usually I say go into as mode here and say if I wanted uh to build a really nice react app in this project how would you do it? Give me a fan. Right. So what this does is just lets the LLM work on a plan suggest you multiple things and then the the cool thing is you can modify the plan as you go right? Like if does something that you don't really want wanted to do you modify it and you say like, you know what, don't go that route, go this other route and then at the end once you have a plan that is that you really like um for example here, let's say is doing the React app setup which is like all the dependencies which is really nice. Um, even monitoring analytics, great. Um, build and deployment to configuration, all of this. I'm like, "Oh, this sounds great. This sounds great. Go ahead and oops, implement it." Right? And then you have this little guy here that you can click >> and it will send all this into your um task. And so there's more context to your um to your coding agent task, right? And it's asking here and I think in the um in the chat uh Matias asked about if you can do it from a PR, right? Or like from a from a different branch. So you can and you can include your changes and it will create a new branch with your basically your um local changes and then push the the the task. Right.
>> Awesome.
>> Say include the changes and >> and is um that like little cloud icon to delegate to coding agent is that available to everyone in stable now?
>> It I believe it is available to everybody in stable.
>> Um, you need to install the GitHub pull request extension. Um, and yeah, it'll start working in the background. Um, so it's going to take a while. So, let's go ahead and open this one again. You see all your session logs and everything. I agree with Alex. I usually don't pay too much attention to this. I just want to see the diffs and like all the files that were modified. Um, once we have them, you have these helpers here to see your changes to apply your um changes locally to your current um working directory or check out the pull request. Um, you can also go here and click on this one and it will bring up all your changes in a multi-de um editor which is pretty cool to see everything that it worked on. Um, and you can also right click on this and uh check out Oh, you cannot see the right click. Well, I encourage you to right click and to see the the um context menu here. Uh, there's multiple actions that you can do. Right now, I just click on on check out pull request and you are now on this um on the context of this pull request which is pretty cool. You can merge it. you can keep iterating um asking copilot to do more work um and yeah
>> cool so um you kind of ended up showing this is one of my questions was right we saw all the cool view in the GitHub poll request extension that Alex showed you're showing right now and then we have the chat sessions view um so do y'all usually think of those views as like the chat sessions view is you know you're just getting an overview of like what's the status what are all my different um chats I have going and agents going. Um, and then as soon as you're actually reviewing the PR, then you kind of come back into the GitHub pull request view. Is that the flow?
>> Yeah, I think that's the way that I do it most of the time. Once it's it becomes a a PR that I want to like submit and people for reviewing and all that. Um, I I use that. Um, and one little thing to to notice is you can see here in the status bar, uh, it will tell you about your, uh, sessions and your agentic, uh, tasks, how they're doing, they're still in progress.
>> You can just like have them here and have a a visible uh, notification to be like, oh, they're done. I can go back and take a look at them.
>> That's awesome.
>> Yeah. Yeah. Um, one question um on I I believe this from the local chat sessions with the history. Can you search the history for your local chat sessions?
>> You can't search history, but that's a great idea.
>> You might be able to like So you can do the the controllf just to do a tree search if if you if the keyword you care about is in the the title. Um,
>> I don't think so. I don't know. That's a great idea, though. I feel like Oops. I think that that was a a great feedback and a great um segue into we're hearing feedback all the time. And this is an experimental uh setting, but we love people to try it and let us know what they what they think, what they like, if there's something new that we could build that it will help um kind of like make this better. We're all he all ears and and we love we love feedback.
>> On that note, where is the best place for people to file feedback? Is it in the VS Code repo?
>> That's right.
>> Cool. Awesome. Sounds good. Well, I know that there's a lot and a lot of cool new stuff here. I feel like every month um the integration get just gets more and more seamless. Um, there's a lot of love for um all of this in the the chat saying they love the view and just kind of the seamless way. Um, I love kind of what both you and Alex mentioned where like you you um think of it as just, you know, you delegate to coding agent and then you kind of don't think about it. It really, it's kind of shifting to like viewing coding agent as just another teammate, right? Where you know, maybe you all talk and you say, "Okay, this is the feature you need to do." And then you go let your teammate do it and then you come back and you review it and you have a collaborative session there. And so just really shifting to that mindset of it's an AI teammate, uh, I think is a really powerful concept.
>> Yep. Yep. And if you have uh real life things to do like walking your dog and stuff like that, you can always just send it to a coding agent. And
>> yeah, if you actually want to leave your computer sometimes.
>> Cool. Well, this is awesome. Um, I know there's a couple other questions in the chat, so we'll try to get those um just async. Um, uh, so thank you all. Keep keep questions coming. Um, thank you Alex Waldo so much for coming on. Are there any other um, you know, things on the road map you want to touch on before we say goodbye?
>> Nothing.
>> We're going to be building this. Uh, we're going to be iterating over this and so yeah.
>> That sounds great. Well, thank you all so much for coming on and demoing that. Um, lots of love for that and I'm sure we'll have you on in the future too to see even more improvements.
>> Thanks y'all.
>> Thanks Olivia. you.
All right. So, that's going to bring us to our next demo from Harold. Hello. Hello, Harold.
>> Oh, it's me, too.
>> Hi. Good morning.
>> How are you?
>> Good. Good. Um, excited to have release day. It's always a busy week to get
>> You're busy.
>> Yeah. Usually um for those of you who maybe uh are familiar with the release live streams, usually we have kind of like a week separation between the release going out and the release live stream, but today it was all within like an hour of each other. So, um, it's been a busy week, but an exciting day. Um, and cool to kind of be able to have the whole team uh or some of the team come on and demo this hot off the press essentially.
>> Yeah. Yeah.
>> Well, I know that you're kind of a familiar face around here, but we have new faces as well um in our viewers. So could you just do a really quick overview of your role on the team and then we can dive into your demo?
>> Yeah. Hi, I'm Harold Kushner. I work on VS Code as a product manager um and focusing on all kind of things from customizations to MCP to agent mode um to onboarding. Yeah, a lot of lot of different parts. Um, and it's always super exciting to talk to developers and uh show it off and get feedback. So that's why I'm here.
>> Cool. All right. Well, um I know you've been on to show several different things in the past. What are you showing off today?
>> Yeah. Let me show what I got. Um should have done the screen sharing before.
>> No worries.
>> Some part of live, isn't it?
>> Yes. Also, I didn't didn't do the the pre pre-show, so I'm
>> Yeah. Well, like you said, it's a busy day.
>> There you go. So, I'm I'm showing off agent sort of Dean to give you some context. Um, we have this like what does it actually mean? Like what does an agentmd? So we have this request actually came in a while ago that people struggled with of like oh my god as soon as I start using different agents and people love playing around with different agents like it's a it's a great way to get a feel for AI and and trying out what's coming out. But and every time to make these really work well you want to give them some grounding in what your code base is about. how to be an effective contributor just so like you onboard your developers. Um, and that's kind of if you want to learn more about that. So we have a lot of ways that you can already do this. So we have uh these github/cop instructions files. We have instruction files that I can show off and now we have agents and the problem that solves that you can use all these to make copilot work really well. But then if you want to try out another um agent product then suddenly like oh yeah now you need to create this different kind of file and they're kind of the same concept some kind. So we
>> the idea was that this this is the most easy to standardize. This is just a markdown file in your repo talking about your codebase. Um, some say oh but you already have a read me. Shouldn't a readme be that? Some say you have a contributing MD. Uh, my my take is that I looked at contributing b files and they're often how to file issues, how to how to be as a human and effective contributor like oh like where to look for issues, how to find good first issues. It's not really about writing code.
>> So but these these are really around guiding the AI. So maybe as I walk through it, I like to drop some of my personal nuggets of like what should go in there and what what shouldn't. Um, there's also the these all still exists. Um, this is now uh more of a standard even though it's like in the open AI or so. So it's not fully um really hydrated place to work on it but but people make an effort that this works reliably and the same way across different products. Um, these will still exist. uh we might converge over time to the uh to like a shared markdown file. Um, but then these are more powerful so you probably want to uh keep them over time. So there's still a way to combine the the different ones and I'll try to explain it as we go. But yeah, this is what agents is. Um, big part of actually deciding on agents.mmd is making the domain available because every time in some products when you say agents.mmd it will put a link there and you click it and
>> if it's a random website um that doesn't help adoption
>> and yeah, it's it's really about giving agents um instructions then keeping the rest of documents focused for humans and then you can really focus on on that agentic flow how how the agent is supposed to work every time you make changes. Also fix the tests like things that the agent keeps forgetting. That's usually the place you want to start.
>> Okay.
>> Um, yeah, so the issue is now now closed because we we shipped this um and what we shipped is we're first going into the an update pending. Oh no, I want to click this. Um, don't click it. So we have this use agent 7D file. So if you if you don't if you find it confuses the LM because it will load both files. It will load the copilot instructions file and the agent MD file. If you have projects where people like sim link the two then you will get both and it's just adds tokens and
>> is there like one gets precedent or is it kind of just like merges them all until like when the agent actually ingests them? If you have two files
>> right now at Expose because we yeah we haven't done anything smart to say like oh this is the same file or what is more up to date and that's what all these tools struggle with like you can as a as an agentic product support multiple customizations and oh we're going to look at cloudd and we're going to look at that but then you end up they might just be copies from each other might one might have been copied that file way back but hasn't updated so one is more up to date than the other uh maybe you take the bigger one because it has more context but in bigger one might be just not as updated. So there's no no good way to solve this. I think over time we'll just have to probably converge to one or pick favor. If you find problems with that, we love issues and understand what people expect. Right now we do both because that's
>> that's one way you can have co-pilot instructions that are more optimized for co-pilot and then agents.mmd that optimizes for all agents. That makes sense. the idea.
>> Um, and how this looks like, um, this is my, uh, spelling app I just created two days ago for my kid. She want like fifth grader wants to do more spelling. I was like, I I I will encourage that and make you an app. And she kept asking me every night, is it done yet? Is it done yet? So, one one
>> did this in one hour. And that's that's one pattern I think to to follow. a like the pattern of just making apps to solve problems but b um the agents format that is heavily focused on on the text tag and really grounding what's the versions what is the react so the the otherwise don't expect the agent to know all the time because like it to find out the latest version of indexjs has to look at your package JSON and the other things so it's nice to call it out uh break out where things are at in in the repository uh what the app is actually doing and how it's coordinating directory. So it's it's very dense. This actually I I didn't write this. Um, I ask AI to write it. And the way I do this usually there's a this settings button up here and then I generate instructions. This will still generate GitHub instructions.m MD and it will probably not do a uh really deep job. So it will get an existing instructions and then actually look at HSMD. So in this case it doesn't do much. But if you run this on on your repos that don't have instructions yet, it usually does a pretty good job of looking at different angles for your repository and then getting you started with something that uh you probably want to remove things as well. So I wouldn't necessarily say like oh this is everything it will generate is is amazing and you should take it uh but really reduce it down to the things that that you see the AI getting wrong as well.
>> So yeah, another pattern is to link to other files. For example, I put my product spec that I also wrote with AI into a product.md folder. This is basic research using perplexity and just figuring out like how how would you do this? What technologies would you use? What patterns? It had like uh space learning, right? This whole uh simplified SM2 like space repetition which is a concept for learning words. Um, it put that in here and like broke it down a bit more. um has a little bit of of the stack, but otherwise it's more focused on like what this is about, who's the audience. So it helps the LM to be a better developer because it knows about the product, right?
>> Um, so yeah, that's that's kind of the gist of it. It's it's now shipped. Um, I would start small like don't overload it. Link to other documents as needed um as one pattern and just yeah, see this as a living document. I think that's that's one of the areas and ask the LM to update it. like I we might actually do have something like a slash remember thing eventually um which I don't mind now but I usually just say like from the like cover any alertings for mistakes back into agents.mmd or into like update now that we added this feature make sure to update product MD as well um it's it's trying to do that here basically keep this updated with any changes but that's one pattern just as you see things shifting as it seems that it makes mistakes, just ask it to put it back into the document. So that's how you can treat this as a memory as well.
>> Awesome. Um, so there's some people like I think that like custom instructions and customizations in general I feel like is a super super underrated feature um in VS Code for kind of customizing those AI responses. Um, and so I think you know, some people don't even know that you could do custom instructions. And then now we have agents MD in the mix too. Um, for someone who's maybe kind of like starting out with this, what would you recommend is the best file or process that they should be focusing on to kind of get started and making sure that they're tailoring it or does it not matter? You could kind of start with either if you're kind of just starting out,
>> right? So, general instructions gets you started.
>> I just did that and then copied it over into agent. I didn't actually use any other agent in this repo. I just wanted to have it in a place that where people are not complaining, hey, this doesn't work for me. because using the copite instructions format.
>> So I think I do want to probably move as there's no big difference between the two. I think um maybe as a as something to point out we we don't support yet that they go into subfolders right agentd could also live for example in my components folder and describe how we want to write components and that would only be loaded when the agent works in that folder.
>> So we we still have to fill in some gaps here. So as we fill in the gaps um this will become a bit more powerful than the traditional copa instructions. So it might be a reason you want to switch over. What we also have um that is more powerful is these these other instructions where basically like this is uh front-end instructions for writing tsx. So they're only included when the agent writes tsx files or has tsx files in context. So there's a bit more other concepts as you scale to a larger repos or scale to a more complex maybe an older code base that you want to be um that you want to break those up a bit with specific files. But other than that is the great starting point just with that file >> either autogenerated with that menu or just the keeps making these three mistakes. are going to put these three mistakes in and sell it tell it how to do it better. And that's that's the best starting point. Like this is already very long and probably too long. So I would I'll probably go for something that that is still like fits within one editor page and then and then work from there.
>> Okay, that makes a lot of sense. Cool. Um, there is uh one question in the chat. Um, is MD appended to the chat each time or is it just added to the history once? It's referenced uh close to the system prompt. Um, you can actually see it here. So we have if you look at our requests um you can look at all of them. So that's cool. Um, we have the should. So it like somewhere there in the middle to have the attachment. So it just it's treated as an attachment with the reference for where it's at. And that's that way it can treat the instructions like everything under this folder is being used. So yeah, there that's the takeaway like don't make this super big because it will eat into your context. Um, and use links so it like as needed oh if I need to think about a product let me pull in the product details. So that's that's one way.
>> Um, and then side note uh you have a copilot chat debug view up. Could you just I think that's a really cool thing. I know it's not related to agents. MD, but if you just want to do like a quick plug for how you pull that up and that because a lot of times we get people being like, "How do I know what's actually going on?"
>> Right. Right. Yeah. If you um chat debug view, I think um that's a command copilot chat debug view. Just run that and it will pop into your view. I think that's the quick way to get into it. And then yeah, it basically shows every tool call, every agentic flow you will see show up, including the tokens and everything else. So it like what's interesting always is how many of these tools will be added up front. So big chunk of that initial list is just all the tools you're using. So it's another reminder to kind of uh make sure you just have the tools enabled that you actually need. Um, otherwise we'll optimize it for you. Um, even if you have too many MCPS like in my case I have selected down to a view but if I have more I have 242. So that would be a lot of tokens. Um, but we actually reduce it down for you. So, so it works fine as well and it still runs them as needed.
>> Cool. Awesome. Yeah, I think that that's a really great thing. And um, you know, Harold mentioned this the previous demo I mentioned like we're always looking for feedback as well. So, if you're ever seeing things that don't look like they're acting correctly, this is a great view to also look at as well. Um, just to kind of be like, oh, what's actually going on?
>> Um, cool. Well, yeah. What? Anything else that you want to talk about with agents.md or that you want to show off your cool spelling app?
>> Um, I mean we have a bunch of stuff we added for modes as well. So if you if you check out the release notes, if you configure modes, they can now um or prompts especially. So I I have for example here modes that I I started defining for myself. So if I go in and look at implement, it's a very simple one. This one uses GP5 mini which is now out of preview which is cool. So boom, another one. Uh, we shipped more models. Uh, sneak that one in. But now I can actually, for example, create a prompt um for that one. So I can go into prompt files, create a new prompt files. Um, do maybe my user folder and then implement implement draft. So I want to use that implementation flow like that mode, but I want it to to be a little faster. So I can now actually pick mode. So and then in this one um implement uh oh yeah, and initial version perfect, yeah, that one. So um 11 and copilot rates for me. So now now I have um now I have a mode which defines the kind of system prompt the persona of what I'm doing and I can
run the this implement draft thing to do something else. For example, a welcome page. So I can use I can reuse those kind of aentic primitives a bit better and move from prompts into modes and combine like maybe the prompt the mode tells me then to use another prompt I can use into another mode. So you can think about chaining those as well which is really cool. That's something we're exploring.
>> That's awesome. Yeah. Um and everyone definitely check out our docs. I know um if you're kind of new to custom modes, custom instructions, all that. Um yeah, check out the docs. Um, and uh, it does a great job of of kind of doing overview of what the differences are, when you would use what. Um, and and uh, then also obviously check out our release notes, too, so you can see exactly what's new with the current release.
>> Yeah.
>> Cool. All right, Harold, anything else you want to touch on?
>> No, that's it.
>> All right. Well, thanks so much for being here. I know we'll have you on again in the future. Um, but we really appreciate your time. I hope you have a great rest of your day.
>> Thanks, everybody. Bye.
>> Bye. Alrighty then. That's going to bring us to our next demo from New. Hey, New.
>> Hey, Olivia. Thanks for having
>> Oh my gosh. Of course. How are you doing?
>> Yeah, I'm super excited. This is my first live stream with you all. So,
>> I know. I love that. SP was his first as well. It's your first. We love having new people on. Um, so with that, that's a great segue. Um, if you want to do just a quick intro um of who you are and what your role is, that would be awesome.
>> Yeah. Hey everyone, my name's new. I am a PM on the GitHub copilot team. I've been at GitHub for almost a year now working on different projects like extensibility, GitHub coding agent, um co-pilot auto model selection, and I think one of the best parts about my job is that I get to work very closely with a ton of the folks on the VS Code side on projects like auto, which is why I'm here today.
>> Cool. All right. Well, with that, should we go into the demo? Um but yeah, I love that we we we always try to have like at least one or two GitHub people on these because um you know the the cross collaboration of our teams is really awesome to see. Um so yeah, we're very excited to have you here
>> for sure.
>> Yeah. So I'm sure a lot of you have struggled with rate limits or being overwhelmed by all the various models, what they can do, what they could be best at. I really feel like there's a new model that comes out every other day at this point. Um, and so this month we're very excited to announce auto, which is the beginning of our solution to that. And auto is built with to provide you with the best available model at any given time. So things like transparency of model use and cost are top of mind for us and built right into the product experience. And you also get a mix of premium and included models like GPT5, GPT5 mini, Sonic 4, others like that. And the best part about this is it's incredibly simple. So just head into your model picker, select auto, and engage with co-pilot. And once it responds, you'll be able to see the model used and the multiplier itself. And so for my use case today, um I actually just moved to New York. And so part of my move, I bought a bunch of new plants that all have different needs. So um in this scenario, I have a very simple kind of start of an app that I've been vibe coding with co-pilot on the side to help me understand like when I should water them. But I think the next step here is it'd be really great if I could track the growth of them as well. And so for something like this, I don't really care what model I'm using so long as the output is good enough and I have a reliable model to use right now. So this seems like the perfect thing for auto. So what I'll do here is auto is available in any of the modes that you want to use. So I'll go ahead and use agent mode. Select auto here. Um if you hover over you can learn a little bit more about like what auto does. So, let's see if Copilot can create a plan to add a new page for tracking and growth.
>> I feel like I need this app.
>> Yeah, I'm kill my plants all the time.
>> Yep. So, while coat's working, let's talk availability. So, auto is rolling out today to all Copilot free, pro, and pro plus subscribers. and it'll soon come to Cop-ilot Business and Copilot Enterprise.
>> Okay.
>> And what's even better is for Pro and Pro Plus plans, when Auto chooses a premium model like Sonnet 4, for example, it'll be build at a discounted rate. So, I think that's huge. Um, and we're really excited about that to kind of get more of y'all to start using auto providing some feedback here. Um, and I also mentioned that, you know, this is just the beginning. And what we're envisioning for auto is that it not only optimizes for availability, but your task and your preferences.
>> So, we know that, you know, developer choice is incredibly important. Um, and there are expectations that, you know, sometimes co-pilots just work. I don't really want to be able to sit there and think through all the models that I could use. Um, and auto is kind of our way to do that to help you stay focused um on your flow. That's something that we're already working towards.
>> That's awesome. Okay. So, so like right now as is um you know in this initial roll out um it's focused more in that availability piece um for routing your uh which for picking which model um but kind of taking in more of that context of like okay when would this make sense? I think that that's so valuable just because I mean especially I hear a lot with people getting started with AI it's overwhelming a lot of times to just kind of be like okay well I heard about this model like what does that do like I don't know and then and and and yeah it I feel like just having that automodel selection helps lower kind of that almost like intimidation factor of okay how do I know what I'm doing is right like how do I have like I don't want to take the mental effort of trying to figure out okay is this the best model for my task um so I think that that's awesome Awesome. Do you have any um uh anything that you can share about like the road map for when that sort of extra implementation would come? Is that just kind of like in the next few months?
>> Yeah, it's definitely going to be in the next few months. So, right now we're focused on like making it enterpriseg grade ready for our business users. We'll roll that out soon. And then we're working on being able to dynamically change this based on your prompt, whether it be within the session or um outside of the session itself.
>> Okay,
>> cool. And then there's a question, does auto respect the selected models that I have, like only the selected models that I have?
>> Not the ones that you use within VS Code, but um if you are an admin or you have some policies that disable specific models, auto will respect that.
>> Okay. Yeah, cool. Good to know. Um, and then kind of, you know, right, we're talking about all the models in the drop down. Um, is auto going to place replace the models that are currently there? Um, or is it just kind of always an extra addition?
>> Yeah, that's a great question. So, for the first couple months that we have this, auto will not replace any of the models that are still here. So if in any way like you're using auto, you don't really love it, you can always go and use any of these other models that are available to you on your plan and what you've selected. Um I think there might be a world where you know we kill it with auto implementation and actually works for your task and maybe it does kind of replace it for potentially our co-pilot for users, but that's just something that we're thinking towards, but no plans to replace it at any point right now.
>> Awesome. Um and as people try this out, what's the best place to give feedback um on what they would expect from the auto model experience?
>> Yeah, so we'll have two different um places for you to provide feedback. The first being the VS Code repo and then right after this I'll be publishing a discussion post on the GitHub side. So if you have any chatter or any feedback ideas there, please feel free to send it over.
>> Cool. That's great. And then I think you mentioned that it's um rolling out to individuals first um but then other plans throughout the month.
>> Yes.
>> Cool. Exactly.
>> Okay, cool. Is there I mean I feel like this is like something that people have been asking for and so I'm I'm like really excited to see this. Um Doug, I see you're in the uh chat saying this is a great release. Time to kick the tires. Um uh is there anything else you want to share about automodel or um just any insights from the team?
>> Um I think the last thing is um the way that you can see what model is used and the multiplier just hover over the task here. Important to note that um we will be keeping the same model within a session. So if you want to see if you can try a different one, just go ahead and start a new session. I think that's best too for those longer running chat panes. You know, the agent might lose some of that context. So it's a good practice in general.
>> Cool. And then I know you mentioned um that auto's kind of doing like a discounted um rate when it selects one. Is that the long-term goal of that or is that kind of like in this initial roll out?
>> Um we do plan to keep that long term. So, anyone on any of the paid plans will be offering that. It will be the same for copilot enterprise and um business as well.
>> Awesome. That's so cool. Just another perk of using this.
>> Yeah.
>> Cool. All right. New. Anything else you want to touch on?
>> No, I think um my ask here is just give it a try. Um you might see it pop up in your model picker in the next couple of days or so. Um and thanks for having me on.
>> Cool. Awesome. Thanks so much for being here. Excited to see where this goes. And yeah, I'm sure we'll have you on in the future, too, when we talk about kind of what those next phases are and imple implementation here.
>> Looking forward to it.
>> All right, thanks. Have a good one.
>> All right, guess what, y'all? We're not even We're not halfway through. Like, there's still so much more. Um, so with that, I'm going to go ahead and bring on our next guest. Uh, Pierce will kick us off.
>> Hello. How's it going, Olivia?
>> Good. How are you?
>> Good. I mean, like obviously I know everything that's in the release, right? But when I sit through this call and I was just like backstage, you're just like, "Wow, there's actually a lot in this release." And I was reading through the release notes this morning. It just makes me super excited.
>> I know. No, I feel the exact same there. There's always so much more than you think even. Um, and I mean we like that was just like three three people's demos, right? That's just like I feel like touching the surface of everything that's in the release. Um, I know, right?
>> Check out the release notes for sure. um y'all to see like everything that's in it. Um but I totally agree. I feel like people, you know, right, we're in the product every day, so we kind of like feel like we are an expert, but there's always just so many things like, "Oh my god, I totally forgot about that." Or, "Oh yeah, that made it into this release." Um so yeah, we get excited about it too, y'all.
>> It's so fun. I mean, like literally like I go to standup. I look at all the merge pull requests every day. I I try I use VS Code every day, VS Code Insiders, and like I still manage to miss things. So, yeah.
>> Um, all right. We're gonna we're gonna share a screen.
>> Cool.
>> Um,
>> um, and then Pierce, I know probably most people know who you are, but if you could just give like a super quick intro in case we have any uh, new folks on the call for
>> Yeah, I'm Pierce. I'm the product lead for VS Code. So, I joined the VS Code team last December. Um, and yeah, um, I love engaging with all of you on Twitter. So, I'm at Pierce Vogen on Twitter. I'm also on Reddit from time to time. So, uh, yeah, if there's ever any feedback you have about the product, of course, you can use our regular channels like GitHub issues. Um, but we also look at we look at all the YouTube stream comments, we look at Twitter, we look at Reddit, uh, we look at Hacker News. So, if there's any feedback you ever have, please don't hesitate to reach out. Also, this is awkward, but I'm have to restart Edge permissions. So, I'll be right back.
>> Okay, that sounds good. Okay. Well, in the meantime, um what I actually want to do then because we were just talking about this anyways, um is just go through our release notes again. Um so, let me go ahead and share my screen out real quick. Um just so y'all can see everything um that we're talking about, right? Because as Pierce said, there is so much more than you think. Um and there's actually, if y'all haven't kind of been in the release notes in a little bit, um we even kind of changed the uh format a little bit. So we made it a little bit clearer of some key highlights that you can jump to really quickly. Um and so you can see we're actually we've already covered some of these, right? So letting VS code select the best model with auto model that um uh new just demoed. Um and then this contribute models through VS Code extensions is actually what we're about to talk with um with Pierce and friends as well. Um so yeah, definitely check out these release notes. there's a whole list um that can go here and then as Pierce said like feel free to reach out to him, reach out to me, reach out to anyone you've seen on the on the call today. Um and we're always happy to kind of have that that conversation with y'all as well. I think Pierce is back with that. Let's see if we can bring him on.
>> Hey, Pierce.
>> Hello. I'm back. I learned how permissions work. It's always at the worst time. Like also like I'm always joining calls with like customers who work obviously in different organizations and use different collaboration tools and I'm like okay I got WebEx, I got Teams, I got all the permissions to everything, right?
>> um >> yeah, classic Mac OS. Okay, I think question mark. I'm sharing my screen to screen to stream now. So we should be good to go. Did we introduce what we be showing off?
>> Um no, we I did like a quick little teaser while you were off. Um, so if you want to kind of really give the overview, Pierce, that would be great.
>> Yeah, sure. Um, okay. So, we're just in chat here. Um, actually, like I was joking with Cynthia, who's on our team, like right before this, like I was literally using agent mode to fix a bug in my demo. I was like, how much more time do I have? So, I got something going right here already. Um, but I'm in agent mode. Um, so we just saw new show off auto mode. So, that's in the product. Uh, we recently shipped GPD5, GPD5 mini, uh Groc code, um you know, we have Jim and I 25 Pro. These are all the provided models you get with your copot subscription. I think it's pretty cool. You get all that for 10 bucks a month, right? Or more depending on your plan. Um and also BTUs, if your model picker doesn't look the same as mine, you can go manage models here, co-pilot, and you can actually like go in and say, "Oh, I never used like before many or whatever, right?" Um Okay, let me just get it out of my list. Like and so for me these these models are like my daily drivers and increasingly like auto right for the reasons that N showed off. Um but like it's very common that people want to use models that we don't have in the box. So how do we enable that? Um so bring your own key. Um so we've had bring your own key for a while. Um so if you go to click the models drop down. This looks like a bug. Look at that theming difference. See this is also why I love the live streams. Olivia gets
>> Yeah.
>> Yeah. It's like it's like magnified. As soon as you like demo to a wider audience, you like immediately see like little bugs and little things that happen.
>> Yeah. I mean, it's kind of funny. We're hiring for like a product manager right now and someone asked me to describe our philosophy and I was like, well, it's kind of like like I used to be an advocate, a dev advocate back in the day when I worked at Samron and it's kind of like advocacy driven product management. Like we take the product, we go show it off. We have our own learnings from building the demos. Like customers give us feedback, developers give us feedback from the VS Code community and we make the product better in that way. Uh but anyways, um so this list, if you've used this before, uh has gotten a lot longer. So before we used to have like some built-in BY providers. Uh bring your when I say BY, I'm just saying bring your own key. Kind of like bring your own beer, BYOB. I guess we love it. Um Burke and I are big fans of 0% beers. Um so if you know any good ones, please send them to us. Um but we had some models, some model providers already in here. So we had like Azure, Anthropic, Olama, Open Router, um Google for Gemini. So like we had some built in but I think we realized this process doesn't scale right. Um so a couple problems like one we have to personally go and write a provider for each like different possible provider that exists on planet Earth. Um and that is obviously quite expensive. And so we would frequently get feedback like oh like why don't you add these people or why don't you change this so that this works and it's like we would love to do that but there's just such a long tale like there's so much happening in this space that like the amount of providers we would have to support is it's like insane right
>> um
>> so that doesn't scale and the second reason is like while we read docs and we try to understand like the different providers that we integrate with um like it's hard for us to say we're going to write as good as an open router provider as the open router team who understands all the nuances of their APIs, what exactly to show off, right? So, we wanted to basically say, how can we enable the community to contribute models to GitHub copilot um and so we've introduced this new bring your own key API and so essentially you can build a VS code extension and uh you can ship that VS code extension and basically once you do that it can contribute a language model uh to GitHub copilot. You can see I have a couple in my list here. Um, and they'll show up here. And then so you can see I have like Cerebrris, hugging face, AI toolkit. Those are new as of today. Um, and so those are extension contributed bring your own key provider. So those aren't actually built into VS Code or GitHub co-pilot chat, but they're actually coming from an extension you've installed, which is pretty cool.
>> Cool. So you literally just can go install the extension as normal and it'll show up in the directly.
>> Cool.
>> Yeah. So look, the hugging face people have been updating. Look at that beautiful icon. Um uh but but like I just installed that right before so they're doing like lots of live updates but like
>> I think that that's a really cool thing to call out too, right? It's like you know not just is it on the VS code team when we were managing all the different providers like okay we need to figure out are we going to do it as well but it would take us longer as well too right whereas the hugging face team is just they're able to just do us right now we get those updates right away you don't have
>> right a lot of time even if we didn't even if we had the time like the extension can ship whenever if there's a bug it gets on the release train whenever you ship an extension update right
>> um whereas VS code like while we ship insiders every day we don't ship stable that often so if there's a problem in stable like sure we'll if it's a major issue we'll get into a recovery release but not always.
>> Um so yeah super cool like um here's the Cerebrus extension. Um so like one bit on discoverability you might be like pierce that's cool but like how the heck would I know to go install the Cerebrus extension because it's not immediately obvious from this manage models experience. So I can come in and I can basically go I want to show like the ideal experience we're working towards. Okay. So, you know, if you go to the color picker, like we have like browse additional color themes up here. Um, and you can kind of search and this is actually fetching real themes from the VSS marketplace, right? Um, and we also have some built-in ones here and then we populate with some like other ones that are kind of popular from the community. So, we want something similar here where I could type like for by I could type like cerebras and even though it's not like showing by default in this list right here, it will actually get populated in. So the idea is like even for extensions contributing models, we want it to feel like it's built in and then we'll do the work to make the discoverability of these things better over time.
>> That makes a ton of sense. Um yeah, I love that that flow. Um do you have any sort of like insight on to like when that sort of flow might land?
>> Uh well hopefully this next month. Um we have actually an upcoming VS Code team week. The whole VS Code team is getting together. We're kind of all over the place between Europe and the US and so we're all getting together for kind of our annual thing next week actually. So, um this month is a little bit of a weird month in terms of commitments for delivery because we have a lot of people traveling and we're doing we obviously when we're together want to spend time together. So, um yeah, we'll see. But the plan the plan should be up on Monday and I'm hoping we can do this. Um there's some other
>> near future though at least six months out thing.
>> No, no, it's not. And if it's gonna take that long, I'll vive something and submit you.
>> Love it.
>> But I also like we could do like a little filter thing here too like in the marketplace where like we have category. Maybe we already have it. No, we don't. Like a language model or something. So
>> that is a tag for language models. Um
>> yeah,
>> pull them in.
>> Exactly. So I thought what better way to show off um the bring your own key stuff than a personal extension I built using this new bring your own key API.
>> I love it. Um, so I'll actually explain how I did this. Um, so I took the we have a an extension samples repo for the VS Code team. It's public, right? Um, and there's a chat provider sample. It kind of has the basic, you know, building blocks of what you want with like a fake provider. So I basically took that and then I wrote a prompt file and I basically said, okay, how would I transform this sample to work for any provider, right? Okay, step one like I need to give the provider the models. Okay, so what are the docs that this thing, you know, this provider has? How do I actually integrate with it? Is it OpenAI compatible, right? Does it need an API key? Okay, if it needs an API key, we need to put it in secure storage, right? And so I just basically defined a prompt file. And then it was really cool because I've actually been like exploring building a lot of these providers because it's actually pretty formulaic, right? Um, and so this is like a cool use case for the prompt file stuff, right? where it's a repeatable scenario that I'm like kind of running through again and again. Um, and then of course like it's not perfect. I have to do some tweaks for each provider, but it gets like the initial implementation done which is pretty neat.
>> Very cool.
>> Um, so yeah, hold on. Let me I recognize this zoom setting is somewhat difficult sometimes to show code, but yeah. Um, so basically there's like a couple different things. Okay, we need to fetch the models that show up in the list. Make sense? So we have some basic like you know HTTPS requests here to actually fetch the models pass tokens. Um then we have to map kind of the fireworks data structure model to like ours and that basically gives all the actual um models that you show in the dropdown which I'll show in a second. Um and then there's like other stuff you have to wire up like basically like how does the actual let's see yeah provide language model chat response. So this is like actually the the part where we form a request to fireworks is the provider that I built in this case and we actually okay handled the chat request because when you use bring your own key Olivia it's actually talking directly to that provider that you've configured from client right um there are some situations where it goes to the GitHub API like for example intent detection like if you're in ask mode um like if we you know how we have the app participants like at Azure at strike whatever
>> so that that thing will still hit the cloud endpoint so we don't say like 100% % like it's only talking to your thing, but like for the meat and potatoes of what's actually happening in chat, it's using your thing. So, you have to actually go pipe that logic in, right? Um that's what I'm doing here or I guess agent mode did for me here.
>> Um yeah, let's actually run this thing. Um
>> well and so so kind of on that note too like because I I know um at times like one of the challenges too is like um if you're just talking to the provider then like having VS Code kind of ingest like the response correctly in like a user friendly way because some things can turn different responses and like error codes and things like that. Is that all part of this API as well too? So you can kind of make sure you're ingesting giving like friendly messages if needed when you're talking.
>> Exactly. Yeah. So if there's like any weirdness that you want to handle with your provider, you can do that. So like I'll give a really good example like pretty much every provider says we're open AI compatible as like the way we talk to L back and forth right in practice like that may be largely true but every single provider we found has like little nuances of like oh like this is an empty array when it should have been null or something like that right and those are little things that like
>> were always gotchas first when we're building these providers so it's not quite as simple as oh like it's the same open AI compatible like logic right for each thing so each provider has like little nuances in how they've implemented it. Speaking of new features, Olivia, I'm going to detour. This is a classic Pierce detour. Look at the chat. Do we show this off in the stream yet? Look at this. I'm in chat. I can see a history of my past messages. So, I think this is actually a new setting. Um, let's see. Empty state history. So, show recent chat history on empty state.
>> We have not done this yet. This is great.
>> Okay, cool. Yeah, I love doing these demos because you just like are like, "Oh, I should probably show that off." Um, like you could always get to this via this history button that was like up here. Um, but like often like we had all this like white space just from a UX kind of consideration standpoint. We're like, well, like
>> a lot of times I do want to like return back to a previous place I was, right? And so it just kind of makes sense that we expose that there. And also a lot of people told us, why doesn't chat support history? And we're like, we do.
>> Yeah. Oh god. Um, anyways, um, okay. So, I built this extension. I'm gonna go look at look at all these bring your own key things. So, anything below this, like this indicator right here is all bring your own key stuff. So, I have stuff from different providers. Uh, so I have DeepSeek, I have GPD, OSS, like a a local model. I'll talk about the custom OAI thing in a second. I have GR codefast one, not the one that we provide in Copilot, but directly hitting the XAI APIs. Um, I have this from firework or sorry, from hugging face. Um, and then, uh, I'll show off how I got this one. So, I come in here. I've just built this Fireworks AI provider. And so, this is kind of the logic that I wrote for my extension, right? Like, okay, I say what is the name? Okay, fireworks. Okay, that shows in the first list. Then I actually hit the Fireworks API to populate all the models. And you can see here, like this is where it's like it's useful to know the provider and be the provider to write this because I have like a lot of other random uh things in my provider list here. Um, so I'll just kind of come in. I have this model selected in DeepSeek. I don't know how I say this. Like it's a very popular model in OSS. Like Kimmy Kimmy, something like this.
>> Say Kimmy, but yeah, now that you say that, I don't know if that's actually how you're supposed to say it.
>> I'm from Alabama. Um,
>> I'm from South Carolina, so I don't know that we're really good. Good. All right. So then I'm gonna come in and I'm just gonna like I select that model and I'll just say like let's just do a simple test. Hello. Um, and so what this is actually doing is this is going in. It's going to be a little slow because I'm uh actually hitting I'm debugging an extension, right? And actually hitting this, but this is actually yeah, this is going to form a request to Kimmy K2 instruct on fireworks hosted on Fireworks um and actually return a response back to me. And of course, like if the model supports tool calling, it would also show an ask mode in this case or sorry, an agent mode. And uh in this case, it does. And so I could just go in and uh also use it in agent mode if I wanted. So
>> very cool.
>> Yeah, this is super easy API to work with. And so if you're if there's like, you know, an inference provider that you're like, I would really love to use that inside of VS Code, like go build an extension, ship it. Um I love this because it's like the classic ethos of VS Code, right? Like choose your own adventure extensions, like make it your own, right? Like that's why I love the customization features we have for things like chat with chat modes, prompt files, stuff like that. And now like with the bring your own key stuff, it's also like choose your own adventure, right? Like whatever exactly setup you want, VS Code enables you to get that.
>> Yeah. Developer choice all about it. Um
>> uh and just to to iterate because I don't know if we like explicitly said that. So we kind of refer to this like aka like BY, right? The B API. Just though, if you're looking through our docs, it is officially called the language model chat provider API. So if you're like, why can I not find anything B API? It's called the language model chat provider API. So just
>> branding
>> call that. Yeah, to call that out. If anyone's in the docs and I was like, "Wait, what is this actually?" Um, but while Pierce was going through his source code, you definitely like saw like, "Okay, register new language model."
>> Yeah,
>> lot harder. I keep messing up all the words when I say it in order. I feel it's just like a lot. So, BY is how we're going to be referring to it, but
>> Yeah. Yeah. And I always like I'm very conscious of the fact that like we use a lot of acronyms at Microsoft and I try not to use them. Although, in this case, I think it's somewhat self-explanatory. Okay,
>> one final thing and then we're going to bring on a guest. Cool. Um I mentioned this custom OpenAI compatible endpoint thing. So I mentioned I I mentioned that um many of these providers actually speak OpenAI compatible syntax in terms of their API for for talking to their models. Um and so we have this new OpenAI compatible option here. And so you can basically go in and if a provider is not supported, if you don't want to go build an extension, which you should, your break glass in case of emergency is this open AI compatible option. Now, it's using, like I said, every provider is a little different in how they write this implementation. So, it may not work amazing for your provider. And so, that's the kind of the benefit of the extension path. But if you're like, I really need to test this and I don't have support for it, you can do that. So, if I actually go to my settings and I go um to open AI compatible models, um you can see basically here that um I can come in and I can specify other models. So, in this case, I'm saying like another one I did, I did fireworks directly to the API. So you can see I have to supply the earl here and then I just supply some information about the model. So like what's the name? What's the input output tokens? Does it support tool calling? So if that was false, it wouldn't show an agent mode, right? Um does it require an API key? Um does it support vision? Right? And so you just go in and kind of fill this out. It does support API keys. So if your provider requires API keys and the first time you use this model, we'll actually prompt you to give us the API key. We'll put it in secure storage locally, right? Um and then you can use it. So this is like your break class in case of emergency. The one nuance with this is this is only available in VS Code insiders right now. This didn't go to stable with us today. It was in insiders last month. We found some issues in our testing during in-game. Just want to make sure it's a really good experience before we push it out to stable. So there is like a little nuance of like you might have some some issues with it. And if you do, please file a bug so we can make sure it's really really good and we get it into the next stable. So yeah, that's bring your own key.
>> That sounds awesome. Um before we move into kind of our partner here, there's one question I think you're very well suited to, um answer just while you're here, Pierce. Um but Matias asks um you know what, you know, you mentioned experimental settings. A lot of times we see settings are experimental. What's the difference between using VS Code insiders, but you just mentioned experimental settings and the regular settings? If you could just clear that up real quick and then we can bring up our next guest.
>> Yes. Um, so in general, I think like something we're trying to do better about on the VS Code team is like our settings like expansion. Like there are so many settings. It's hard to keep track of them. It's hard to understand like what state they're in, what that state means. The defaults often like it's like I can't tell you how many times, Olivia, I get in a call with somebody or I'm on Twitter and someone's like, "Why doesn't VS Code support this?" And it's like it feels like a face palm to me, right? because like we have it and we're not doing a good job exposing it because it's behind some setting, right? And so um basically like experimental means we've just added this thing and it could change. So actually a really good example is we added specific auto approvals for terminal. So you can supply a regatic expression and basically say like these are safe, don't allow these, right? And so we actually iterated on that setting over the course of a month or two and things changed, right? And it broke. And so experimental basically means this setting, we're still figuring this out, right? And it could break. And experimental settings can go to stable, right? Um if we want kind of a broader population of feedback on that setting or we think it's sufficient that it can be advanced to stable, we'll keep it experimental and move it to stable and maybe it's off by default, right? Um then we have preview, right? which is kind of the next stage of like okay um this is like something we feel really good about and we're probably going to finalize soon as a setting or just build it in as a default behavior. Um and then finally right like it's a it's a GA thing and we kind of think about uh preview and GA features. So specific with copilot, if you're in a big team, there's a policy that your admin probably has called editor preview features. And uh so we basically have to declare these are the preview features we have. So like auto is a good example. That's a preview feature. Um and so if your enterprise has disabled preview features, some of these features you won't show up. So there's also some accounting we have to do so that like people who want to kind of try all these features in their enterprise before they actually roll them out can do so without it just being immediately available to everyone. That was a long-winded answer, but that's kind of like how we're thinking about settings right now.
>> No, I think that's super helpful. I'm glad that you're able to answer that. Um, and that was the perfect time to ask that question, Matai. So, thank you for doing that. Um, with that, let's go back into all the BY coolness. Um, and we have a cool special guest. We've got Chris Clark coming on from Open Router today. So, let's go ahead and bring him on. Hey, Chris.
>> Hey. Hey.
>> How you doing?
>> I'm well, thanks. How are you?
>> Good. Thanks so much for joining. Love the hats.
>> Thanks. I need that hat. We'll we'll we'll get you one for sure. Some 80s throwback merch.
>> Cool. Well, yeah, thanks so much, Chris, for um coming on. If you want to just do a quick intro um for folks and then we can kind of like just do a conversation with Pierce and how, you know, Open Router fits into this overall narrative.
>> Yeah, for sure. Pierce, I'm gonna shill my own product. I can't help it. I'm talking about stuff.
>> Yeah, exactly. So yeah, all all of the great stuff that Pierce was just talking about, uh we manage a whole bunch of that for you, right? So you like don't have to think about integrating with other uh services. We are open router. We um work with about 60 65 different cloud providers, model labs, hyperscalers, all of them. Uh including a lot of the ones we just talked about, Fireworks, Cerebrus, all those awesome folks. Um and we normalize the API for you as a managed service. So uh open router.ai. Um, and you can run everything through us and we normalize everything down to a fully OpenAI compatible uh, like drop in um, API and all you have to do is just like change the string of which model you want to use, right? Or pick it from a drop down in the case of VS Code. Um, and you're off and running and um, we pride ourselves in having uh, just about every relevant model under the sun and getting them online really quickly. Um, and we list the price at the exact same price that uh, those model providers list them. um when you buy credits on open router, you can spend them across that whole ecosystem. We charge a fee on the credits. Um but otherwise, you're just paying the exact same uh inference cost you would be otherwise. Um and try to sort of abstract all of that away from you and like make all the tool calling work the same um we'll do automatic failover for you. So on that availability point, right, if you want to use a model but uh one provider is down, we can fail over other providers, etc. And I'm hopefully can show off a little bit of it.
>> Yeah, that's awesome. I feel like that kind of, you know, when uh new was on talking about auto model selection, um you know, the idea of it being intimidating like all the different models you can have. I feel like open router like tries to take out that intimidation factor, right? Like you try to handle as possible, just make it really easy for the end user.
>> Yeah. And we don't Yeah, exactly. And we don't we don't do a lot of like automatic routing. So we're not going to pick a model for you, but we're going to help you figure out what you might want to look at and help you like control your cost and control how that's routed um and make sure that you're like getting the tokens you want from the source that you want.
>> Yeah.
>> Awesome. Cool. All right. Should we bring up your screen then?
>> Yeah, let's do it. Um so one of the things that we do uh is um we uh publicly share a whole bunch of like leaderboards and rankings about how different models are performing. Um so you can actually understand um you know we're processing I don't know it looks like last week we did about 4.6 trillion tokens which is um it's a lot uh
>> a lot.
>> It is a lot. It is a lot.
>> Yeah. Um through a whole bunch of different models but what's kind of neat is like okay great like this is sort of us showing off a little bit right about like the ecosystem growth and you can see the most popular models but we also categorize stuff um and we look at uh different categories. So we can actually come into programming and see like how market share has sort of moved and what the most popular models are. Now uh gro code fast one has been super popular for the last couple of weeks. Um it has also been free for the last couple of weeks that model has been introduced. Um which is totally awesome. Um that is not lasting forever but you can see you know sonnet is a huge player in coding. Um and then also one that could be interesting to think about here is Quen 3 coder. So um maybe I'll just like show open router for a second and what we do. Um so you might say hm quen 3 coder I haven't I haven't heard about that right I've seen groc I've seen sonnet um and we can dig in here and this has proven really popular um quen is a model that is run by a whole bunch of different providers right and so we have all of these uh base 10 and parasale and nebus and fireworks that we just talked about right um together including cerebrus who's lightning fast cerebrus very impressive um and so you can uh
route to this model if you were to pick it from VS Code. Um, we would send this here and sort of load balance across these providers, optimizing for price. Um, but if you want, you can also come into OpenRouter and say, "Hey, I actually want to like sort in different ways, right?" Or I want to, um, ignore certain providers or only allow certain providers and like sort of shape your traffic to make sure that it's being routed in a way that makes sense for you. Or you can just use it out of the box and everything is going to work great too. Um, so this is a super easy way when you like integrate, um, OpenRouter, which is a a first-class provider in VS Code. You can select any of a couple of hundred different models. Um, but we try to make it, um, uh, easy for you to figure out which ones by, um, things like our rankings page. Um, and also like the order that we're showing things in the drop-downs.
>> Very cool.
>> One other cool thing I like that you all do is you have the like cloaked models that you put up there. Those are always super fun when I see y'all tweet them out. I'm like, "Oh, I want to try that cloaked model." And Copilot. Now I can't.
>> Yeah, exactly. So, Sonoma Sky Alpha is a stealth model from, um, a a lab somewhere. Like, we know what it is, but it is not, uh, revealed anywhere else. Um, and, uh, we're really fortunate to work closely with, um, most of the the labs around the world. Um, and they often are looking for sort of feedback on their models before they're out and also trying to figure out how to price them, right? And so like running them on OpenRouter and they're free, which is nice. Um, and they are very often, uh, state-of-the-art models. Um, is a great way for them to like sort of understand the dynamics and how people are using them. Um, and it's a great way for our community and OpenRouter users to, uh, kick the tires on something really interesting. Um, and also, uh, get some free inference.
>> That's, and this page is completely public, right? Anyone can go to this.
>> Totally public. Don't need to even be logged in. Yep. Absolutely totally public. Um, and, uh, yeah, and a whole bunch. And if you want, if you have capacity yourself, um, we also, it's, it's BYOK all the way down, Pierce. It's, uh, um, if you want, you can also plug in your own capacity. So, we manage all capacity for you. You don't really have to think about quota management. Um, you don't really have to think about like hitting rate limits. We're going to sort of solve all that for you in the back, right, as you're sort of pulled with with other users. By the way, we don't log your prompts. We don't look at them. Um, we are sort of ZDR, like zero data retention by default. Um, and if you can actually enforce in your settings, like, if you're saying, "Hey, like, geez, where's my where is my data going?" Um, you can pop in here and actually say like, "Hey, I'm only going to enable providers that have ZDR." And then you know that your your data is not. And of course, even providers that are not zero data retention are not going to train on your endpoints, right? So, if you're, uh, if you flip these toggles off, like no training will be allowed automatically. We understand the data policies and are like keeping up to date with all this stuff. We're sometimes creating custom data policies to make sure this isn't being enforced and we're handling that for you to make sure that your code is not like a landing in places you don't expect. Um, so we give you a lot of control over where that's going. Um, and then if you want, you can also like bring your own keys. So if you have capacity, if your organization or you personally like have credits with AWS or credits with Google Vertex or credits with Azure, right? You can bring them and plug them in here and we can actually run through your, uh, credits first and then like fail over into our capacity if for some reason that's not available. So a ton of flexibility and you, uh, you know, as cool as it is to write your own extensions or configure your own chat endpoints in VS Code, you can sort of ideally never worry about that ever again and plug an OpenRouter and be off to the races with every model under the sun.
>> Bring your own key for bring your own key.
>> I was gonna say it's BYOK steps all the way down. You got it.
>> Yeah. All right. So, what now?
>> That's it. It's check it out. Yeah. I'm gonna send you a hack. That's the next step.
>> Yeah.
>> And in VS Code, like I just go manage models, OpenRouter.
>> Yeah, you got it. Yeah. Yeah. If you have it showing, do you mind, do you mind, uh, showing real quick?
>> Yeah. Let's go back to my screen.
>> Yeah. I was gonna say,
>> Hold on. I figured we got Windows all over the place. Let's see. Um, all right. Not extension development host. That's not what I want.
>> And yeah, and we just have keys, right? So you can you can create keys here, um, and create limits, uh, and some other settings as well. So, yeah.
>> Okay. I think I'm almost ready. I don't know if you were here when this happened earlier, Chris, but we all we all saw it. Don't worry.
>> We've all been there.
>> This is on demand available on demand after two years, so it won't work forever.
>> Okay. All right. So, screen two. Okay, Olivia, make sure I'm sharing my VS Code, please. And not my, um, that's like my worst nightmare always like.
>> I close out like everything because I'm too nervous and I'm just like, no.
>> Yeah. Yeah. Exactly.
>> Oh, I will say the last thing is we also are going to unify all the activity. So, we have an activity feed with like a grid of every single request and exactly how much it cost. You can audit that all yourself even if you're using a whole bunch of different models.
>> Oh, that's awesome. Kind of that central place. Cool.
>> Yep. So, yeah, I just as I showed earlier, okay, pop in here, manage models, OpenRouter, boom, look at all these models. Um,
>> Yeah, and it'll ask you to plug in an API key if you've never used it before, but it's super easy. Just grab one from our site and you're off and running.
>> So then like that kind of BYOK thing you're talking about. Um, so like from VS Code though, you're still just do OpenRouter API key, but then.
>> Yeah, exactly. You don't have to, you don't have to ever use, yeah, you don't have to use our BYOK stuff if you don't want. Um, we will manage all the capacity for you and you just have a billing relationship with us. You don't need to go sign up for, um, accounts at, uh, you know, Azure or, uh, spin up, you know, an AWS Bedrock account or anything like that. We'll do it all for you under.
>> Like as soon as you kind of connect that it just, you guys.
>> You just never have to worry about again. You just, yeah, sign up, deposit and credits, single API key, off and running.
>> Awesome.
>> So, yeah.
>> Yeah. And I just while y'all were talking, I I set up DeepSeek V3, sent a little request via OpenRouter. Um, got my hello world demo working here. So, yeah, pretty cool.
>> Awesome.
>> Very cool. And yeah, this is, um, just, yeah, to note, uh, for people who have been following along and listening to Pierce, this is this is a built-in, um, pro. So you don't need to install an extension right now to get OpenRouter use there. Um, yeah, if you right now just open VS Code, you haven't installed any of these provider extensions we were talking about, um, you'll see this in your list. So, you can go ahead and get started with the provider there.
>> Yeah. Awesome.
>> Cool. All right. Anything else that you all want to cover here?
>> Thanks for having me.
>> For having us.
>> Oh my gosh. Of course. Yeah, thanks so much, Chris, for being here. Pierce, thanks for doing the overview. Um, our next demo goes a little bit more into the BYOK as well. So, we're not done with BYOK yet, folks. So, we got some more good stuff going on. Um, but Chris, thank you so much for being here. We really appreciate it. Go check out OpenRouter. Um, use it with VS Code. Let us know what you think. Um, and yeah, we'll definitely, uh, pass along your feedback to you, Chris, as well as we get it. Um, but thanks so much for being here.
>> All right. Thank you all. Take care. Bye.
>> Thanks.
>> All right. Then, like I mentioned, um, that's kind of the start of our BYOK piece. Um, so what we're actually going to do on next is bring on some folks from the AI Toolkit extension team, um, to talk about how that fits into this narrative. So, we'll bring on Ron and Ming.
>> Hello. Hello.
>> Hello. How are you all doing today?
>> Good.
>> Thanks for having us.
>> Good. Um, yeah, we're so excited to have you here. Um, I'm really excited that we kind of were able to do this, like Pierce gave this cool overview, BYOK and the new language model chat provider API API they can build with extensions. Um, and then, you know, we kind of saw the OpenRouter piece and then y'all work with AI Toolkit, which is a really cool extension. Um, so I guess before we dive into that, if you all could just give a quick intro to yourselves, um, and then we can see how this fits into what we've been talking about.
>> Yeah, sounds great. So, hi, I'm Ron and I am a product manager at Microsoft. Um, so our team focuses on building data science tools and AI tools in Visual Studio Code. Um, so I'm really excited to be here. It's also my first time being on VS Code live stream. So, thank you so much for the opportunity.
>> Of course. Thanks for being here.
>> All right. Cool. So, I'm Ming. I'm a product manager Microsoft Cori team. Um, I'm working with Ron. Uh, my team is primarily focused on getting the local model run on cross devices fast and easier.
>> Cool. All right. I love it. Um, should we go ahead and dive into a demo just so people can kind of see like what this looks like in action? Um, via I know like kind of just talking about it, people can be like, "Okay, how does that fit in?" Um, so if we see a demo, see, um, show everyone what we're talking about.
>> Yeah, sounds great.
>> All right, let's bring up your screen. Okay, cool.
>> All right, so we are in VS Code. Uh, so first of all, this is the extension we're going to talk about today, uh, called AI Toolkit. It's in the marketplace. Um, so the goal of this extension is really about, um, helping developers to build their own AI agents. Um, and then of course, a big part of building AI agents is you want to be able to able, um, to explore different models, understand model capabilities, and choose the model that is right for your agent. So, a big part of what this extension does is it helps bring together various models provided by different providers and, um, have these built-in tools to help you evaluate different models, and then you can move on to build your own agents. Um, so just a real quick overview of this toolkit, and I will go back, I promise I'll go back to okay in just a second. So, um, on the left-hand side, this is our sidebar where you can find all of your resources. As I mentioned, it's about managing your models and managing your agents, building agents, you can even use this tool to build your own MCP servers if you want to use MCP servers as part of your agents. Um, so everything is accessible from here. Uh, we won't dive into everything today. Um, because we're focusing on the, uh, BYOK use case story. Um, but let's, I just want to mention two quick things. Uh, one is this model catalog, which if we look at, uh, on the right-hand side, uh, brings together different models, as I mentioned. So, we have a group of GitHub models, which I am a big fan of. It is so easy to get started with. It is accessible to everyone who has a GitHub ID and it's free to use to everyone. There's a rate limit, but, you know, for personal use, it is pretty generous and it's, uh, really nice to be able to have those access. It's a great way to try out different new models. I think with these, uh, the catalog gets longer and longer day by day. So, because new models are getting added, so we try to keep up with all these new models coming out, you know, GPT-5 and all that. Um, if you hit "View All," this is where you can see the full list. It's really long, but yeah, you can explore that, uh, after this. Um, and then a second group of models we have here are those model endpoints you might have hosted in Azure AI Foundry service. Um, so this gives you direct access to those model endpoints you might have deployed. If you have an Azure account, this is a great, uh, option as well. Um, again, we surface these models from the catalog, and if you don't have anything deployed, you can even just deploy from here with a single click, and you have one model endpoint up and running. Um, you can start building your agents with these model endpoints.
>> Okay.
>> Yeah. So, um, besides these cloud-hosted models, um, we also have local options because it's all about giving developers options. Um, there are many good reasons for using local models, you know, for data privacy reasons or for cost-effectiveness reasons. Um, there are a lot of model options here, um, in the local section as well. Um, and then I want to, uh, hand over to Ming in just a little bit, uh, to talk about Foundry local models, which is a pretty new category of models that that we're enabling, um, for you to download and run entirely locally. Um, so we have added that integration in the AI Toolkit as well, um, in today's release. So, you can access these models, uh, right here. And I, one thing I want to call out, I really love about the experience is, um, you literally just have to click a single button to get those models downloaded and set up and up and running in VS Code. Um, you don't have to leave VS Code to install anything else extra.
>> Very cool. Um, and we actually had, uh, April Gittens on last month, um, on the release live stream, um, kind of showing how you can compare two different models too.
>> Yes, so I like definitely everyone check out that, um, from last month.
>> Thank you for bringing that up. I do want to mention that real quick. So, if you click on this "Try in Playground," we do have a built-in model playground in VS Code. Not only can you test a single model, you can bring in multiple models and have them side by side. So, you can test the same prompt and see how different models behave differently.
>> That's awesome. Yeah, I feel like this is kind of in the theme of.
>> Get back here and then, yeah, thank you for bringing that up. I was like, I want to get to that feature too. Um, Ming, you want to add a few things about, uh, Foundry local models and.
>> Yeah, sure. Yeah. So, I can add a few, just a quick intro to the Foundry local. So, that's a a new thing. So, that's still in preview mode. Uh, so the Foundry local is basically a solution we're trying to help the developer building the applications running on device and using local AI models, um, easier and faster. Uh, so when you're really building an application on device and for using AI, there's a few things you need. Uh, there's a model distribution problem where the model gets bigger and bigger, and there's acceleration on different hardware problem, and finally, you want to have an easy-to-use API. And Foundry local literally solves these problems. And it has a model distribution solution that helped the apps to access a model with kind of like independent to their traditional app distribution channels. And also the acceleration is did pretty good across a wide range of the hardware, CPU, GPU, and NPU. And it's also not only for generative AI models, but for also for the non-generative AI models. And finally, the API we designed is super easy to use. Just a few lines of code, uh, you can use to manage your model on your local device and do the inferencing quickly. Okay, that's a short intro.
>> Very cool. No, I'm glad that we covered that too because there are a couple questions earlier about just locally hosted models in general. And so this is a really cool way to kind of, um, show how we can get this through the AI Toolkit extension.
>> Cool. Thanks, Ming. Um, yeah, so I just hit "View All." So, you can see a long list of models, um, that we provide, uh, through Foundry local. Um, yeah, so there are other features, uh, in here, feel free to explore, um, in the AI Toolkit for building your own AI agents. But now I want to switch over to talk about how we are bringing these new, these models, um, registered with AI Toolkit into Copilot. And by registered, I really mean like it's a very, very lightweight, uh, experience. Really, all you have to do is just to click "Add," just so AI Toolkit knows which models you're interested in. We just set up that connection once, and then it's going to show up, um, in your list of models. I have way too many.
>> So instead of like pulling, um, all those that really, really long list of all the things in the catalog, like.
>> Yeah, this is like my own list. And A2K, all it does is for hosted models, we just set up that connection so we know how to talk to that model. For local models, if it's not yet downloaded, we will trigger a download and manage those models on your machine for you. So, I have this long list of models, um, that I call registered. So, once you have all that set up, um, if you come into Copilot, you will find the same list of models being surfaced, um, in Copilot as well. And that is made available, um, by the API that VS Code, uh, exposed that went out today that Pierce was talking about earlier, um, that made it, it possible for us to to bring in models here. So, if you go to "Manage Models," as Pierce showed earlier, extensions can now bring in models to this model list. And with today's release of the AI Toolkit extension, we are bringing three groups of models to this list. Um, that is, you saw earlier in our same thing in our catalog, Azure AI Foundry models, Foundry local models, as well as GitHub models. So, you can choose, let's say I want to go into the Foundry local list, and this shows the same list of models, um, that you would see in the catalog. Uh, in my case, I have, I think a Q1 2.5 model selected. Uh, where did that go? Oh, here we are. Um, this is a 2.57B model I have selected. And if I'm selecting this for the first time, uh, the tool will trigger a download in VS Code and will manage the download process for you. And then it's ready for use. But since I have already downloaded it, I can come in here, um, and select the model, which is Q1. Um, I can ask it to do something now. Let's see. Um, create a BYOK markdown section for quick sort. And that is running entirely on my local box. Um, this round of conversation, I don't have a super powerful machine here. This doesn't even have a GPU, but it's, uh, seems like the speed is quite, uh, acceptable. And this is, you know, if you want full control over what's happening, you know, between your prompt and the model, uh, this is is a great option to use these local models. So, um, so that is Foundry local models that we have, uh, integrated in here. I also mentioned the GitHub models. Um, if we switch, you want to switch to a different model in the same chat, we can do so. Um, so now I'm going to switch over to, uh, a Microsoft, um, model. This is a, a open-weighted DeepSeek R1 variant, uh, that is, uh, developed by Microsoft. So, if we want to try out that model, I can say, um, "Which Python packages can I can I use to create games?" Let's say a question here. Um, so this is going to talk with the GitHub hosting model. Um, again, uh, free to use as long as you sign in with your GitHub ID. So, I get a response back, um, in the same chat. And I, I can also go over to a Foundry model that I have deployed in Azure AI Foundry service. So, that is a model endpoint up and running there. I have full control over, you know, the rate limit and and a lot of flexibility in managing access here. So, I can switch over to that. Um, and for that one, I'm going to use agent mode to ask to actually create a game. And I want to see if I can, I have the luck to get it up and running, like a single shot, right?
>> Yeah. Let's see if I want to do. While you're doing that, there's actually a question, um, probably for you. Um, is Foundry local region specific?
>> Uh, no, it is everywhere. So, yeah, we don't have any restriction for that.
>> Cool. Good to know.
>> Yeah, and that is, uh, all available today. Um, we pushed out a new release last night, uh, for the AI Toolkit extension.
>> I know.
>> Yeah. One of the things I just like really want to emphasize with this, right? So, we're we're saying, okay, with this extension now, you can, um, well, so with the, the finalized BYOK API now, extensions can contribute these models, um, straight into Copilot chat. But, you know, taking that one step further, right? People can install the AI Toolkit extension, and while you also get that, uh, the models in Copilot, you also have all the other functionality of AI Toolkit too, right? It's just like an extra cool thing as part of this extension. Like now you can go to the playground and mess with those, but then also bring them straight into Copilot and just like have a really seamless experience. Um, and so it's really just kind of about bringing that extension experience and all the different customizations and developer choice that you can get. Um, but it's just, just like one extra, you know, uh, just really nice feature. So, I just want to emphasize that too with why this is so cool that extensions can now do this because it's, it's, it's just like an extra thing that we can add in this already really cool extension.
>> Yeah, absolutely. You can register once in Toolkit, either for building your own agents or register it through Copilot, and then you can use it in the other place as well. So, register once and you can use it in both places. So, looks like the, uh, my model was able to create a game with the code here, and I just ran it, and, uh, I, I couldn't get, uh, the food fast enough. Um, but you all saw the, the game was up with a single shot of a prompt, and that was hitting my, uh, model endpoint in Azure AI in real time for your Copilot experience. So, yeah, that's all I want to cover today. Thank you.
>> Very cool. And yeah, you mentioned kind of like it was like once you selected the model, there was kind of that initial download, but then from here, you were just able to super quickly.
>> Yeah, you can switch between all these different models. Um,
>> Very cool. Um, yeah, and then, yeah, this is, can you show just the AI Toolkit extension page again, just so people know exactly which one to look for all to get all this?
>> Cool. Um, and then, uh, is there, uh, a repo specific, uh, that people should file feedback if they see anything with ADA Toolkit?
>> Um, yeah, so we do have a repo here. Oh, there it's right above this line. Yeah, the our repo is connected to the, uh, to the marketplace page. So, feel free to to look at what's there and file issues and, and please send us feedback, um, for good or bad. We, we love all kinds of feedback.
>> Yeah, that's true. Um, okay, cool. Thanks. We got.
>> And this AKMS link, AI Toolkit.
>> Yeah, that goes to this, uh, this marketplace page.
>> Okay, perfect. Sounds good. Cool. Is there anything else that y'all want to talk about or show off?
>> Um, I think that's all for today. Um, Ming, anything to add?
>> Nope. We're good.
>> Awesome. All right. Well, thank you all so much for being on. We really appreciate it. Yeah, awesome first, uh, uh, time having you on on the release live stream. Um, everyone go check out the Toolkit extension. It's again, a really great application of what we were talking about with this BYOK API. So, you can have these models directly in chat as soon as you install it. Um, so very cool way to do that. So, thanks you all so much for being here.
>> Thank you.
>> Thank you.
>> All right. So, that is going to bring us to our next and unfortunately final demo of, uh, the live stream. I know we've already seen a lot, but all good things must come to an end. Um, so we are going to bring on Joanna now to show us some. Hey Joanna.
>> Hi. How's it going?
>> Good. How are you?
>> Good. Thanks for having me.
>> Oh my gosh. Of course. You're also a first timer on this release live stream, right?
>> Yes. I started a few months ago on the team, so I'm new in general, but.
>> It's only been a few months. I feel like it's been forever.
>> Yeah, same. But in a good way.
>> Yeah, in a good way, for sure. Because I feel like, I mean, everyone who's, you know, involved in coding right now, you know that like everything just changes so quickly. Just like there's new things every month. And so I feel like, uh, you know, one month now is like what like a year used to be.
>> Absolutely. Yeah. Yeah.
>> Cool. All right. Well, if you want to go ahead and do just a quick intro, um, of yourself and what you do on the team, um, so people can get to know you.
>> Sure. So, I'm Joanna Oawa. I'm a senior product designer on VS Code. Like I said, I've been on the team for I think four or five months. It, um, still feels very new in some ways, but, um, yeah, I'm focusing on our AI features, our agent mode, chat, everything around that. And it's a really exciting space to be in. And I've been really loving the VS Code community and how much feedback and insights we get from all of these different sources of, um, you know, community areas. So, uh, that makes my job a lot easier because I can gather feedback really quickly. We can iterate more quickly, and it makes it really gratifying too as a designer to see things go out the door and see folks react to it and like it or sometimes not like it, but that gives us more room for improvement.
>> Yeah, absolutely. I think that that's, yeah, a great, um, you know, you kind of summarized, I think everyone on the team's, uh, view with the community. Like we just, we love being able to interact with y'all and getting the feedback and, and like Joanna said, like sometimes we miss the mark or sometimes there's negative feedback. We love hearing all of it. Um, and like that's like a cool challenge for, okay, how can we make this even better for folks? Um, so, uh, yeah, just kind of plug for everyone watching. Thank you for being here. And make sure, um, you know, as Joanna's going through her demo, if you have any comments, feedback, um, questions, drop them in the chat, um, and then we can kind of address them live. So, just wanted to do.
>> Cool. All right. Well, then Joanna, what would you like to show for us today?
>> Yeah. So, the first thing I wanted to show off was our small update to the release notes formatting. This is a topic we've been talking a lot about internally on how we can make these more easy to read and scan and digest. And I know that you spend a lot of time showing off the release notes, scrolling through them, reading through them, that kind of thing. So, I'm sure you probably have some great feedback here, too. But, um, this is partially a plug on what, uh, you know, formatting changes we've made recently, but also that we're looking for more feedback on how release notes can be, um, more helpful. What kind of things do you want to see highlighted? Do you want more videos and screenshots, or do you want more concise summaries, highlights, that kind of thing? Um, would love to hear more about this, and we have some, um, fun features for release notes, kind of lined up that I'm excited to share in the future.
>> Cool. Yeah. Uh, yeah, I think that the release notes and the release in general are such a fun time, but they're also like a very interesting problem to solve because on one hand, you want to make sure that like these big things that we're making splashes about are known and they're highlighted, but the other hand, there's so much in releases that's like trying to find the balance of making sure like all the cool, like little things still are able for people to learn about them, but then also not overwhelming, right? So, um, like finding that balance is such a hard, um, you know, line to cross. So, yeah, like Diana said, let us know, um, your feedback there. Um, you know, what's what's easy to kind of digest about the releases, what could be, uh, better. Um, but yeah, excited to see kind of where this goes too.
>> Totally. And yeah, you nailed it. It's, it's a lot of goodness. And I think Pierce said earlier that, you know, even being on the team and seeing all of the updates internally and, you know, previewing the release notes, I, I've still been surprised throughout this, um, live stream to see some of the new things highlighted. I'm like, "Oh, that's great."
>> Well, and it's just like people, you know, right? You know, each PM might have like their own little corner that they are really focusing in. So like they know like this really, like that's one of the coolest things about the release live streams, like you see the team how they actually use the product. And I think just like even seeing how it's applied gives you a whole new lens on, you know, than just like seeing the feature listed out. So, totally, you know, I think it's, it's definitely like a cohesive, like, what are all the different strategies we can do, um, and I think that what you're showing here with kind of starting with, um, these release notes and how we can design it in a digestible way is really cool to see.
>> Yeah, absolutely. And then, uh, another change that we've tweaked recently in this latest iteration is how the files that have changes in them are presented. Um, all we've really done is surface. You can see the file diff. Um, oops, sorry, I went ahead one more slide. There we go. You can see the file diff listed at this top level and then, um, the, oh, sorry, I was also showing how to move the panels. Um, so one thing that we've done with the files that have changes in them is collapse them by default. We got feedback that the growing list of files that have changes in them, especially if you're moving across multiple turns in the conversation, can be kind of difficult to manage and can get unwieldy. And so we're collapsing this section by default. And then once you've kept, um, or kind of accepted those suggestions, we also clear that section. So, that is something that we're looking for more feedback on. Does that align with what folks were creating in terms of like this being easier to manage? And I think it's also a byproduct of folks having longer conversations with agent mode and doing kind of chaining more tasks together in a single conversation and wanting that section of files changed to reflect what they're currently focused on and not have it, um, like I said, grow to be too big. Mhm.
>> The second thing I'm showing off in this, um, recording is we added a toggle for maximizing the chat so that it can be full screen. So, if you want to focus on the entire window being your conversation and, um, really focus on the output, have extra space to read and digest that, um, you can toggle that really easily. Also, one thing I showed off is, uh, dragging and dropping the chat panel from the secondary to the primary. This is something that that has existed and been possible for a long time, but I've found in a lot of customer conversations that it isn't always known that this is possible. So, um, to kind of summarize these, these three features that are shown off here, between, uh, the list of files changed, being able to maximize the chat window, and then me being able to move it to your primary panel, um, was looking for feedback on how folks want to manage and have their chat panel alongside their other work, what they want their layout to be, how they want different information to be presented. All of that is very relevant to conversations we're having now, especially on the design team, um, for how we can make chat fit along your existing workflows and make it more customizable and flexible. Um, so would love feedback and hearing more from our user base about that.
>> Yeah, I think that that's a great point to make. Um, you know, I know some people love to just have like, you know, chat just completely maximized and then especially with their just like by coding because they're just like, I don't care what the code is right now, like just give me the full chat, like let me just interact there and have it fully maximized and then I'll look at the code later. Um, and just having that focus. So, um, and to your point, I think, um, you know, going back to like there's just so much stuff in the releases. We have all these really cool little features that make, you know, life easier, but people just don't know about them sometimes. Um, and so, uh, I love being able to, you know, give you a spotlight here to kind of show off, okay, what are the cool things here. Um, there is a comment in the chat, um, there's a couple, um, that are related to design. I know there's a few other questions too, and we'll, we'll answer those async, but I want to give Joanna the ones that are relevant to, um, her neck of the list.
>> Sure.
>> Um, so this isn't necessarily about like these features specifically. So maybe you're going to show this later. Um, but there's a, there's kind of feedback of, is there a way that we could have font size settings, um, in the view menu while keeping it in the settings so that you don't just always have to like dot control plus to zoom in and and kind of adjust your font that way.
>> That is a great question. Um, that was actually well related was the next thing I was going to show is the new setting for being able to customize the font family and there's also the font size setting as well. But, um, yeah, it, it seems like the, the question or maybe the feedback here is, can we make it easier to adjust than having to go into settings? Um, I'd be curious to hear, is that, um, because settings are difficult to kind of find, or is it because you're adjusting it really frequently and don't want to have to go back through settings? Um, would love to hear more, more feedback on that. But that's a great, um, that's a great point and I'm curious to see how folks now that we have this setting for customizing your font family and the size of everything in the chat panel, how folks are using this and, um, how they might use it alongside other customization options within VS Code so we can maybe curate or help kind of like tie these experiences to be together a little bit better. Um, yeah, great question and great kind of feedback along with the question.
>> Cool. Yeah. No, that's awesome to hear. Um, yeah, so Tamed Craziness, um, with user there. Um, so yeah, if you have any like follow-up thoughts here, you want to put in the chat, let us know. Um, otherwise, I think just the VS Code repo is also the place for all these sort of comments, right? Okay, cool.
>> Yes. Yeah, the filing an issue on the VS Code repo is great. Um, the team does a great job of triaging and making sure that the designers get tagged and included in these types of things too. So we can get the feedback and, you know, even if we're just using that feedback from an issue to address a smaller, uh, bug or paper cut or preference, that gives us more, um, understanding of how the users are interacting and feeling about these different features so that we can plan, you know, bigger improvements as well.
>> Cool. That makes sense. Awesome. Well, uh, yeah, if we want to go ahead and talk a little bit more about the font family. Yeah, while we're here.
>> Yeah, this is, this is a new setting and, um, like I said, there's the, the font family and size. And what we're working on now is making sure that we have the right, uh, all of the right components in the chat panel are adapting or not adapting to these settings. So, we're still kind of flushing that out and would love feedback on if you're seeing anything that's missing or not updating. Uh, that would be a huge help for us to kind of make sure everything is, um, corresponding. And then, yeah, what, you know, like I was saying earlier, how do folks want to use this? Is it something that you want to set once and kind of customize alongside different options in your, uh, your workspace and in your window? Or is it something that you want to change more frequently? Or is it dependent on different scenarios? We'd love to hear more about that because that can inform how we, you know, do we want to surface it to the dot dot dot menu in chat? Do we want to, um, provide kind of default options instead? That kind of thing.
>> Yes. And, um, as you're talking, there's like one thing I want to emphasize because we don't, we don't usually have design on these release live streams, which we totally should have on more. Um, but what I really want to emphasize is just like the way that, um, you're really shedding light on how, how the design team looks into all these decisions, right? Like, I, I think as a user, it can be easy to be like, "Oh, why did they just like decide that that's where that button goes?" Like, there is so much intentionality that goes into this. Um, and, you know, yeah, maybe we don't always get it right. Um, but we do really listen to what everyone's saying and like think through, okay, these are the use cases for this. Okay, is that, is that what users are looking for? Is that that? So, I just want to really call out like I love being able to share with everyone on this live stream like what y'all really do to to take into account for all of these and when we're thinking about feedback and, and how you end up at, kind of the decisions for the design. So, I just want to call that out.
>> Yeah, absolutely. The, the issues that get filed, the feedback on socials and, you know, customer calls, things like that are incredibly helpful. And I would say out of all the teams I've been on, this is the team that has the most customer and user obsessed, um, mentality when it comes to UX. And so it's been really nice to collaborate with other engineers on the team because they view themselves as, you know, advocates for developers, advocates for a good UX, that kind of thing, too. And so the, the design team isn't really, uh, you know, like we're not just the single owners of, you know, the experience and throwing things over the fence to engineering to implement. The engineering team really cares a lot about the end user experience. And so that's been, um, really, really nice to have a lot of allies and advocates that are, um, already thinking about these problems and then the design team can just kind of help, you know, bring them to life a little bit more. Um, but yeah, and I think to your point as well and what Pierce was saying earlier about settings, the team often, we like to start off by putting things in settings to get folks using it, to start getting feedback. And then this is a good example of something that we have it as a setting. You can go in and find it and customize it. And this is where we really want to like get more feedback and kind of polish and customize what the experience should be now that you can play with it. And so we're really trying to get things out into users' hands, um, as quickly as possible to get feedback and really finalize and validate what the right experience is, um, at that point.
>> Cool. That makes sense. Um.
>> Yeah.
>> And then Tamed Craziness has had like a little bit of a follow-up just saying, like, like the majority of us by default go to clickable dropdowns by nature. Um, so I think that's great insight and I think, you know, you're kind of talking about like the idea of like, what's the smartest default that we can have that users go to. So, this is all great feedback.
>> Absolutely. Thank you. Yeah, I appreciate that.
>> Cool. I know there's even more that you want to show off. Um.
>> Yeah, just a couple things. So, one new setting that is on enabled by default now is having to-dos available in the chat panel. So, I've maximized the chat panel, and you can see my to-dos up top. And it should recognize and create to-dos by default. But if you'd like to, if if you're not seeing it for one some reason, or you really want to explicitly query for it, you can do the pound symbol and to-do, um, within your prompt, and that will kind of add an additional suggestion for the model to add them. Very similar to what we were just talking about, this is our current version of to-dos where it is kind of sticky to the top. We present them as checklist items, and if there's more than fit in the panel, it's a scrollable list, and then we when it's collapsed, we kind of show the current to-do item that it's working on. So, this is the first version. We've already got some feedback from folks that have gone in and enabled the setting early, but what we're looking to learn more is how folks are using this. And I think there's two aspects of the experience here. One is from the model's perspective, how is it organizing and defining the right to-dos, the right number of to-dos, that kind of thing. And then B, the presentation of it, where it lives on the screen, and how users want to access it, and, um, what information they want to see when it's collapsed versus expanded, that kind of thing. And so from the feedback that we've gotten already, uh, this is, we've kind of stepped from a demo screenshot to a Figma design. We've gotten feedback that folks are looking to have it be more visible, more accessible. So, one thing that we're playing with is the idea of attaching it to the input box, similar to the list of files that have changes in them, um, to kind of keep them close to where you might be working and focusing your attention and, um, again, make it more visible on the screen. And so, this is kind of something we're playing with and looking for feedback on. Do folks want to keep it up top, but just need it to be more, um, you know, visually prominent so it distinguishes itself from the chat output more, or do folks want it near the input bar?
um for accessibility. Um, really curious about that and obviously there's some questions of how will it live alongside the list of files changed. So, um, looking for feedback on that as well. Do you want just one or the other? Do you want to see them both at the same time? Um, that would be great to inform how we continue to improve this.
>> I love this. I like almost feel we need to do like office hours or something with you where it's just like through all.
>> Yeah, I know. That's it's the only um kind of downside of like the live streaming format is there's only so much two-way that can happen at a time. It's like, okay, let's do some questions, but
>> um I want to like have more of a a conversation sometimes.
>> Yeah, totally.
>> Cool. Well, yeah, this is awesome. And I think I mean even in general like I think the to-do um uh feature is not one that a lot of people know about. I think it's with the stable is enabled by default. Um, so very cool. So yeah, I think that we'll get more eyes on that too now that it'll be in and get that feedback.
>> Yeah, and like I said, the the other aspect of it besides the presentation is how it's defining um and when it's defining to-dos. And so that behavior is something that we also want to improve on. So, please file issues if you're seeing, you know, I'm trying to get it to to make to-dos and it's not doing or it created too many or these aren't helpful or related. That kind of feedback is great um for us to continue to um to to tweak that and and make sure it's the right experience.
>> Awesome. Cool. That sounds good.
>> Cool. And then um another kind of future facing item is a lot of models that we're starting to use provide chain of thought or thinking tokens that show kind of what it's doing behind the scenes before it presents the output. And so one of the challenges from a UX perspective is how do we present that information in a way that is helpful and accessible but you know doesn't run the risk of just like jamming your panel with a ton of output all at one time because often the thinking can be really really verbose. Um, so one thing that we've been playing with is showing it in a kind of fixed height or max height um container so that you can see it while it's thinking and in progress and then once it's complete and it's moved on to um, you know, sharing more output or doing a tool call or um is complete, that kind of thing, it collapses so that that information if you're sitting there watching it, you can see it, make sure it's on track, that kind of thing. But once it's done, you can focus on the output. So that's our current hypothesis. This is also kind of a pattern that we're seeing with other products as well where it's shown while it's in progress and then collapsed after the fact. Um, so we're kind of leaning on that, but obviously want to make sure it's the right choice for VS Code users. So, uh, would love feedback on this idea and treatment. And then um, we don't have any settings for trying this out yet. It's kind of a um chicken and egg with having the models that have the thinking tokens available and having the UX for it. Um, but we'll definitely let the um community know when as soon as it's available to test it as well.
>> I I love how this looks. I think this looks so good. Um, so yeah, excited to have folks test it out and give feedback there. Um, but I Yeah, I think right like like you said earlier, like it's really all about a balance of giving the information but not overwhelming the user. Um, and I think that to me this walks that line so well. Um, so yeah.
>> Yeah. Yeah. Yeah, and it's something that we'll have to, I imagine, play with as well. Like, there's only so much we can do in Figma sometimes as designers for these types of features to mock up what the experience is going to feel like. Um, but it really comes down to yeah, like getting the settings enabled, hosting it yourself, and um taking it for a spin. So, that's why the user feedback is so important.
>> Um Marcus on has a question um from Twitch or feedback, sorry. um saying it would be great to have buttons to go to previous prompt messages when you're searching a lot of text returned in chat.
>> Interesting. Okay. Kind of like a um like a skip button or like an anchor button um that takes you to the previous prompt. Interesting. Okay.
>> Cool. Thanks for that.
>> Yeah, that's great feedback.
>> Love this. Keep it coming.
>> Yeah, this is perfect. Um, and then kind of as a followup to what Asaldo and Alex were sharing with GitHub copilot agents at the beginning of the stream, um, we're thinking about this list of agent tasks a lot and what the right presentation of the information is and what kind of artifacts folks want to open up to view and validate what the agent has done. And so this is pretty similar to what we have um, you know, what Oswaldo and I have been working on for the agents list um so far um, but we're kind of playing with um different ideas around information density um, what information should show by default on this kind of secondary line, what information is most helpful at a glance, and then what actions should be accessible on top of these items. So again, another plea for for feedback here of like if you're trying this feature and you're um, you know, navigating between different issues that you've assigned to GitHub Copilot and want to um, you know, optimize how you're reviewing and making decisions from that work that Copilot's done on your behalf. um would love to hear about like ways that we can make this easier to digest, easier to context switch um and swap between the different views that um Alex was showing with the PR view, the chat sessions view, the logs, like do you want them all in one place? Do you want them as different tabs so you can switch between um that kind of information architecture would be really helpful feedback. Um, and yeah, and there's this is a big focus for the team. So, there's going to be a lot of UX focus and um improvements in this area in the next few iterations.
>> Cool. I know there was um in in Alex and Oswaldo's um session uh there were some comments just in general about being like I don't really understand like what local sessions versus not local sessions means. I don't understand agent mode versus coding agent. And like I think obviously that's probably a whole that's >> probably partly UX but also partly just like branding, right? A lot of conversations there, but just to bubble up the information there. I know there was just like some confusion there like what does this mean? Like what do I know? I mean, I see even here like you have Copa and VS Code. Like that's a really cool way to kind of like uh segment out that information as well.
>> Yeah. Yeah. That points to a really top-of-mind open problem that we're working on and something that Bridget and I have been talking a bit about as well of like these are new concepts to an extent, but also agents is a very conflated term for a lot of different features. So how do we um have the right terminology and naming to make it straightforward and set the right expectations for users to understand how they can utilize these tools and yeah, what's running locally or remote and like why is that different? How do you um, you know, kick things off differently? That kind of thing. Um, that's that's I think one of the biggest UX challenges that we'll be working on. So that's even just hearing that folks are confused about that is great feedback. Yeah.
>> Yeah.
>> Um, there is a couple of other not related to what we're talking about, but um, uh, just other good feedback to pass along. Um, so going back to what you're doing with show to-dos. Um, but making the to-do list placement configurable for the user. So just let them decide if they want to go at the top or the bottom. Um, is there.
>> Yeah, that's great feedback. we'd probably want to pick a default that makes the most sense, but I like the idea of being able to kind of like clear it or like move it out of the way based on what you're focused on, too. Um, yeah, that could be interesting.
>> Yeah, kind of like making it own like view and just Yeah, configurable like other ones. Um, and then Marcus also uh mentioned going back kind of the font size um that it'd be cool to have a larger font when you're in the maximize view as opposed to just normal chat at the side.
>> Yeah. Yeah. That's interesting feedback. I I think one um kind of going back to show this one area of feedback as well on this max view is is whether we have the right chat width or whether it should be configurable or what the default should be because um that also kind of impacts the readability of the output. There's kind of like a fine line between how much information you want to see at one time just to be able to like read it fast. Um, so that could be interesting to like have the um the font size change as well so that it kind of like adapts to this more focused view. Um, very interesting. I hadn't heard that before.
>> And then one other uh uh comment is collapsible headers would be really wonderful for lengthy iterations and prompts.
>> Yeah, that's also interesting. One piece of feedback that we've heard on to-dos is that folks would be interested in having them be headers within the output and being able to collapse it so that you can like organize the output semantically or, you know, logically by what the agent's been doing. Um, so I'm curious if if folks want just kind of headers or if those headers in their minds correspond with these to-dos already and we should just have an option to like >> view the output organized by to-dos, that kind of thing. Um, yeah, I'm curious. I'm I'm >> I think that to-dos will help folks uh like digest and understand what the agent is doing, especially seeing like what it has planned ahead a couple steps. Um, so I think that should help with like understanding the output, but um, I think there's still like remaining output feedback that it's very verbose. It can be hard to hard to uh understand what's happening, especially as it's happening >> right >> um, yeah, so how can we organize that better so you can like walk through it, read it, and not get overwhelmed.
>> Um, and then one other comment, I feel like we also got a flood. Sorry. And then Joan, I'll turn it back to whatever. Um, and this is >> I guess this is kind of a UX thing just because it's like, okay, how can you discover this? Um, but uh, Walter says, if GitHub copilot makes a mistake like truncate source files when it edits, can I have it compose and submit a bug report for me? Um, because right now you can essentially hit like if we see this when it streams through like provide back or submit a bug, right? Um,
>> Yeah.
>> Yeah. So I I don't even know if Walter might not even know that that exists. So, if you just want to talk about that real quick.
>> Yeah, there's a um like an error button that you'll see when you hover over any of the uh responses from the agent. And that is the best way to kind of flag a specific output as being incorrect or provide feedback on that. Um, because that makes sure that we have the right context for the issue that you're reporting. Um, but if there's anything that I think is still to be desired off of that issue submission, like if you want to share more information or if something's missing, um, please let us know. Um, also, I think there's like kind of a secondary feedback there that that wasn't obvious that that's the way to do that. So, that's good to know. We've been talking a lot about this kind of icon family here. Um, so that's great feedback, too. Cool. Uh, sorry. I know I just inundated you with chat. Thanks.
>> Yeah.
>> So, but I think you I think you still have a couple more things you want to show, too.
>> Yeah. I just have one more thing. Um, so we showed thinking and then >> the last area that I um is kind of a a big focus for the team is on a out-of-the-box plan mode or planning mode. And this is something that um I've been working with Harold on a lot and Bavia um and we get a lot of feedback around wanting to have some more structure around curating and and giving the right prompts and information to agent mode to then pursue the right outputs. And there's kind of two user needs that we've heard so far. One is for increasing the accuracy of the output by having more of a structured plan and input and two is having the ability to brainstorm to think through what you want to build um in collaboration with um an AI agent. So both of these kind of come together in what our current plan for planning is, which is having a plan mode available and then once users kind of submit their first input, providing a summary of the plan within the chat itself. So one thing that we are hypothesizing and looking for feedback on is that folks might not want a full plan document by default. That might be a little too heavyweight for what you're looking for if you just want to make sure that the agent, you know, takes a step and pauses before implementing to make sure it's on track and doing what you want it to do. Um, so we're going to we're planning to default to keeping it in line as a lightweight summary that hopefully gives enough information to decide whether you want to open it in a markdown file to generate a more um higher fidelity plan or if you want to go ahead and start implementing. So the screen that I have here is kind of a mock of what a markdown file would look like if you decide to like further delve into plan. um editing and so um we're planning to just present it as a simple markdown file. One feedback I got from early testing with users is that folks don't want a giant, you know, 200 line markdown file with a giant plan to review, but rather to start with high-level um things like goals and constraints and then build out the plan with the agent um through things like follow-up questions and um kind of having the user provide more um specifics to build that out. Um, so that's our plan. um is that we'd have a plan mode. It wouldn't generate a plan by default, but would show it in show a summary of the plan in the chat and then users could decide whether to go ahead and implement or open it in a markdown file to further build it out or edit edit it directly.
>> That makes sense to kind of give like the the user the opportunity to figure out do I need to be a little more hands-on here, make some tweaks or like we good, let's just keep going.
>> Yeah. Yeah. And one thing that we heard so far from users is that how heavy or um much planning you want to do for a given task is really task dependent. And if it's a straightforward task, you just want to make sure the agent is understanding what you're asking it to do and just it can go ahead and go. Um, but some tasks you really want to make sure it's, you know, looking at the right thing. It's focusing on the right outcomes. It's, you know, avoiding particular constraints or taking into account your preferences on the technology stack, things like that. So um, yeah, that's kind of our our plan for planning for now um and kind of the the next thing we have planned for um, you know, this area. But again, would love feedback and thoughts on whether that makes sense or whether folks want, you know, it should generate a plan by default, it should always do XYZ um, what folks are looking for there.
>> Awesome. Yeah. Yeah. Thank you so much for that insight. Um, I guess my question, you know, when you're talking about kind of like, okay, these things to come. Um, what's what's the general like time frame for this? Like, do you all kind of spend time mocking this up and working through it and then the next go to insiders like just to kind of give people a little idea into that.
>> Yeah. So process-wise, like I said, our goal is to get something out there that is stable enough to use for real scenarios but is as early as possible to um get feedback. Typically, we'll have like a setting that you can go and enable to kind of turn on this experimental feature. And then we'll iterate on it in that phase until we feel like it's good enough to be enabled by default for stable users and kind of included in the next release. And so in particular, that that time frame when we go from having it available as an opt-in setting to enabling it by default, there's a lot of feedback and um iterative changes we make and so that can take, you know, maybe we nailed it and it is ready to go immediately, or maybe that can take a some time to to get right and make sure it's the right experience. So um, that's the process. As far as timeline, I generally have a a rule to not put out times as a designer because that's for engineering and PM to do.
>> Totally.
>> So, you can ask Carol about that.
>> Cool.
>> No, no, I think that that's still cool to like see how like the different pieces of the team uh kind of work together too to kind of make Yeah. make it to the end user.
>> Totally. Yeah.
>> Cool. Is there anything else that you wanted to show today?
>> That was it. The last thing I wanted to kind of plug for um getting feedback besides generally filing issues as you find um, you know, UX feedback while you're using VS Code is last iteration we launched the checkpoints feature um which is now kind of in line with your chat conversation and we've gotten a lot of really great feedback on that feature in particular and one of the things that folks are mentioning they'd like to improve it is being able to fork from a checkpoint. Um, and so this is something like a user problem that I would say is very early in our brains that we would love some early feedback on what folks are expecting to happen with their chat once they fork from a checkpoint. So, do you want it to open a new chat session entirely um that has summarized everything above it? Do you want to see it side by side? Like how do you what would you literally expect to happen after selecting an option to fork um from a checkpoint? Um, that's a big um uh area of user feedback that would really help us.
>> Cool. That's yeah, that's super helpful to hear um, you know, what's top of mind for y'all and thinking about that there.
>> Yeah.
>> Okay. So, if uh if that's the end of what you have prep, there's a few like little feedback things I'll just surface real quick. Um, but then I think we can wrap up. But I just want to make sure that people feel like they've been heard. Um, okay. Um, okay. Marcus said, um, sometimes I have to ask for a summarized view of the last result when it gets too verbose. Um, maybe a button at the end to be like, hey, summarize this. Give me the TLR here.
>> Okay. Interesting. Yeah. Part of I think having a button for that makes sense, but part of me is like, is it should we be fixing the verbosity, >> right, >> to begin with? um if it's too difficult to read. But I think that like really is in line with what we've been hearing about the output, especially from the more powerful models is like sometimes it's just too much output to like reasonably be able to understand, especially as it's coming through. Um, and can take a lot of time to like go in and read. And so we've kind of hit this like tipping point where it's Yeah. We we almost want an AI summary of the AI summary.
>> Right. Right. Which is like a weird really weird spot to be in, but I the the user need and the feedback totally makes sense. Yeah.
>> Cool. And then um other one uh it would be nice to be able to read back certain paragraphs not all at once. Um, oh, so prefer to listen rather than read. Um,
>> Okay. Okay. Gotcha. Yeah, because we have the the readback for the entire thing, but maybe that's again too too much and you just want to like like select or identify a certain paragraph. Okay. Interesting.
>> And then let's see. Can GitHub read the threads generate for the day and summarize the work for the day? Seems to forget what it did sometimes. I've not been successful getting a daily abstract. So maybe just like some sort of >> Oh, what happened today? >> That's very interesting. I hadn't thought of that before. Yeah. >> Scenarios here. Um, I just wanted to kind of give some >> sure time too.
>> Cool. All right. Well, Joanne, is there anything else that you want to uh touch on or chat about before we wrap up?
>> No. Yeah, just, you know, keep filing issues for things that you notice in the product. Any UX feedback, even if it's, you know, just this is confusing and you don't have a solution, we can go help find the right solution. Um, and thanks for having me today. This is really fun.
>> Yeah, I know. Thank you so much for being on here. I honestly feel like we should like every few months do like almost like a standalone like designing with Joanna and just like like have everyone like uh unleash all their feedback and things like that if you're on board.
>> That would be great. I would love that.
>> Cool. That sounds great. Well, thank you so much for being on here and yeah, we'll definitely see you again soon.
>> Great. Sounds good. Thanks for having me.
>> Have a good one. All right, y'all. So, that brings us to the end of our release live stream. Lots of really great stuff in there. Um, this will be available on demand on our, um, YouTube channel. So, just make sure to subscribe to us so that you can see that, catch up on all our other videos, um, and then also get notifications for any future live streams because we do these release live streams every single month. Um, but then we also do a lot of other cool live streams in between. So, make sure to check that out. Um, I think we've shared the release notes links a couple times. Um, but make sure to check out those uh release notes for everything that is uh uh a part of the release because if you can believe it, the two and a half live stream just kind of scratched the surface of everything. Um, and then also for uh, you know, make sure to follow us on social. We'll be posting a lot of things about the release. will also be posting cool extension spotlights um of other models that are being contributed through extensions and so kind of cool extensions that you can install there to get things like what AI toolkit does. Um, we saw Cerebrus, hugging face um so we'll do some spotlights there. So make sure to follow us on X, LinkedIn, Blue Sky, wherever you are. Um, we'd love to have you there. Um, with that, thank you all so much. We really appreciate you being here. It's awesome. Another release live stream. Um, and we can't wait to catch you next time. Have a good one. [Music] [Applause]