November 22nd, 2024 × #GitHubCopilot#AICapabilities#DeveloperTools
The Future of VS Code and Copilot
Cassidy Williams and Harold Kirschner discuss new GitHub Copilot capabilities announced at GitHub Universe 2022, including multi-file editing, custom instructions, VS Code API access, and more.
- Cassidy was nervous before keynote since Copilot demo was live, not prerecorded
- Copilot demo results varied between rehearsals, so Cassidy added fail safes
- Backup laptop on stage to switch to in case main demo failed
- New Copilot features announced include multi-file editing and custom instructions
- Custom instructions can enforce code conventions like spelling color with a u
- Custom instructions could reference specific documentation versions as models evolve
- VS Code APIs allow building Copilot extensions, like personal brainstorming tools
- Inlined chat allows efficiently prompting Copilot instead of using sidebar
- Multi-file workspace view makes changes easy to visualize in one place
- Demos change quickly with new features shipping daily
- Experimental Copilot settings add quality-of-life improvements
- Serverless Copilot extensions work across GitHub, JetBrains, and VS Code
- Next edit suggestions make changes and recommendations beyond initial edits
- Edit suggestions UI still being researched to balance utility and ease of use
- Repo indexing tailors suggestions to actual dependencies and codebase contents
- VS Code APIs allow custom local interactions between extensions and models
- Imagining To-Do Tree extension powered by Copilot AI capabilities
- Copilot now available natively in Xcode to reach more devs
- Experimental settings provide early access to upcoming quality-of-life features
- Monthly VS Code change logs detail latest Copilot updates
Transcript
Wes Bos
Welcome to Syntax. Here we are live today at not live. This is not live. We're recording at GitHub Universe, and we have 2 amazing guests on today. We just did an episode on some of the new exciting stuff to Versus Node.
Wes Bos
And we've got Cassidy Williams and and Harold Kirschner on today to answer some of our questions and and talk about it. So welcome. Thanks so much for coming on. Thanks for having us live. We're we're live in person. Live in person. This is really cool. I know. Really done this before, which is is pretty nifty.
Guest 1
You did the keynote, which was wild. I saw you go up there, and I was like, oh, man. I know her. Her. Yeah. I know her. And, like, were you been nervous? Like, I was nervous. I was I was hiding my panic. Oh my god. Like, I was so worried the demo wouldn't work. Yeah. I'm just because it was all it was all a real live demo and stuff where, like, I had a backup video just in case things didn't work, and I was just gonna say we're moving to it. And the fact that it all worked, I Wes so happy. It was because AI is nondeterministic.
Copilot demo results varied between rehearsals, so Cassidy added fail safes
Guest 1
Yeah. Yeah. And as I did so many rehearsals and run throughs, the results were different every single time. And and so I, like, I put in as many fail safes as I could, and the team was like, well, what if you rearrange this, change the prompt, this way and stuff? And, like, it came together at the end, and I'm so happy that it went smoothly.
Wes Bos
Yeah. And and Harold told me that there Wes somebody backstage
Guest 1
doing the same thing in case they needed to cut over to it? They were, like, mimicking me on their laptop. So if we had to to switch to a different laptop, they could. Yeah. That's so smart. Like, a triple backup system. So we had the video. We had the 2nd laptop. We had me, and then High stage. Open a prayer, and it worked out.
Scott Tolinski
Was that the the the most, like, intensity you felt before going on stage before? Because you've done a lot of stuff. Yeah. Yeah. I honestly,
Backup laptop on stage to switch to in case main demo failed
Guest 1
there wasn't a lot of intensity before. It was right when I got out, and I was like, there are a lot of people watching. Yeah. I really hope the demo does what I planned for it to do. Because, like, it's not like the copilot chat or anything ever failed. It would just not always return the exact same thing. Yeah. And when I wanted to explain, like, really specific concepts, I was like, I really hope it lets me explain these very specific concepts, and and it worked out. I was very happy. Had really good recovery in the rehearsal before. Right? Thank you. But you don't if you don't need that, even better. The even better. Yeah. I think that lends a lot to the authenticity of the demo. So if, like, people don't know, like, while they're watching, if they're pre canned or whatever. I know because even, like, Google could sometimes criticize for that. Yeah. Cool AI Deno, you scripted that. Right. You know? And you were actually doing it. Right? Yeah. Yeah. No. The only thing that I had, like, macros for was just I I had a really long prompt at one point, and I used it to type things faster. Yeah. Yeah. I wanna take that on stage. Yeah. That it was it was long. But besides that, yeah, no. It was all real. Yeah. I had people who do AI demos next to me asking, like, is that is that real?
Wes Bos
Is that recorded? Because, like, that's that's a big demo. It's like, yeah. I I saw it. Yes. Yeah. Wow. It's real. But so but even people like Google AI demos. Right? That's that's that's the next level of, like Yeah. That's the we ship these products in a way that that this came together on stage. It wasn't like it just made a graph. Right? It just made it wrote me net new code. It created new files, and it just it all worked. So Right. It was nice. It was it was a lot of features to compress in 1 demo, for sure. Yeah. Node kidding.
Wes Bos
So there was like, let's rattle through those features real quickly. Like,
New Copilot features announced include multi-file editing and custom instructions
Guest 1
what were what were the ones that we announced today? The one that I think is, like, the biggest, coolest one is probably multi file editing. Yeah. And so the fact that, yeah, it can it can work through multiple files at once is really awesome. Creating new ones and editing the existing ones.
Guest 1
And the one that I think is the coolest is the Copilot custom instructions. Yes. Being able to, like, say exactly what you want your code to do and then being able to pick your model for that Yeah. Is really nice.
Wes Bos
So that's in the what was that file called? We have it here. The Copilot instructions. It's still it's just a straight up text file. Right? Yeah. Yeah. It's a markdown file. Okay. Yeah. So you could you can even, like, format it at headings for, like, importance and stuff. Yeah. Yeah. And we've thought about we're trying to it should be YAML. And we have there's some more things coming. Like, there's, like, it doesn't doesn't work nice in large monorepos. Right? You wanna have the content back in there. There's more stuff. But this is, like, the easiest
Guest 1
solution to just unblock people, and it works across all different kind of repos. And it's very free form. I understand. And as I've, like, learned more about the prompt engineering side of things, you could say, like, under this heading, general guidelines and and, like, saying, like, things you definitely need to know. Like, you can be really specific with it and and get really good results. You know, the one I wanna do is when you write the word color
Custom instructions can enforce code conventions like spelling color with a u
Wes Bos
Don't. In a comment, use the correct spelling, which is a color with a u, you Node, and or write the my comments as if it were a Canadian account. Say a at the end. Yeah. Be like, you're like a moose. But, like, what what are what are some other use cases that people use that sort of prompting for?
Guest 1
Yeah. So so the case that I talked about in the keynote was basically adding a feature flag with LaunchDarkly at the beginning of every component. And that was just that was a way to show, like, we have the Copilot extensions available, but then it's also a thing that can be added to every component. I think
Wes Bos
probably the broadest use case I've seen is, like, specific code styles Mhmm. Or if you want, like, the autocomplete to follow a certain linting rule or something that that isn't automatic, and then, like, adding doc strings and stuff. Oh, yeah. Yeah. I feel like that's a really big one. I think the big one so we did talk to a ton of customers. It comes up left and right. Like, oh, GitHub doesn't understand my code base, where it's really around. Like, if if you look at this code that you give it, you wouldn't know that, like, that you use the other dependency. Right? If you want by the graph, like, how should Node use d three versus some other library that you don't use. And we we could get all these libraries from your package or JSON, but but that's like a giant just kitchen sink of, like, here's everything that's already included. So you're really giving that to the developer to, like, just if the AI makes a mistake, makes a wrong assumption. Like, that's basically the the basic workflow of it, custom instruction. Don't just fill it up with everything, but just as you use it Yeah. As it makes mistakes Things you keep hearing. Just kinda spell it out, like, oh, it doesn't do Tailwind. Like, because you create a new file, it doesn't use tailwind. Just tell it, use tailwind. I wanna have my thing sorted. I wanna have dark and light theme Vercel. And that's kind of the way. I mean, it's often dependencies that you wanted to use. It's code conventions you wanted to use. It's mistakes to make. That's that's kinda where you correct it. What about, like, you know, I think a lot about,
Custom instructions could reference specific documentation versions as models evolve
Scott Tolinski
so many libraries move fast. Right? Can you reference docs? Like, specifically,
Guest 1
use this version's docs. Use whatever, Svelte V5 docs because the model might not have an understanding of that code style. Right? There is a code referencing feature that I didn't demo that allows you to do some element of that, but I I don't think the custom instructions can, like, pull from from things that the model doesn't have.
Wes Bos
Con. Yeah. That would be a pretty here. Let's turn this into feature Wes. You know? We see. Yeah. Yeah. That's that's that's good. I gotcha. Yeah. So I'm sure you just walk did you walk around today and people just come up to you and I was like, hella. If you're there's Tell me more. Random suggestions. Actually, everybody was so happy. Right. I got very few. Everybody asked, like, so what what else do you want? Everything shipped. Like, we didn't ship. Like, shit. So, like, there's, like, a few things here and there, but then it's like, yeah, we we have that. Like, that's knowledge bases in GitHub Enterprise. Like, for the what Wes just mentioned, like, a way to reference, other documentation that you already have, that's knowledge bases
Guest 1
and those features. So just, like, bring these make people aware and making sure they work easy and easy Yeah. Be accessible as Wes. And Yeah. Like, when you're prompting it, you're also able to reference parts of your code Bos Yeah. And specific files as well. Right? Yeah. So that that is where in the multi file editing demo, I was able to say, like, based on this file, I want you to pull in data from this activity service, then create a new file based on that. And and it just knows it works. So you could pull in your package JSON and say, like, hey. These are what I have installed. Make sure it's based on this. And there there were some other things that I didn't get to demo purely based on time. When, for example, GitHub search, you could you can tag, like, the GitHub agent and say, like, tell me about issue number 8 or something, and everything will be just right there in the chat.
Guest 1
Yeah. Yeah. And Wes didn't demo that. I took it out of my demo because of that. Oh, no. No. They they I they were just like, you're getting close on time, and I was like, dang it. Okay. We cut that Node that one out. And then Oh, okay. There was also, code review where where you can say, like, hey. Based on these files, could you give me some feedback, based on Yeah. Things that we want in in the repo and stuff? There there's a lot of cool things. Oh, yeah. Okay. That makes sense.
VS Code APIs allow building Copilot extensions, like personal brainstorming tools
Wes Bos
Yeah. That's that's really neat to be able to reference specific parts of your code base because then I know Yeah. The the one thing we're saying is that it's not just the what model you use. Right? The models are surprisingly almost table stakes Node, or there's they're out there. But it's it's how you give your the data to the the LLM Right. And and how you then apply it. Right? Like, what's the UI and and whatever? And that's what is so exciting to me that GitHub and Microsoft are are friends.
Wes Bos
You can you can add the UI Oh. To the to the editor. Right? Like like, how much Right. Maybe, Harold, you can tell us this. It's, like, how much of the UI needs to be added
Wes Bos
to Versus Node in order to make these things work. Right? Like, are you Yeah. I mean, most of the pixels you see on the screen are in Versus Code core. Some of that UI is handled. Because otherwise, you the only other way to add UI would be either using your Versus Code component components or it's using an Iframe. And that's what you see everybody else doing. If you have any, like, non Versus Code looking UI, that's basically an Iframe that that's trying to get close enough. Oh, yeah. So, yeah, all the UI is Versus Code. Like, the attaching files, all those flows are in core. They're proposed APIs, but it's like them discussion hacking JS around it. But they're mostly proposed because they move so fast in in sequence and and strong relationship with how we evolved chat. Yeah. And you see that if you install insiders for Versus Code, which if you wanna get the latest and greatest, you should. You will see every day the Copilot chat extension updates as well because there might be changes that are synchronized because of the tools, so they might be depending on each other. So it's a really close relationship there. Just always trying new UIs. Like, one of the ones I really liked is you you sent me a DM. You're like, you should try
Wes Bos
or we had a call. You're like, you should try what is it? The inline chat? Node. Wes instead of opening the sidebar, you just write what you want. I love this. I was like, this feels way better to me Yeah. Rather than going off the sidebar and working on something. I end up not using sidebar chat at all. Doing in. Yeah. I almost exclusively use in line. That's so nice. Yeah. I didn't know about it. You know? And and then, like, I'm surprised like, I don't know how many other people might not know about it, but I was like, oh, this this feels a lot better to me. And it's just all these different
Guest 1
ways that you have to experiment. Like, are you guys always experimenting with different UIs for applying this type of stuff? Yep. Especially for demos. You're just like, okay. How can I present this information in the most efficient way possible? Where a lot of my Deno started as me, like, writing comments and saying, like, Copilot will auto complete this and being like, we should do it that way. But, yeah, I I think the in line chat is or is probably my favorite way of using it just because it's right there. And I could say, like, I actually Sanity like this, and it'll redo it in some way. And that's it's nice to be able to get this in the loop. Different. There's a lot of, I mean, interesting tricks that people are now. Like, the in line chart a discovering it. So now we have more more entry points. Like, we show a little sparkle if you wanna open it. So we're trying to really make sure, like
Wes Bos
like, you're if you're in a even Node of this feature right now, it is an entry point that makes it obvious. Mhmm. But I think, like, the one thing I noticed often, like, you can follow-up in Inland chat. It's something that's people who are not used to AI prompting yet. Yeah. It's like, oh, AI, give me something stupid.
Wes Bos
It's bad. Yeah. That's all. Gonna Yeah. Myself versus just like, oh, can you fix this? Okay. I'm done. Yeah.
Wes Bos
So JS it just just these little things where it making them super obvious, like changing the little field the text and the field. There's so many UX, AI UX things that have to evolve to to nudge people on the right path to enforce these best practices. But I think from a demo perspective, I, like, I I demoed writing a chess game in 3 d from scratch using o one, which is a fun demo, but not real world. But it it makes okay cool. But I started my 1st part of the demo was, like, I did it in in chat initially when I wrote the demo. It's like it's kinda creating a new file from chat JS kinda clunky story. I drop into a new file and then you save it. And then so I eventually just open in line chat and then it wrote like 500 lines of code. Yeah. It's beautiful. It's just like I have to speed it up because, like, it's going on for forever. Oh, yeah. Yeah.
Inlined chat allows efficiently prompting Copilot instead of using sidebar
Wes Bos
Yeah. It's 3 d chess. That's a pretty cool But it looked it looked great because then, like, oh, like, now I should really enable mini map, so it looks like so you can actually see the text coming in. So there's some Oh, yeah. Yeah. Depending on what you do, there's I think figuring out which UI to use, I think, is one one struggle I see. It's almost which UX to use too. Like, how do you wanna use it? Preferred flow. Like, do you and also there's there's confidence. Like, are you in an in an exploratory, like, more flow where you wanna like, I have a problem. I don't know the solution. I don't even know my problem yet. Or are you, like, I need to edit these files, and I need to I know how it looks like. And that's where, like, multi file edit really shines. You're very explicit Yeah. About which files, very explicit about Wes you look at the code, Wes, that's what I wanted, and you hit accept. Mhmm. And that's that's the sweet spot Vercel in chat who would ask, like, oh, like, which library could I use? Or what's what's the best algorithm to to sort through that? And then you can figure it out and you slowly get it in versus
Scott Tolinski
just in line chat. Like, rewrite this to async. Done. Yeah. Yeah. I thought that workspace stuff felt like a new UI or UX even direction for working. Because we were saying, like, alright. Are we are we modifying the editor, or it's, like, we need to rethink, like, the paradigm of an editor. Right? But, like, even the brainstorming or how it it brings in a to do list, essentially, that you can then modify and, man, this all just I think those are are really awesome explorations.
Multi-file workspace view makes changes easy to visualize in one place
Scott Tolinski
You had mentioned, Harold, that, like, before well, like, even, like, days or weeks before this, everything's changing so quickly that's why you can't record the demos ahead of time. Yeah. Yeah. Yeah. That'll literally change just fast speed. Moving. Yeah. Is it is it is it a lot of features needed to be happy. Yeah. There's a lot of changes to my demo. Oh, yes. Okay.
Demos change quickly with new features shipping daily
Wes Bos
And then JS that, like, features being pulled because they're not ready or things being added or just UI changes or all the above? Just added and updated, Wes it's just like, oh, the chat is a little sleeker now. Cool. Okay. I gotta change some stuff. Like like like, last, but I noticed, like, in in my demos, I always had to make this multi file edit Wes a really big Copilot edits because the buttons were so big. So it was, like, because it was accept all, save all. It Wes, like, big buttons. So I Wes, like, I it doesn't work for, like, tiny screen Deno. I mean, before I hit this as well. Wes. So can we my existence. Can we make the save button in image? So we decide, okay, let's move it all. So it's just like these little tweaks, but that they affect, of course, how you talk about stuff, how you point at stuff. And they didn't really
Guest 1
change the flow itself, but they're just like, oh, another thing. Yeah. Yeah. And there's so many different views where, like there's actually a really cool view for the multi file editing where it's all in Node place, and you can just kind of scroll through. And I thought it'd be cool, but then people wouldn't see, like, the magic of, oh, it created this file and this file and this this. Like 1 file. Right. Yeah. Node is that actually a view where you can see it all in one go? Yeah. Like, I like that. Like, a dip. It's way better than for real life work, I would use that view. Okay. Cool. Demo, it was cooler to show, like, it made this and this and this. You know? Could be just added this in a in a recent month. It's a it's a multi file,
Wes Bos
multi diff view.
Wes Bos
It looks looks amazing. It makes it really easy to scan. That's really nice. That's that's great that you're spending time on that because I find one thing Wes I'm I'm looking at this stuff is if I get overwhelmed or I'm scared that it's doing too much and I can't can't grok it quickly enough, like, this is what I want Or you're like, oh, it's getting dumped too hot for a while. Yeah.
Wes Bos
Node. Too much. It is it's doing too much, you Node, click action, and I'll just do it myself.
Scott Tolinski
Rock it and understand what's changing. Yeah. I think we both said we both kinda stay away from multi file generation
Wes Bos
just because of that, you Node, not being able steriness. Yeah. Not being able to really understand what it's doing. And it's hard to steer too because some Node of you need to tell it, like, that edit in that file wasn't right, but don't don't touch Wes. Scott it gets harder to to prompt if you to fix it. Yeah. And that that's why we like to, in most fashion, you can, like, revert single changes. Oh, I see. This one is good. This one's bad. So you stay in control around that where it gives you, like, oh, yeah. This wasn't right. Don't need to go in and prompt it because that that's, like, mental effort as well. Yeah. Yeah. How do you describe, like, that change? You know what that's a killer feature for is the refactoring. You know? Like Yeah. A good example would be,
Wes Bos
I have a form, and I'm changing the field from name to title. You know? And there's there's a label with a capital t title, and the, like, what is it? The f two rename symbol is is good, but there's often other parts of the the application that are not tied to that symbol. Right? There's UI and whatever or adding another field. You know? Yeah. And you have to touch your schema. You gotta touch your back end. You gotta touch the, like, a React Hook that has state inside of it and updater functions, and that's amazing. They're like, oh, just I can so quickly It just works. Yeah. Do it. Yeah. He just finally replaced the the string of name.
Wes Bos
That might work.
Wes Bos
Yeah.
Wes Bos
That's the one specifically. That kills you. I actually have a tip where I I can do a find and replace in Versus Code, and it will keep the case,
Wes Bos
which is really good because sometimes stuff is uppercase, sometimes stuff is camel cased. Yeah. Preserved case. Preserved case Wes you find or replace is good. But Yeah. Obviously, it's the the LLMs are are a little bit more flexible. I mean, for search and place, it might be interesting, like, what DLM does. So that's that's what we're looking at, like, where else in these flows AI can help. Like, we have 1 AI? So we need to talk about the experimental UI. It's like, if you go into if you Node, in the latest release, go into your settings and look for GitHub Copilot chat, you'll find a whole section just experimental.
Wes Bos
Okay. And one of those is, like, Wes we call AI search. So in in the search panel, where she used the semantic search it has to add additional results below. So it's not like the exact search term user, but you do, like, form submissions or something, and then then it will go in search based on Vibe. Vercel. Oh, yeah. Search.
Experimental Copilot settings add quality-of-life improvements
Wes Bos
So it gives you, like you don't have to think about, like, oh, what Wes the exact wording? Is it, like, the right case? Is it so you can be more open. Just Oh, man. It's like a fuzzy search. You know what? At the end of the day, I have, like, hundreds of demos on my computer, and I can never find the demo. I was like, I built something, but I don't know Wes it is. It's somewhere on my computer. And I usually just drag my entire code folder into Versus Code and start doing, like, a fuzzy search because that's better than Mac OS's search. Right? But Node it one step further.
Wes Bos
I built something with a webcam that does x, y, and z. Yeah.
Wes Bos
Oh, that's mine. Yeah. Yeah. For sure. Good. That's good. You see add work base.
Guest 1
I I was gonna say that that you could make a Copilot extension for that. That would be pretty good, which I can talk about. Really? Tell us about that, Lisa.
Guest 1
That's something that I demoed a little bit, in the Deno. But, Copilot extensions was released this past May. I think it's, like, technically still public preview, but anybody can access it and and build for it and stuff. And it's basically you can create your own agents with different commands in Copilot chat and have it do whatever you want. And so the one that I demoed was the LaunchDarkly one where you can create a feature flag, name it, toggle it, and basically control Node Wes you can create a feature flag, name it, toggle it, and basically control all of it within Versus Code. The one that I made recently was actually based on my old startups app that we shut down, but I missed it. And now it's in Versus Node, where, it was a brainstorming buddy where I was able to use the Copilot. You can use chat with your voice until, like, you can talk instead of typing. And so I Node a Copilot extension that let me just kind of talk out my ideas inside Copilot chat and then use whatever results I wanted from that to write code. And it's not bad. It's basically a serverless function that you write stuff with, and then you can make it go through files on your computer or whatever APIs or or whatever you want. That would be cool. And,
Scott Tolinski
yeah, from my entire computer. Yeah. I can never find anything. Totally talk to the computer. No. The, and there's a Sentry extension, so shout out to Sanity. Yeah. I heard theirs JS really good, actually. Oh, I have no doubts about that.
Serverless Copilot extensions work across GitHub, JetBrains, and VS Code
Scott Tolinski
And if you want to see all of the errors in your application, you'll want to check out Sentry at century.i0forward/ syntax.
Scott Tolinski
You don't want a production application out there that, well, you have no visibility into in case something is blowing up, and you might not even know it. So head on to reduce entry.ioforward/ syntax. Again, we've been using this tool for a long time, and it totally rules. Alright.
Wes Bos
Can we ask you about cursor? Is that allowed? Is that a forbidden word? You Node, I don't actually Node, but ask me, and then I can find out later. So I've been tweeting about all the updates today. Everybody's stoked because they want a lot of those features. Right? Right. And quite a few of these things today announced, which is is Wes things that Cursor can do and and we've all been wanting, and I've been been kinda rooting for it. One thing, and Wes wanna ask is if this is coming, is the multiple line suggestions. I know Copilot has multi cursor completions with ghost text, but being able to like, as you're typing something, it will suggest, oh, edit these 4 lines within it. Is that something that something that is gonna come, or is that something you're looking at? You can probably speak to it before. But yeah. Yeah. We have so if you look at it, like, the GitHub Next has been working on for a bit the next edit suggestion
Wes Bos
Okay. Came out end of last year. I'm not Scott sure exactly when, but it's been, like, in the works for a bit. Like, same similar UX stuff. Here, you made a change. Like, this is the next change. Yeah. So it's yeah. And, like, suggested changes beyond what it's made so far. So also going in, not just with ghost text, but actually making edits. And then yeah. So we've been we've been taking that on. It's it's been, yeah, out of GitHub next busy moving it. It's it's a research Yeah. And now taking on and bringing it into the world. Okay. It's in on our list. I I have it working locally. We've been self hosting it. Oh, okay. Okay. But it wasn't just ready yet for the grand announcement. We would like to announce stuff that people can use right now. Yeah. This is my new one. And, you know, everything JS ready now for you to try. We just released it today, which is very true for today, especially. Yeah. We wanted everything to be out this week. And the things that couldn't, we'll do soon. Yeah. Okay. Yeah. So I'm looking at a demo right now, and they're editing 1 function, and it's trying to suggest
Wes Bos
a change to another function. Because you added a parameter to this function here. Oh, you probably want to start using that in another function. Right. Like adding a component in in a React thing, and then then it just
Next edit suggestions make changes and recommendations beyond initial edits
Wes Bos
skips to that. The UI for that is ghost text, which is the It's like auto completion. Yeah. Exactly. And the videos here JS yeah. It has has changed since. So we're that's that's being a big part of how, like, where the affordances come from, how to make it easier to use is finding the right UIs. Because sometimes edits can be further down in the file. Sometimes, like, how how do you make it different? Or a game as you said, oh, how do you make it diff easy to review is is still, like, a really hard problem. Mhmm. Especially if it's if it's just popping up with some confidence, the way it's not, like, even something you ask for, but it's like Yeah. Hey, we wanna apply this. And then it's like, oh, I wait. I'd like to check out what you're telling me here. Right? So it shouldn't slow you down. Mhmm. But it should be enough on on the Node. You can easily say, like, yeah. That's what I want. And you can just tap over it. Yeah. There's a fine line between it being annoying
Wes Bos
and Right. Super helpful. And I don't know where that that line is because sometimes I have to, like especially when I get into complicated reduces or my guy Don't get me started. I'm just like, no. Stop. Let me think about this for a second. It's not what I want. You know? Yeah. And, sometimes it gets too magical Wes with certain things. Yeah. And you wanna you wanna be able to still understand your own stuff. Fine line. Yeah. So this will be able to both suggest additions as well as suggest, like, things that can take away from the code as well the plan. And will it will it just be ghost text, or will it, like because cursor shows, like, diffs. It will show, like, plus in green and minus in red. Is that something that's maybe added to Versus Code? Well, we thought you showed that in your I was gonna say that it's it's a lot of, like, what you saw in the multi file links, and I think everybody's trying to just make sure
Wes Bos
that the research shows that this is the right way to do it. Like, users actually want it this way, not just thrusting our opinions on them. Yeah. I think also the the connecting the bits. Like, you have next edit suggestion, but how do you get from, like, okay. This is you're doing on the right track, and do I wanna keep tap warp tap? Or do you just wanna say, like, do you wanna actually pull this over into a multi file edit? Because I think I know Node what you want, and there's some more changes you can just do in 1 bit versus tapping Yeah. And I find that in cursor sometimes, I'm like, it does about 4 lines at a time.
Edit suggestions UI still being researched to balance utility and ease of use
Wes Bos
And I I was converting an array of strings over to some other data type. And it was just I I had to hit this tab You wish it was doing a little bit more. Tab. Yeah. And I was like, no. I want you obviously know what I'm doing here. Totally. I want I have 40 items in this array. It's you're doing it for every line.
Wes Bos
That would be cool if it then suggested, hey. Yeah. So these features don't live in isolation, but they kinda know about each other. Like, well, maybe if you open chat and just finish what I started and it just picks up. Like, because this NES already builds up this context of what you're working on. It knows your past edits. So what if you can give that to to chat and just say Oh, man. This is the multi file edit I started Yeah. And these are the files you should apply it to or I just did this edit. Please apply it to these 5 other files and could run that. I think that's that's the magic we wanna unlock eventually where it's it's not just, like, different feature teams work on stuff, but but it feels like one cohesive. Yeah. And that's also where the repo indexing is really nice too because it really uses your repo as a source of truth instead of just ideas that it has about code from the model. Oh, yeah. So it repo indexing will obviously just, like, go through your your entire code Bos. And what does it do? Get ideas as to The style, like, head yeah. Format, what functions exist and stuff. And so, like,
Repo indexing tailors suggestions to actual dependencies and codebase contents
Guest 1
keep referring to my demo, but that's Yep. But I've what I've been doing for a little while. Yeah. But, yeah, like, the first thing that I asked was, are we using a line graph anywhere in the code base? And it did, like, intent detection saying, okay. Based on what she's asking, I know to ask the workspace agent to go through the repo based on what I've invoiced. And and it just did all of that at the chat right there. Amazing. So okay. So you guys I mean, it feels like we're in a new world of
Scott Tolinski
interfaces and UX for these things. I mean, even anytime something new comes out, it's slightly different. We all go, oh, man. This is a little bit different, a little bit Right. Better. How do you develop new ideas here? Is it just doing a lot of coding and just what feels nice for me? What would feel nicer? Is it research? Like, what is,
Guest 1
like, when is the research on? Teams do a whole lot of research and user testing and iterations and stuff like that. Like, for, like, my own personal stuff, I'm more just like, if I keep trying this, what am I comfortable with? And Yeah. Like, there's sometimes where I'm just like, I'm just gonna turn it off. I just wanna, like, quietly code Mhmm. Some nice little HTML, not even think about Yeah. Anything. And then Use edit or, yes. Exactly. Be like, just just simple stuff, and then I'll turn it on when I wanna do some some more magical things. And so, like, I I
Wes Bos
think every individual developer kind of has their own iterations that they do, but at GitHub, our itself and and Microsoft too on the Versus Code team, there's a lot of research being Node, tons of user testing and talking to customers and and open source projects. Yeah. That's something that there's really so many channels. Like, so for Versus Node, Copacjet, we have a public repo where people can file issues. Yeah. And you you find me responding to issues in there as well. It's just triaged by the team. That's Node source. We have run surveys in in the tool like most products, but we also have this huge field team that that is sales and customer success and and everybody out there talking to customers, talking to clients, talking to developers, and bringing back feedback. So this JS and this isn't feedback because you you get different kind of personas in there from, like, the the enterprise decision maker who wants, like, oh, we need we need it to buy 2 software licenses, and we need to customize it to our ginormous monorepo, and it needs to work fast or all these other little pieces details that you don't see in your own usage. Yeah. I think that's interesting, but, like, the v Scott team also does a lot of things. If it features self hosted, if you use it heavily, it becomes it becomes great. So and and we're also trying to, like, a lot of this, like, just by checking the AI tools, basically. Does this make us productive? Yeah. But I also bring it out to customer development. So when we actually talk, bring it out, it's like, let let somebody try it out, talk to customers around, like, their experience with AI in general, but also have them try it on a tool, try different tools, try different AI flows, and try it out on a code Bos they know, try it out on a code base they don't know. It's it's vastly different. Oh, yeah. Yeah. So we we see people really struggle with something that in a language they're comfortable with, and that's still a thing of AI. Like, some features work really well when you know what you're doing, and some features really fall apart when you're, like, in a completely new code Bos, and AI just leads you astray, and you follow follow red herring, and you just lose sight.
Guest 1
Yeah. And I I know that the GitHub Next team too pnpm so much time figuring out like, okay. If we made this experiment, what would people think of it? What changes should we make? Yeah. Is it something worth pursuing, or is it something that we should just say that was a fun experiment? Yeah. Oh, that's so cool. There's a lot of research teams. I think about that a lot as just, like,
Wes Bos
do I not like the way that this works because I just need to learn how it works? Or because Yeah. I often look at features like that. I'm like, it might just be me. You know? Maybe
Wes Bos
I I don't like this, but it's maybe I just need to learn a better approach to it. It's really easy with AI to to show that it's bad. Right? You just you just do bad prompting. You give it the task it's not good at. And that's why I think why why more experienced developers have an easier time figuring out how to use AI because they quickly learn from, like, their own sense of skill. Like, oh, this is where it's good at and this is where it's not good at, which which can limit you as Wes. As it evolves, you're like, oh, okay. I only use it for basic tasks even though it has grown its skill over time. Like, with more context window, with different models, with different context, it gets better. But one Node source of innovation has been interesting. We've been I I touched on it in my talk later JS we've been hacking the past weeks on our new extension APIs in Versus Node. So you can actually access Copilot capabilities from in the Versus Code extension API. And you've been you've been dabbling. Yeah. And that's Bos on this you have access to the language models. You can actually run LM calls in in Versus Node, so you can write your own little kind of brainstorming guide just for Versus Code. You have access to tooling, so you can use, like, the code search bits that we have within your API. So you could do that tool to like, which demo did I do? Or Yeah. Write me a new demo based on this demo plus this demo, and I wanna see the best Bos. Okay. And then you have access to make a chat participant as well. So you can write your own custom commands, which are things we this idea of, like, what if I had an agentic flow that that can take a file and summarize it in a specific file for me? So you can you can package that in a specific instance.
VS Code APIs allow custom local interactions between extensions and models
Wes Bos
Wes. That's cool, actually. That's that's really neat that like, if you think about all the useful extensions that Versus Code has,
Wes Bos
now what does that look like when you also say, hey. You can have access to the the LLM? It's a Copilot. Yeah. Right. Hands and men. Yeah. Some pretty nifty stuff. And if you already have extensions, there's so many companies who build extensions internally as well. Mhmm. That's actually when we first shipped it out as a capability. We didn't even talk about it much. Yeah. And then we broke it one Node, and there were, like, 5 enterprises we never heard about. Hey, can you can you fix it again? So people Yarn already, like, oh, yeah. We Wes of course, we use this. Oh, really? Yeah. Are you able to tell us what kinds of stuff they were doing internally? Actually, we don't know yet. So we we we Node we we broke it for a day. We know. We know. We've heard.
Wes Bos
Yeah. There's so many use cases, like connecting it to your own issue tracking system. Like, anything that's in house that the AI wouldn't even talk to, you can easily same with the Copilot extensions on the server side.
Wes Bos
So then it works also on the GitHub .comchat. It works in JetBrains as well in the future. So that does a lot of kinda using building that extension once and using it in all Copilot services. Mhmm. Or if you just care about Versus Node for for your own use cases or your teams,
Wes Bos
then you can do that as well. Yeah. Man, that's great. I'm just looking at my my list of, Versus Code extensions. I'm trying to think of, like Like, how can a model work with these? You add you add AI to any of these. So yeah. You haven't really seen that yet because it's it's either too large to run a a model locally or it's too expensive to to do that type of thing. But Yeah. There's really really cool demos from Stripe and MongoDB, for example, in there. Mhmm. So they they use it to to write the code based on the information they have in
Wes Bos
your own setup. Okay. Just make make it, like, integrate a Stripe checkout, and it
Scott Tolinski
integrates the Stripe checkout. That's cool. I'm thinking To do Tree To do Tree Scott to dos skins. Oh, yeah. And then just does them. Better comments. Yeah. Deno. Yeah. Done. Right? Yeah. Hey, I Tada. Wes. Tada.
Imagining To-Do Tree extension powered by Copilot AI capabilities
Scott Tolinski
Node. Just just do. Do. Yes. Do do.
Wes Bos
That's great. Yeah. Yeah. It just writes the code for you. Yeah. That's actually not a bad idea. Yeah. Not a bad idea. No. Because, like, that's before I learned about the ESLint chat, I was using just comments as a way to, like, make it do what I wanted. Yeah. Oh, yeah. I Wes just writing all the comments first. And then you go on the next line and hope that it did it. And then I was like, woah. It's much easier if you just pop the whole editor open
Wes Bos
and and write what you want there. Yeah. Yeah. So if you check out, there's a setting in experimental section in Copilot chat that gives you this experience. So you can basically you write natural language and line of natural language of what you want. Mhmm. And then it shows you just hit control I and I'll I'll gonna make it happen for you. So it picks up the comment, use it as a prompt for ESLint chat, picks up the comment, and then just to be right. You know, Warp has that. So my terminal has that. Yeah. And I I just all time, like Yeah. FFmpeg
Wes Bos
convert this MP 4 into an MP 3. Yes. And then Yes. Tab Oh my gosh. Specifically
Wes Bos
FFmpeg. Yeah. I was gonna say FFmpeg
Wes Bos
specifically needs a lot of that. With his own AI. Or Seriously. The one I always do is I git committed a file that was very large, and now I need to remove it from my Git history. I don't know what that I always forget what it is. It's git r m cache dash dash whatever.
Wes Bos
I always forget what it JS. So I just I just type it. I accidentally committed this large file. Please remove it from the Git history, and it does it for you. Right. Let's see. You save and warp, but in Versus Code, you would have those with the the ESLint chat also is in the terminal. It's in the terminal. Well, I need to maybe I need to make a a jump over to the the Versus Code terminal. Yeah. I I Multi window, you could now pop it out. Yeah. That would my my hang up would always I can't you couldn't pop it out. Same. It's been you popped it out for 8 months now or something like that. I did not even know that. Yeah. You gotta watch my videos, Scott. I don't watch your videos. I swear to God. Stinks. You do a lot video. Yeah. I wanna think we retweeted it too. Yeah. You can pop it out. Oh, that's great.
Wes Bos
Cool. Anything else? We haven't haven't touched upon anything else. You're pretty stoked? Or It's in Xcode now. That's pretty exciting. Yeah. Yeah. So I downloaded, a I opened up Xcode the other day, and of of course, for some reason, it deleted all my simulators for some reason. I'm curious to read that all the time. Another I redownload it. A little checkbox for Apple's own Yep. Thing. And I was like, oh, it's interesting Apple's getting into that game, but now you can run Copilot on Xcode.
Copilot now available natively in Xcode to reach more devs
Guest 1
Yeah. Node. That that was an announcement that, yeah, we made today, and it's really exciting. It was it was fun actually getting to say it to the people because they're like, what? They didn't expect it. And and, yeah, I think that's going to be a really big one for so many Bos developers, for sure. Yeah. Yeah. Yeah. Yeah. Because that's getting in front of a completely different group of people. Yeah. Yeah. Exactly. A lot of people warp the a lot of Bos development, yes, you can do it with other editors, but Node is where you live. That's why everyone's using it. You know what? I, I've been working on a a video game with my son using Godot, and they have, like, a built in text editor where you write JavaScript. And I found myself just opening the product in,
Scott Tolinski
Versus Code simply to use Copilot with the Godot script. But, like, again, it's interesting to think about the future of using Copilot outside of Versus Node. And yeah. Man. Yeah. That, like, reached a whole different amount of people. Right. It's pretty amazing. Yeah. Yeah. And that's it's been cool seeing it being able to be added to so many places, and I I think, ultimately,
Guest 1
that is what the team hopes to do JS to just keep pushing it to as many editors as possible.
Wes Bos
Yeah. Although, we always make fun of make jet brains jokes, on this thing. Oh gosh.
Wes Bos
The the number Node comment on every video I do is Webstorm.
Wes Bos
Webstorm already does this. Webstorm does it. Wes and I always reply, what's that? They always they're just like them nuts. Obviously, it's a it's a it's a fantastic editor as well, but that's my that's my little shtick that I like to keep up. It's respect.
Guest 1
Commitment to the joke is what matters. Yeah. Yeah. Exactly.
Wes Bos
You got a lot of those Wes you just you got them, ready to go. Yeah. Yeah. Or it's just that every time we get to, like, Wes live Deno, it's like, oh, there's a Microsoft person with a Mac laptop.
Wes Bos
Oh, yeah. Yeah. Yeah. Wes. I bet you get that a lot. But lots of people use Macs at Microsoft, don't they? It's also, it's a cross platform
Wes Bos
editor. Like, why why would you why would you use it heavily on everything? Yeah. I have a Windows machine at home. Lots of people use it on Windows or A lot of people that work at Google use iPhones. I mean, yeah. I mean, you gotta use what you like. Yeah. You kinda have to.
Wes Bos
Just kidding.
Wes Bos
Cool. Anything else we we didn't hit? Or do you have anything else there? No. No. Nothing explicitly. Yeah. Wes, and any I I can't ask you for anything in the future. I'm sure you've been working
Wes Bos
your tail off for the the last little bit. Like, my brain is just kind of white noise where I'm like, wow. We made it here. Yeah. I'm gonna sleep today. Yeah. Yeah. I think one one thing, if you if you check out the experimental section and and get a COVID chat, there's so much more stuff coming up that we Okay. Didn't talk about. So many quality of life things now. If you open chat, you see, like, this little context bubble that you can now control what goes into chat. There's so many little things just like the implicit context detection Wes detection where it just invokes the right thing based on your prompt. So all the little things we haven't talked about. So like like Like the code reviews are so cool. The I wish I could've demoed that, but that's I think it's coming out this week. Yeah. It's it's all access. It's coming out to all because it's, Deno. Like, it's public public waitlist. Also, subscribers have access. Anybody so anyone who has Copilot subscription can get access to all these features. That's cool. Okay. To be clear, for people who might be listening to this, how do you get in they're they're in Versus Code. How do you turn on experiment? Because you've mentioned Yeah. So in the settings, scroll down on the left side for GitHub Copilot chat. You can do, like, the the tags search as well if you tag experimental on the on the right side of the search.
Experimental settings provide early access to upcoming quality-of-life features
Wes Bos
And also, you know, preview and experimental settings. Some of these are more self explanatory. Like, we have one Node is temporal context. If you open like, one thing completions does kinda magically, it it looks at your open tabs on what you recently edited. Yeah. And we kinda brought that into Inland Chat. Like, what if Inland Chat knew that you just edited something over here, and it brings that that file context at least over? So there's some of these ideas that are we're still kinda trying to figure out what exactly the shape is. Yeah. You know, there might be side effects. Like, 1 there's a big section on Copilot instructions in there. You can have Copilot instructions for the test command. You can have Copilot instructions for, specific areas, like like the Weavey one as well. So just just more more power user ops, but also things we're we're kinda exploring. We're getting feedback on. That's awesome. And if people wanna learn about all these different features, what's the best spot to Wes. Google will tell you when there's an update, and then you can
Guest 1
I know the GitHub blog has been just kinda pumping up post about stuff? Good. Yep. Node change logs. The once a month where the
Monthly VS Code change logs detail latest Copilot updates
Wes Bos
the the change log comes open, there are a lot Scott of stuff will be in there as well. I love going through that every time Same. It pops up. We got a Scott about it more, I think, because there there's so many cool things that come in, but we're There's things I miss. Yeah. Oh, yeah. I feel like I read it all and I Just a fire hose. Yeah. Yeah. Totally. No. I feel like that's they do it's a pretty good job at, like, doing a a quick rundown Yeah. It's a good rundown. For sure. The new features in there. Yeah. If you follow our code handle on Twitter, I think that's that's where you
Guest 1
kinda breaking down Tolinski smaller bits and videos. So I think that's code. Yeah. And, Burke does a pretty good job. Burke does a lot of videos. Burke Olivia. Yeah. The whole team is working at He JS kinda big on TikTok. Big on TikTok. Yeah. Really good at TikTok. I know. I I I feel like I learn new things all the time. I'm like, oh,
Wes Bos
okay. My You're true. Another one of my shticks is anytime they use my theme in one of the TikToks, I comment, what theme is that? Oh, yeah. Nice. She comments on her own videos. Great video, guys.
Wes Bos
Yeah. It's good. Oh, great. Cool. Alright. I I think that's that's all we got today. All we got. Yeah. Thanks so much for coming on. Really appreciate all your time. This is really cool. I'm sure you guys are zapped by Node. So I don't know if there's a party tonight or not.
Guest 1
Sleep or party? Yeah. I was going to say a nap Sanity. So Yeah. Party. Yeah.
Wes Bos
I'm feeling that right now too. Ago. So it is probably a nice dinner somewhere, hopefully. A nice dinner. Yeah. Just gonna go home for sure. Well, congrats on a awesome conference, and thanks again. Yeah. Thanks for having us. Congrats.