Video: Code Generation Got Fast. Shipping Didn’t. | Duration: 3627s | Summary: Code Generation Got Fast. Shipping Didn’t. | Chapters: Welcome and Introductions (0s), Scaling Teams with AI (0s), AI Evolution Timeline (0s), GitHub Copilot App (0s), GitHub Copilot Demo (0s), Parallel Sessions (0s), Multi-Agent Orchestration (0s), Canvas Workflows (0s), Canvas Customization (0s), Agent Merge Feature (0s), Automation Workflows (0s), Automations and Scheduling (0s), Customization and Discovery (0s), Real-World MCP Applications (0s), Expanding User Base (0s), Cost Controls & Wrap-up (0s), Copilot Integration (0s), Git Repository Q&A (0s), Q&A Wrap-Up (0s), Automated Code Reviews (0s), Closing Remarks (0s), Session Overview (7.105427357601002e-15s)
Transcript for "Code Generation Got Fast. Shipping Didn’t.": Going on, everybody? Thank you so much for joining us today on this beautiful Tuesday morning, wherever you're at. Might be afternoon. It might be evening. But we're super excited to talk to you about the new GitHub Copilot app and how our team is using it to build get the GitHub Copilot app among other things here at GitHub. I'm Pierce. I'm a product manager working on the GitHub Copilot app, CLI, Versus Code, among other things. James, do you want to go ahead and introduce yourself too? Yes. Hello. Hi. I'm James Clancy, and I am a PM also on the GitHub Copilot app. And we're excited to be here today and talk to you about AI. Awesome. Let's do it. Let's jump right in. So what are what are we gonna talk about today? So I thought it would be very interesting to kind of show our basic end to end we have on the team. So, I always find that it's helpful when building developer tools to build for yourself because all of us are engineers as well. And so kinda throughout this session, we thought it'd be fun to show you how we're using this app to get the most out of, out of it, across kind of different stages of the software development life cycle. So, obviously, building things with the app, shipping things, so not just creating more sessions, but actually getting our work shipped, and also scaling. So I think that everyone feels like they're being asked to do so much right now, and, the app can help with that problem too. So we'll jump into each of those and go ahead and start with kind of a challenge. So, you know, you're gonna hear a lot of people telling you you can get more done with AI. I I don't think that I'm gonna say anything different, but I would say that our team is a perfect example of how this is possible. But I really think the key is you have to challenge yourself to get even more, like, to find even more scenarios where you can leverage AI, to scale yourself and your team. So I'll give an example. So the GitHub Copilot app team, we're, like, eight to 10 people, and we're building this app. And we put it together in a matter of, a couple of months and got it out the door. The Versus Code team, which is used by, Versus Code is used by over 50,000,000 people. Versus Code is only about 40 people. And so I know that this is true with AI because our own teams are living it here. And so I think, actually, one of the big limitations for getting more out of AI is challenging yourself to say, what can I actually get done with this thing? Pushing the boundaries of what's possible. The models keep improving every single week, every single month. And so things that maybe you tried two months ago would not work today or sorry, would work today that wouldn't work two months ago. And so today, we're gonna walk through some of the techniques that, that work on our team for using the GitHub Copilot app. So, you know, thinking a little bit about how AI has evolved, I started using, AI and development a long, long time ago. In Visual Studio, we had something called IntelliCode. It was a very basic machine learning model that, suggested things, in the IntelliSense bubble that we had inside of Visual Studio. And then over time as, LLMs got introduced and improved, we introduced the first version of GitHub Copilot, which had these ghost text suggestions. And so, basically, you jump in the editor, you start typing magic, like, you're the end of your line and maybe the next couple lines get completed. And that felt so magical at that time, and it's it's kind of crazy to think that was only a couple years ago. Then AI kind of evolved to not just finishing my current edit, but predicting my next. Still in the editor typing, but based off the intent that I'm, you know, that I'm typing inside of the editor, the AI would predict, like, maybe five lines down the next statement that I'm gonna add. Then we kind of start starting getting closer to agents where we had things where like Copilot edits where I could say, I want you to make this page blue. Right? And you could use natural language. And then from chat, those edits would be applied into, your code base. And then finally, last year, we introduced agents. So agents are available everywhere inside of GitHub Copilot and this is basically giving the AI tools that it can choose to use. So some of those tools are built in like searching your code base, writing files, but you can always append it with additional tools. And over the last year, we've seen how pretty much everything has become agentic, because it turns out this pattern of, looping and getting the agent to or the model tools to call can actually do incredibly capable things. We've also seen how the models have improved. So when I first started working on GitHub Copilot, we tracked this metric called committed code from agent. And so, essentially, that is like, of the code that's generated by something like agent mode and Versus code, how much of it is actually committed, which we felt like that was a reasonable proxy for, the quality of the agent. So when I first started, we were seeing about 50% of code being committed from the agent, which is still pretty incredible because before the number was zero. With some of the latest models, we're seeing high eighties, low nineties. And that's just in one year of progress. Right? And so if the models have improved this much, then what you can do with these models has also changed. How we partner with these models and agents has also changed. And so we kinda started realizing this on our team. So what were the things that led us to create the GitHub Copilot app? So the first is that we noticed ourselves as we had more trust in these models doing more than one task at once. So, like, I would kick off something. Maybe I trust that to execute autonomously, and I move on to the next task. Maybe I'm working on two issues at once in a future. So we started seeing ourselves parallelizing ourself a bit more. We started to struggle with, what is actually important. So in a world where you can do anything, it's actually very important to discern what you should be doing. Right? Because it's very easy to just do a lot with AI, but the most important thing is you're actually working on the right set of things. And in some cases, like avoiding things, that are not worth your time. Right? So figuring out how to spend your time also becomes very tricky because it's very tempting to just kick off a session for everything. The third one is landing changes. So, like, if you're doing more work with AI, even pre AI, I think for every single team, we were all kinda struggling with, like, this code review thing of, like, oh, we get our PR up, and then maybe it sits, you know, as an open PR for days or weeks. We go back and forth on reviews. And with AI, this problem for many teams has actually got worse. Right? We have more PRs than ever. Because we have more PRs than ever and code review is already a bottleneck for many teams, a lot of teams just see their open PR account growing. And so it's easy to say, like, oh, just do more with AI. But it's important that you actually are landing these changes in your code base or you're not having any impact. Right? So we saw this as a challenge. And then we also saw ourselves doing a lot of the same things again and again and again. Okay. We have to prepare a change log. Okay. I have to prepare for my day. I need to go through my calendar and make notes of all the meetings I have and what I need to prepare for each of them. And so as we were doing more with code, we were also noticing ourselves in our day to day having a lot of repeatable work that we wanted to automate. And so that leads us to the GitHub Copilot app. So the GitHub Copilot app is, is a brand new experience, the latest in all of our GitHub Copilot services. We already had Versus Code and other editors and IDE support for GitHub Copilot. We have a CLI and Copilot CLI, and now we have an app that you can actually go in and partner with GitHub Copilot as well. And the idea with this app is that you can basically work across the entire your software development life cycle. So we saw tools that can help with parts of this. Like, maybe they would help me with, like, you know, the inner loop of testing, debugging code. Maybe they would help me with planning. Maybe they would help me with delivery. And what we really wanted is one app where we could do this entire intent. We don't have to switch to 15 different apps and applications and Windows to get our task done. We want something where we can find what work to pick up. We can start sessions, with with agents, to actually go and accomplish that work. We wanted a surface where we could review the outcomes of that work, so not necessarily spending so much time on the particulars of reviewing every line of code, but reviewing the outcome that our agent produced, and actually landing this work in our codebase, inside of GitHub. So we wanted an entire end to end for that. And so this is the GitHub Copilot app. And we're gonna we're gonna walk through the entire, kind of end to end from building to, shipping to scaling with this application today. And with that, I'm gonna pass over to James Clancy to jump into. a demo. Now where did my share button go? Sorry. One second. Just need to share my screen. There it is, and let's get this going. Alright. So I'm excited, and I'm excited to show off the GitHub Copilot app. Sorry. If you didn't notice, there's a little game built into it. I was just playing around, getting everything loaded up. But the GitHub Copilot app is great because I started I used to always do a bunch of CLI windows, and I'm always trying to figure out, like, how do I how do I know what to work on next and how do I navigate my way through? It's like, okay. I've got AI. I've got to do more, but what do I work on? And that's one of the things that we've really tried to answer with the GitHub Copilot app is you can start with the session right away, or I can just go right into my work. These are just GitHub, filters. You can have one. I created my own that's for issues. So I can look at my different repos and choose or just look at all repos that I have access to and see what issues I want to see and if I want to start working on one. I can just grab one. And now that I have one up, I can just click on one and say, okay. Let's look at this issue and let's start working on it. I can click New Session right here from the app. I can start a brand new session that'll start looking at this issue and it has all of the context from that. I don't even really have to start thinking about that. I can just do the fix issue, give a couple of additional instructions if I want, hit Enter, and let's get this done. Just hit Enter and off it goes. It's going to start working on that issue without me even needing to add any additional input or any thought process to get that up and going, which really simplifies things for me. On the left hand side though, we make sure that we have all the things that you'd need. We have like my work, automations, and we'll jump through a lot of that as we go on. I have all the projects that I'm working on on this left hand side. These can be repos. This one is just a local folder on my computer. You can add, add folders, add remote repositories, and change it up and get whatever you need in and working. Now what's nice about this is you can see that I have existing projects that I've been running and existing sessions. Whenever I restart this app, it remembers what I was working on. I don't have to think which CLI session was in which part of the screen and which, that's how I always kept track of them. Is this quarter quadrant of the screen is this project and just keep them separated. And that's how I'd mentally keep myself organized with CLI windows and terminals. So now I can just restart the app. I can restart my computer. Now, as soon as I click into a session, they'll come back to life. We make sure that it's easy for you to start getting in and just start playing with it. This is just a little website that I built with my kids. They wanted a countdown timer for the next Disney trip, and so we were able to put this together. And we can just browse and look at it and work on it right inside the app. And if there's something we don't like, I can just click pick and polish and start telling it, okay. That hero, that content, it gives it that div. Those lines of code are sent right to the agent so it knows, okay, this font is not big enough. Right? If I wanted to give that data to it, I can ask it to go fix it, and now it will actually go and clean that up and change it and update it. And I can view it right in the app. I can go in and actually run the commands to run this local site, myself. It's just HTML, so I don't actually have to run anything, but I can check the changes of what's been changed since we were last working on it. And all of this is directly in the app. If I don't like these lines of code, I can start talking to an agent and start working on it right away. I can browse the files, but we give you all the tools to start working on that project. You can actually go in and build run scripts. This one is a bad example of it, but when I'm working on the GitHub app, if I go back to that session that was working on it, once it says it's ready, I can just press this run button, and it's going to build a new instance of the app. And it's going to do it in the terminal. And then the output from that app is going to show up so the agent has access to read the output. If the build failed, it knows why. If there's something weird going on, it's like, hey. This, you said it fixed it, but it's not it's still doing it. It can now read those logs and know exactly what happened. And you can configure as many of these as you want to work in any way you want. When you're working on mobile apps, run the iOS app, run the Android app, run the website, you can just go in in one click, start digging through and building on that. And once this agent's done, I can click create PR, and it's going to send a PR. And now that PR is going to, go off, and it'll get all of the different code reviews that we have set up for our project. And I can manage that that without really having to think about it. If I go into a pull request, and I think I have one ready here. Let me switch repos. I should be able to go to a pull request. I do have a pull request ready. But I can start a new session on this pull request, and I can put it into what we call agent merge. I don't want to babysit PRs. I don't want to have to deal with this. So as this is going on, this one's in a draft, so it's not in the right state. But I can actually go in and actually put it into let's tell it's not to be drafting or let's update it. At that point, I can get it into auto merge, and the model is going to deal with automatically merging that in for me. It's going to verify that CI works, even after it updates that branch, and it's going to make sure that any comments that, an AI or a person makes as they're reviewing that will get fixed, addressed before it merges that in. On the app like the GitHub Copilot app that we're working heavily on, every time I do a PR, it's out of date by the time we're done with all of our checks. To be able to have the agent deal with updating against the latest main, making sure the build is still green, and then merging it, it's magical. We're going to have Pierce come back in. He has a couple more slides for us and we'll get back to playing with the app in a little bit. Oh, thank you, Clancy. I'm gonna go ahead and share again. I feel like it's a necessary thing whenever you share your screen to to say, I'm gonna share my screen. I don't know why. It feels like it feels very natural. Yeah. So so thanks, Clancy, for showing kind of the basic intent in this app. I I, you know, I referenced this at the beginning, but we saw how our own team was wanting to kind of do multiple things at once. And this is kind of natural. Right? Because, models do take some time, and now these models are capable of running for long periods of time. Right? So I can give it a pretty hard task, and there's been times in GitHub Copilot app where I've had a task run for, like, six hours. I go to bed and I wake up the next morning and it's done. And so because, you know, these agents can work autonomously for long periods of time, it's kind of even more important that you're able to parallelize yourself because the models are now capable enough to do this. And if you just sit there synchronously blocking that thread until it's done, then you're kind of limiting the amount of progress you can make. And so in the GitHub Copilot app, we've made it super easy to kick off multiple things at once. And so, obviously, the main concern you have is like, okay. I'm kicking off multiple things at once and potentially the same project at once. How does that work? So the GitHub Copilot app will automatically isolate, each of those sessions into basically what's called its own Git work tree. And so, this is essentially a branch that is checked out as its own folder. And so each of these sessions, will not produce kind of colliding things. Right? Even if running at the same time on your machine. They'll have their own isolated context. And, of course, like, eventually you'll push this up, to GitHub and you can get emerged. But on your local machine, there is no chance of conflict because of this work tree style. If you don't wanna use work trees, you don't have to. You can always just select local and kick them off locally. There's even a cloud option. So, you know, Clancy kind of referenced, like, closing your machine and and going moving on to the next day. Like, sometimes I will kick off cloud tasks if I'm about to go somewhere. And you can also do this in the app when you're kicking off a task, to basically have the agent loop not just run on your machine, but run-in a cloud sandbox somewhere. And so this is really great for, like, isolated things where you don't need network access. You just need to quickly fix a bug. Maybe you want to be able to steer it from a remote place, using remote control and get a Copilot. This is all possible in the GitHub Copilot app as you start parallelizing yourself. So what are some of the techniques? I already mentioned isolation. This is very important if you're gonna kick off multiple things at once. Work trees help with this. Another one is that the app itself can help with this. So, of course, you could click that plus button that, that James Clancy showed off and just create more sessions manually. But something that I really like to you do is use the agent itself to kick off, multiple threads at once. So, like, a very common example of this for me is I would say, like, what are the top three things assigned to me in this category? So maybe it's like I'm focusing on onboarding or performance today, and that will go and search GitHub. It'll bring back to me three issues. And then rather than just being like, okay, you know, click the plus button, copy and paste, fix this issue, copy and paste, fix that issue, copy and paste, fix this issue. You can just tell the agent. Tell the agent to start three new sessions for each of these issues that it has just given you, in separate threads. You can even say, I want it to start in plain mode. I want you to use this specific model. And this is really cool because the app can then drive the app. And you can even do things like say, I don't I don't really want to pay attention to those threads. Let me know when they need my attention. So then the app from that initial chat session you kicked off, can actually go and monitor those other chats you kicked off. And so that's a super cool pattern in the app. We also have slash orchestrate. So if you're giving the, if you're giving GitHub Copilot, like, a particularly large task, maybe it's something that requires changes in your front end, your back end, maybe it's just a really large feature that actually needs to be composed into many subtasks, you can use slash orchestrate, which will basically take care of this automatically for you. So you just do slash orchestrate, then the task you want to go and accomplish, and, then Copilot will handle the rest. So with that, I'm gonna pass back over to James to show off some ways you can parallelize yourself in the GitHub Copilot. And I'm back. Alright. So as Pierce was saying, we can jump in and we can create multiple sessions. We can I love having AI drive AI? The slowest point on this always has been us. Right? When we're working with multiple terminal windows, it's how much context can I keep track in my brain, and how much can I compress and context switch between different projects and different tasks? But it's really easy for me to have an agent manage that, and I can put this into choose any model I want to be the main model. And I can say, hey. I want you to be the PM. I need you to fix three issues. Make sure you answer any questions that, the agent has and go off and use smaller models to do the work and keep them on track. So I can now use, like, Opus five. Right? I also want you to do all code reviews. So I can use Opus five, which is a new Frontier model, and it does, it's a more expensive model to use. But it's great at thinking and managing, so I can tell it to go work on issues. It can now decide which ones to work on, and it will start up sub sessions to go off and work on those, which is awesome. And then it'll use the smaller models to actually do the coding work. The smaller models are getting really, really good. I'll just say yes. Work on those three. And now off it'll go. Let's put that into autopilot mode so that way it won't even ask me questions and it'll just start working on things. And off it goes, which we'll come back and check on that. Now while that's off and running, though, I wanna talk about a couple a couple different things that we have inside this app. Earlier, when I was showing you this this thing, I was showing off this right hand side, and I was showing the the little web browser thing that's built in. This is a canvas. This whole thing actually, sorry. I'm getting ahead of myself. Let me go back to my other thing. I want to show a different Canvas first. One of the things that I've done is, yes, you can go in here and you can manually go through and say, hey, go work on these sessions. But I built off this Canvas to help manage that for me. Now what's cool about this is, like I said, we have Canvases and you have this thing called Create Canvas and we'll look more at Canvas a little bit later. But everything on the sidebar is a canvas, and you can create your own. And for this one, I said, hey. I want one to deal with my GitHub issues for me. And so I can actually go ahead and just say start triaging. Now what this is going to do is it's going to actually load all of these issues into a session, and it's gonna go through and it's gonna triage those session set those issues. And it'll come back and it'll prioritize those like p zeros, p ones, and decide what I should work on. Now, the good thing about these Canvases is they can drive a session like this. A session can also query a Canvas and ask it for data. Once it's done, it'll upload all these, but I can go through and I can say, okay, let's look at these three issues and hopefully I don't pick the same ones that are already being worked on by another issue. But I can come down here. When I told to create this Canvas, I said, I want this to be able to orchestrate. Now I can even just say, hey, we'll just leave auto as the main model that's going to use. I can give a similar instructions. Let's get these, three done. Make sure to rubber duck and code review. Also, use smaller models and mix in DeepSeq and Gwen 3.8. You'll notice with this, I gave a little bit slightly different directions. I told that this time I want to actually use DeepSeq and Gwen 3.8. I've actually added, local models to this. So I've gone in, I've gone in, I've done a model provider, and I've added some local models. So now when I'm telling that to run, it's going to use local models. Now Now there's a couple of things that's really interesting about doing this parallelization. You've noticed I've done this now twice where I've said, go use different models as you're working on this. And you can see this one's in here working, and it's using GPT five four. This one's also using GPT five four. But there's something interesting that we're starting to notice. Most coding tasks are go read this file or go write a few lines of code or figure a couple of things out. These smaller models are really, really good at that. Just generating code, they're awesome. What they're not good at though is that deep reasoning. When you start having a larger model drives these smaller models, you'll get better results, especially if you start rubber ducking, which will actually have it use multifamily to compare those results. Now you're going to use less tokens and get more done, and you're gonna get better results. And I've been having it's awesome having these things just run and see them build and use these smaller models. And at the end of the day, you get a much better plan. You get a much better result, and they will actually communicate with each other. And so the smaller models will ask the bigger one, how should I do this? And at the end of the day, it's awesome. Like I said, we have a couple different skills that are in there for that. I have one other chat I'm gonna bring up. I've also been playing through with, like, how can I do more? And I wanna go a little bit farther than the just a loop. So up there it is, graph engineering canvas. And so I've been really playing with the idea of, like, how do I, do more and have agents work together so that way they can figure more out. And so there's this new pattern that's people are talking about now called graph, using, they're doing agent graphs instead of just a loop. And with this, you can go through, and I've just been toying with the ideas. How would I visualize this and how would I play with this? And you can have an agent who deals with the planning and have it fan out to have multiple agents go research and then since synthesize those results and then get it into this additional loop type where it's doing a graph, and you can start orchestrating to have multiple agents working on the same issue, without blowing up the context. And you can mix and use local models for a lot of that work and really get awesome great results, all inside the app. And so this is something I'm hopefully gonna once I get it in a little bit further along, I wanna put this up on GitHub so other people can play with this. But really get into this graph engineering style to where you have agents doing more and agents driving agents. And the moment you start doing this, you're gonna be it's so much easier on your brain. I used to be so tired by, like, noon from dealing with with managing sessions. And using AI should empower us, not just not just burn us out. So definitely have agents drive agents. That's the thing I'd really want you guys to get out of this session. And because each of these, like Peter said, are using work trees, each of these can work to on the same exact portion of the code without overriding each other and without conflicting. And so when they're done, they're just gonna merge their code back into that same branch, and I can get all of these into PRs and get agents merging those as well. So definitely check those out. We have orchestrate, fleet commands built right in, or just tell it go do it and it will. Back to you, Pierce. We're back. We are back. Thank you so much, James. So just quickly, we're we're gonna go back to James here in a second, but I I loved what he was showing around campuses. And so I think as you start parallelizing yourself more, you start asking yourself this question, like, do we imagine the future of software engineering to be like a lot of these chats? And so we we you know, I personally don't love that as a future. And so we started exploring in the app some really kind of innovative approaches to this problem. And so, you already saw a canvas from James. One one of which we use a ton on the team is our triage canvas. And so this basically goes through all of our GitHub issues. It says, okay. You know, which ones got thumbed up? Which ones got thumbs down? Which ones are hot? Like, have a lot of comments in the last twenty four hours in particular. And so, you know, we have a stand up. And every day in stand up, we boot up this board and we go through it together. And, given that a lot of tasks are just kicked off from this sort of context, you know, to my point earlier, like, do you really just wanna be copying and pasting around? Like, fix this, do that. Like, if you trust the agent and as these models get more capable, you can actually it's it's more possible to have a service that does not chat to actually drive these agents. And And so in the case of canvases, you can go create your own canvas with scotch create canvas for whatever scenario you have like this issue triage one. This canvas can not just present data to you. It's not like a static HTML page. That canvas can actually go and reach back into the app and drive sessions. And so often what I'll do here is our triage board. I'll just full screen that. And I'll just go through the issues, and I'll just start sessions on each of them. Another common one is is our team uses Sentry for, like, crash reporting, performance, telemetry, things like that. And so if we notice any sort of memory issue or things like that, great. We have a Sentry Canvas. So in a performance review, we would just boot up the Sentry Canvas. We'd full screen that. And same thing, we go through our top Sentry issues and just kick off sessions for each of those. And so, we will have, like, a set of canvases that are, like, for some of these major services, like Sentry, like Jira, like Azure DevOps. But, also, you can always create your own. And, personally, I find the ones that, you know, I create to be just like me and my team want. Like, maybe I want my triage board to incorporate five different data sources. Well, I don't wanna have to use five different canvases for that. And with this slash command slash create canvas, you can get one of these canvases up and going in, like, five minutes. Like, this entry one that we created, I think someone did it in, like, five minutes. And so you can really build these, like, personalized UIs that are actually for driving the the app itself. So you can kind of escape this chat pattern and get, more into a visual interaction pattern for kicking off work. So to show you a little bit more about that, I'm gonna go back over to James. Alright. So let's play with some canvases. I've kind of briefly shown a couple of those, and, like, this agent graph is one of those. And when I was over here, even just playing with the canvas for that, the issue triage on that app, even when I was showing this web browser. The web browser is a Canvas, and that's something that I want people to, like, not be scared of. Canvases are great. When we were building this app, we started getting, like, feature requests, and there's a lot of things that we're like, we don't have the ability to build everything that everybody wants and add support for everything that everyone's going to want because you know how it is. The moment something's out, everyone wants something new. We came up with this idea of the Canvas. We made this entire set by Canvases, and it allows you to customize the app. That's what's really important about this is you can change the app to match your workflow, whether it's an issue tracker, whether it is just using the built in web browser or that Graph API that I showed. One of the ones that someone from the Microsoft side made, which is awesome, is there is an iOS simulator. You can actually run the app and run the simulator. That thing's getting it set up. Once this is up and running, I want you to switch to the songs tab. While that's getting going, sorry, I thought I had it pre warmed up, but it's going to load and boot an iOS simulator and run an iOS app directly or Android. Now it exposes that app to the agent, so it does more than just lets you display it. I can actually tell it to navigate that iOS app or that Android app, and it has context to that app. This was built just because we expose that slash create canvas skill. So definitely jump in, build some canvases, and play with that. But I love having this mobile sorry. I wish that was was working, like, two minutes ago. But I oh, it's I said it's just Agent can read it and is actually already figuring it out. Definitely check out canvases. Play with that bidirectional thing. If we go back to our one from earlier, our orchestration one, it's actually got those sessions up and running. And so you can see that one's using Gwen 3.8. And this one's on deep seek, and I have that orchestration. You can build this orchestration there as much as you want. This is something that, like I said, I care a lot about and I've been playing a lot. I'm really looking forward to getting this graph fully working. I have a cup it's not quite ready to demo, but being able to jump in. And this is something that I built in about two to three hours with, just playing around with it and tweaking it. The first version, it built in about ten minutes, and it mostly worked. But being able to just sit there and watch the flow of your agents and interact with them, and then I can click into each one and see that session. And these sessions are driven by agents. Some of my favorite canvases are just around the orchestration layer. The iOS testing one is really awesome. Come on. Sad. It was working at the beginning of this demo, and then I clicked out and didn't reload right. But definitely play with these canvases. We have, built right into the app. You can actually go into, plugins, and Awesome Copilot has an entire catalog of canvases. You can go through and browse through these. You can, add your own and share them with the community. If we wanted to, we can even just jump in and say, let's create Canvas and give it anything you want. I'm trying to think if there's any good ideas. Let's build a fun flappy bird clone so I can play when my agents are working. But I can jump in and have it build a new site, build a new canvas, and you can embed any of the UI that you need to. One of our first and most requested features we got was how do we add how do you use this for Azure DevOps because we really are focused on GitHub. Guess what? There's Azure DevOps canvases that people have built and now they can fully run and drive this app from Azure DevOps issues, pull requests, everything in that sense and actually manage everything from there. So it's really easy for you to jump in, build all your own Canvas, customize this workflow, make this app your own. Anything you need, create Canvas, and you can tweak the app to your heart's content. Alright. Jump back over to Pierce. Thank you so much. Yes. The iOS Canvas is super cool. Like, iOS development and the GitHub Copilot app. Very neat. So I referenced this at the beginning, but I think everyone also has this, like, sense of, like, okay. You know, I'm doing more work, but, like, is this actually mattering? And at least on our team, the thing that we saw is, our PR accounts were getting out of control. We were, you know, getting kind of drowned in in code review and PR review and addressing review comments, CI failures, things like that. Of course, as, we've done more with agents, we've also expanded our test suites and things like that. And so we have even more test failing, which is great because we're catching things before we ship, but that means there's more babysitting required for PRs. And so, one of our big, problems we wanted to solve with this app was this exact thing. Like, we don't just want you to do more work. It needs to actually land in your code base so you can, you can actually have the impact you wanna have with that work. And so the feature that actually we built to solve this is called agent merge. James already showed it off a little bit. But it's important to call out, like basically, what this thing does is it continuously pulls your pull request when it's enabled, and it will go and address outstanding human and Copilot code review comments. By the way, on that, it won't just, like, do whatever the code review comment says. I've seen numerous, situations where my agent has pushed back on a comment that either a human or Copilot had left on a PR, and so it will actually push back and do the right thing, and so it's always good to get other perspectives from the review, but it'll actually go through and address the review comments. If there's any CI failures like a test failure, maybe it's a flaky, you know, it's a flaky actions run and it needs to be rebooted, it can do that as well. If there's merge conflicts, it can handle that. So all those sorts of things it will tackle for you. It's important to call out that, like, it sounds scary and, unfortunately, naming is hard, right, in computer science. We call this agent merge, and it does kind of imply that your PR will be auto merged. That actually is a setting that is off by default. So it will not auto merge your PR. It will go and address all the feedback. And if you wanted it to auto merge, you can also set that as an option. So once all the code review comments, CI failures, etcetera are addressed, it would auto merge, but that is not a configuration that is the default if you don't want it. So you're in control. Of course, if you don't want to use agent merge, you can always go in and just have Copilot clean up all the code review comments or fix CI failures individually. So you have little buttons for fixing each of those things as one offs if you didn't wanna enable agent merge. But we're already seeing in our own teams how this is accelerating our ability to get, PRs that we're landing into the app, into your hands. And so to show it off, I'll go back to James Clancy. Hey, James. I think you might need to go on stage because people can't hear you. I heard we had technical issues and that you guys couldn't hear me. Can you guys hear me now? I'm seeing lots of thumbs ups and stuff, so I'm hoping things are working. And now I'm really confused as to what went out and what didn't because Goldcast said I was on. Alright. So let's get back to sharing again. Alright. So looking at that, now that we're back and up and running again, all the thumbs up. Yeah. You got it's working. We're good. So with that, like I was saying, this test test failed, which is kind of funny. I'm not sure why it failed, but it's actually compiling that now to go through and fix that, and it's building that on this machine, and it'll fix and fix that test error. So I'm guessing that new test code that it wrote was bad. And as a I hate monitoring CI. I hate managing this type of thing. Knowing that the AI is going to deal with that, my least favorite task, and if CI is broken, it will fix it. Oh, it's amazing. That happens all the time when new SDKs come out and now CI is broken. Well, guess what? Let the agent deal with that for you. It will go through and it'll even update the YAMLs to update your dependencies and make sure things that need to be updated and installed are. My computer, I think the issue is I'm compiling. Let me stop that agent merge. I think that's the issue. I think it is building, and it's taking up all my CPU. Don't compile while demoing. You can see it's working. I'm just going to kill that session to free up some I think that was our whole issue the whole time. Yes. Yes. My CPU is no longer pegged. Don't compile your swift tests while demoing. So agent merge was doing its thing and actually working because, yeah, that was bad. Alright. So now that we're done with that, agent work is awesome. I live by it. I run by it. It it's the only way I merge PRs in anymore because I don't have the time to sit there and manage and monitor those. So definitely try it out. Use it. I know that button looks a little scary. It's something we need to work on. When you click on that, put into agent merge. It's not gonna merge just by clicking that button and unless you tell it to. Let me turn that back off really quick because I don't want to repeat. But thanks, and I'm gonna pass that back over to Pierce. Thank you so much for showing that. Okay. So another thing that our team spends a lot of time doing is, like, I'm sure you have the same in your day. If you reflect, you're like, there's, like, 15 things that I feel like I'm doing all the time, and it's it's taking a large portion of my day. I wish I didn't have to do this. So the GitHub Copilot app can help with that. There is this automations tab you'll see here on the top left of the app, And you can go and configure a recurring automation that could be weekly, that could be daily. You can set what time you want it to run, what day of the week. And, essentially, this is just a scheduled prompt, that has access to the tools you give it. It can run-in the context of a project or not. You can pick which model you wanna use. And so, like, a few examples that that I have for this sort of thing, the change log that we produce for the GitHub co pilot app, we have automations for this. I have automations to go through all of my assigned issues and see if anything actually needs attention. I'm a product manager, so I have automations to go through all of our telemetry, tell me if anything's scary, look at all of our, performance and quality dashboards, and make sure we haven't regressed anything overnight. So first thing I do, I usually schedule, like, fifteen minutes to just go through the runs of my automation that I have set to Rhyla at, like, 8AM every single morning. And so this is saving me a ton a ton of time. I'm starting my day on the right foot. And so if you find yourself doing any sort of thing repeatedly, whether it's an engineering task or just something that you have to do every single day, like help prepare for meetings, picking up Copilot app can help with that. And to show you how that works, we'll go back to James. Back, and I'm not compiling, so we're in much better shape. I did just go back and click into a couple of our sessions we had running earlier. You can now see, our floppy agent. It actually built something. That's pretty awesome for a one shot. Alright. That's fun. Alright. I just wanna see how that canvas went. I did kill that agent merge, so that's not gonna go along. But let's go over automations. Automations are something that that I live by. So issue triage is something I do every single morning right around 8AM. Just like Pierce said, I come in and I can see this runs every day on the GitHub Copilot app. I have other automations on my other machine that run a code review every single week. Every week, I go through and I do a performance improvements, and I also tell it to go through and look for any bugs I may have missed. And I do a full audit of code base. So that's one of the all of these issues that you see that pop up inside this Fashion Pack app that we're dealing with all came from those code reviews. They're automated. I do that weekly. So as I'm working and improving things, I don't break things. So, definitely, it's really easy just to set these up. You can set it to run anytime you want. You can adjust the prompt, tell it which models you want it to run on, and even which projects. So now those will run on that. You'll notice I have another one I'm not gonna share. I have my work IQ daily brief. This is tied into WorkIQ for me. Every morning, I can come into here and click on this, and it will show me, what emails. It'll give me a summary of all of my emails and all of my Slack messages of everything that happened since I was last on. And this allows me to keep up with this fire hose of data that's being sent our way. There's so much coming our way that using AI to do more, it's it's a must. I highly recommend this. You can just we have a bunch of templates just to make it easy for you. You can schedule any skill that you have for your apps. I have a Crashlytics one. This runs on another machine where it imports every morning, imports all the crash reports and turns GitHub issues of them so I can track and deal with those. So it's really easy for you to create your own, or you can just from scratch just have a prompt, whatever prompt that is, and have that run automatically every single day. You can have it run twice a day, multiple times a day, however you want to. But I always run these. And like I said, I even have Slack tied into quick chats. We don't really talk about quick chats, but everything we've been showing is based on projects. But I have quick chats that tie into it, and I can just go, hey. Go tell me what's going on. Automate this. If you if you're using something regularly, say, hey. Can we create an automation for this that I keep running? And so check out different skills, create skills for things you're using. We do have there's that project. There's that skill slash it's, Chronicle. Chronicle's an awesome skill to help with this type of stuff. So you can use Chronicle to go through and look at your session history for your different projects, and it will recommend things that you should turn into skills because you're doing this all the time. If there's something you're regularly doing, create a skill. A skill will make it to where it's also this is a markdown file, but it will give agents a specific set of instructions so that way it can do the same thing every single time. And so that way you'll get the same outputs. I do that for or when I'm working on things like analytics or things. I want the same type of output. I don't want to have to think how did this thing it made a new Word doc this time, why and how. But so use Chronicle to go through and go through the history of your sessions. Have it recommend things. It'll tell you. Inside Chronicle, it'll give you tips. Right? You can do cost tips. How do I save things there? What are some tips based off my usage? What am I doing wrong? Go improvemyinstructions.md. Those agent files, a lot of times we write those and we don't fix them. They're kinda stuck where they are. But this will give you some ideas of things to put into skills and then you can start scheduling those skills on automation. You can really improve your code base in the way that you're working with the agents this way. Back to you, Pierce. Oh, sorry. Sorry. Oh, lost lost slides. We're back. So, I saw in the q and a, a lot of people were asking, like, how do I how do I find things to customize the GitHub Copilot app to work me like me and my team? That could be, like, MCP servers, skills. That could be canvases like James showed off earlier. So in about an hour or two here, we'll have a release of the GitHub Copilot app that has this new customize, tab in the top left. And so you can actually go in and discover MCP servers, plugins, skills, canvases, both, from GitHub, but also from our community, and partners. And so you can just go into this tab, search for what you're looking for, and install it. So, I've been playing around with the Azure DevOps canvas. So if you're using Azure DevOps, you can get, a lot of cool capabilities like kicking off sessions directly from an Azure DevOps issue. The impeccable design skill is really, really fun. So it helps to kind of get the AI slop look and feel out of, front end stuff. So that is just a skill you can enable inside of the GitHub Copilot app. And we already talked about bringing in things like WorkIQ for m three sixty five context or the Slack MCP for, message triage. So there's so many possibilities, depending on how your team works, what tools you use. I'm sure that there's a way that you can customize the GitHub Copilot app to work just like you and your team. So we've already kind of alluded to this in several ways, but, most of us use the app not just for engineering tasks but for everything else too. It was true even pre AI that when you thought about your day as an engineer, like, very little of your day was actually spent literally writing code. Right? It's all the things around it. Like, you're attending a design review. You're writing a design doc. You're, doing the sprint planning. Right? Like, there's always something around the code that you're spending your time on, and so we use the GitHub Copilot app for that too. And so in particular, like, we heavily use the WorkIQ and Slack MCPs. So Clancy already showed some of those off. I use WorkIQ to help me prep for my meetings every day. I unfortunately wake up every day and have, like, two to 300 Team CMs, two to 300 Slack DMs. Obviously, there's no way I'll be able to go through all that even if I had a one or two hour block at the beginning of my day. I use the app to help me triage. Is there anything for my leadership or anything that I actually need to respond to right away that seems important? So there's super cool stuff like this I can do with the app. And so that's kind of the maybe surprising thing we found after we built the app is we certainly didn't intend to build it for all these other scenarios. But once you started using the app for coding, you saw how it could be used for all these other things. And so now start to finish in my day, I'm inside the GitHub Copilot app. So just really quickly, James, because we only have a couple minutes here, if you wanna just show off some of the flows you have inside of the GitHub Copilot app for this sort of thing. Absolutely. So go just piggybacking off what Pierce was saying, I love using the GitHub Copilot app for my my work. You'll see that I have, like, usage metrics and things like that. I constantly use these additional MCP servers, and I highly recommend you do too. Slack is one I can't live without, and I think I'm compiling again. Yes. Let me just kill that process. Force quit. Definitely add some MPC servers. I just enabled the customize that Pierce was showing off. Go in, add some of these things. The ones that I highly recommend are ones that you can do for your daily work. One of the things that I was asked to do when I first joined GitHub was deal with something very PM like but not typical dev, and I use this app to deal with it. So there was this Git wait the wait list. Right? We had to wait list people into this app. And to do so, I was given an Excel sheet that was populated by a, survey, an import take survey. All the data was not validated. No one checked to make sure the emails were right or anything. And I was told I can't edit or touch that that list. It is what it is, but I had to use that to let people into the app. And so I used an agent to create a database, and it went through and I was having it recreate, cleanse the data so I could actually play with it and use it in demos. But I had it actually working on cleansing the data for a demo script on it. But I had it create a SQLite database that it imported that Excel sheet into. While it was importing, it validated that emails were correct. It checked if people's GitHub handles were actually their GitHub handle, like they were real. I validated all of that. Then I was able to manage this waitlist and actually generate the CSV that I had to give to marketing to let people know that they're in. I used it to automate adding a feature flag, which is a very complicated process and I don't have enough time to tell that whole story. But this was something that as a normal PM, I would have had a hard time dealing with or managing. But I opened the agent and asked it to do it. With every conference I go to, by the end of the day, I'm exhausted. I jump into my quick chat, and I have a quick chat going on my k Slack. What do I need to reply to before I go to bed? And I then know respond to this thread, this thread, and this thread, and off it's going. I've asked it every time after I'm done with the meeting. Go grab the transcript from that meeting, update my to dos so I don't forget what I need to manage from that thing. I had it searching for a webinar deck. I did a someone was asking for a deck from a webinar I did first month at GitHub. And I'm like, I don't know where that thing is. And so I had an agent go find that file for me that was living on a SharePoint somewhere. So use these things to do more than just coding tasks. If you're not having agents help manage your life and manage your email, I don't have it write my emails and send them for me. All of these MCPs I've talked about like WorkIQ and Slack are one way, they're read only, but it can aggregate that data and even recommend how I should reply. But then I know it's not going to go delete all my emails. I am compiling again. I need to stop all my agents. I've got too many running in the background. Let me just kill this thing because it is yeah. We'll just delete that. Alright. But, definitely, I need to be careful what I'm demoing. Pierce, I'm gonna hand it over to you because I my CPU is pegged again. Can you stop sharing? Thank you. It's a good problem to have. So much work is going on. We need to we need to get a better machine, man. But that's also, to be real, why I'm excited about the cloud workflows because you do run into the limits of your own personal machine at some point. Right? Because these machine these agents are not just, like, running the agent loop. They're building your app. They're testing your app. Right? They may be running you know, actually booting the app or using Playwright to drive through it. And so that can be very expensive on your machine. And so, like, I'm excited to push more and more of these things into the cloud. Okay. We're running out of time. James and I like to show you all the cool stuff, but just real quick here. You know, we're starting to see a lot of people who aren't just traditional developers using the GitHub Copilot app because of the things we just mentioned. So actually very interesting stat from looking at our onboarding data. The top onboarding error is that people don't have Git installed. And this is very interesting because that means we have a lot of people who are not traditional developers coming in and using the GitHub Copilot app. So if you have people, PMs on your team, designers, operations people, marketing people, you can get them on the GitHub Copilot app. A a great example is our sales team here at GitHub. So we have a a basically a marketplace of plugins and skills for our salespeople. And so they just with one click, go click this. It adds it to the app, and they can go in and ask questions about what's going on, in their account, what feedback do they have, is there any opportunities for upselling things. And so even at GitHub, we're seeing a lot of adoption of this app with people who are not just software engineers. Of course, like, I saw a lot of comments about, like, cost, controls. So the GitHub Copilot app respects, like, all of the controls that you've configured, in your Copilot settings. It supports enterprise managed settings, which you haven't heard of that. It's basically a way to get even more fine grained control over the experience of Copilot at the organizational level. You can monitor your, your credit burn down by using things like slash usage. So that will tell you exactly for that particular session, how many credits it's taken, what models it's used, the ratio of input and output tokens, that sort of thing. So all that's also supported inside of the GitHub Copilot app. And just to close out, like, I hope that we kinda showed you the entire end to end. So starting with, like, an issue all the way through merging something with HR merge, not just for engineering work, but for all work all inside the GitHub Copilot app. So if you haven't already during this session, like, please go get the app. You can scan this QR code. You can also go to gh.ao/app to install the GitHub Copilot app. Tell your friends, you know, send James Clancy. or I messages on LinkedIn or x. We're both very active on these platforms. We'd love to hear your feedback. There's also the GitHub forward slash app repo, where we're collecting all of your feedback as well if you wanna file an issue. But super excited. Glad we were able to share kind of our experience building this app, using this app with all of you, and excited for you to give it a try. And so with that, I think we're gonna go to q and a. And I know there's a live pool that you all filled out at the beginning. I wanted to see the results of that, if we could pull that up. So I was curious, like, what what sort of AI coding assistant are you using today? So we already it looks like we do already have a lot of people using the GitHub Copilot app. Other people are using GitHub Copilot and other services. And I would say, like, each of these services is unique. Right? Obviously, in Versus Code, you're staying very close to the code. Inside the GitHub Copilot app, it is not meant to be a code editor. Right? So if you wanna go in and make changes, like inside of the GitHub Copilot app, there is an open in Versus Code button. So you can always open that. That'll open Versus Code to that exact workspace or work tree. It will open chat, and it will even let you continue the chat you started in the GitHub Copilot app inside of Versus Code. And so one thing we've really tried to make sure is, like, with the GitHub Copilot app, if you're using GitHub Copilot in one of these other places, you can move seamlessly between these services and start a session in one place and pick it up somewhere else. So excited to excited to have you all here today. I think we got a couple questions we wanted to hit real quick. James, I'll just tee them up for you and you can answer them. So first question, do projects have to be a Git repository, or do they have to be hosted on GitHub to use the GitHub Copilot? No. Not at all. As we were saying that one of the first things people built was a way to do that inside Azure DevOps. I add folders. If it recognizes it's a git folder, it doesn't care what the git endpoint is. It can still run git commands on it. So absolutely. Just yeah, use it for How. can I create and discover a Canvas? So create canvas is super easy. There's a slash create dash canvas. Canvas is Maybe it's Canvas. I think it's just Canvas. Home skill. So you can easy build your own. As for discovering it, we do have shipping today. As Pierce was showing, there's that new customized on the sidebar, which will have a bunch of them that we're shipping. Awesome Copilot is a great place for it. If you build something really cool, definitely submit it to the awesome Copilot repo so others can find and install those. But you'd you can share them with your team as well. So easy to share. Sweet. Last question here. And, again, like, if we don't get to your question, feel free to reach out to us on one of the platforms I mentioned earlier. Definitely happy to chat. Leadership is now calling code review a bottleneck. Therefore, what patterns are being used to automate reviews and perform end to end testing via No. That is a great question. workflows there's a lot that we do. Our project is heavily ran by agents doing our code review. We have them automated? to where every time there's a PR, you can set it up so that way Copilot will just do a code review. There's some new fun stuff that we're coming out with better review stuff that, we'll be releasing soon. So definitely, that's something look wait for because we have something really cool coming, in the app for code reviews coming soon. But it's easy for you to set up your own agents and definitely do that and make sure that you are running those Copilot code reviews. You can there's an entire thing on how to change the way those things work. I did a demo a while ago to where I told that whenever there's a, an instructions file that you can put into your dot, Copilot, folder inside the app or sorry. It's inside the dot GitHub folder inside your source code that will give it certain instructions on how it's supposed to do those code reviews and different rules. I had one that added a skill that required it to load up and take a screenshot whenever it was changing certain on certain web pages. So that way, whenever it made a change there, part of the review process was to post a screenshot, and Copilot would do that. It would do it during the during the run for the my CI. So when CI runs, it would then take a screenshot and then update that PR with an updated screenshot. So there's some really cool things you can do like that to make sure you're managing it and seeing what you need to. Alright. Thank you so much, everybody, for attending. Like I said, James and I like showing you stuff, so we ran a little bit over. But, super excited to show you the GitHub Copilot app for you to give it a try, and we're super excited to hear your feedback. Thanks again for attending, everybody.