You need to try the GitHub Copilot CLI right now
By Burke Holland
Summary
## Key takeaways - **Run Copilot CLI in VS Code**: Always run the Copilot CLI inside Visual Studio Code with the project folder open because it integrates with the editor's file editing, diagnostics, LSP, and chat sidebar for seamless file opening and error checking. [01:22], [10:34] - **Enable YOLO mode**: Say 'allow all' to enable YOLO mode, which auto-approves all tool calls and file operations without repeated permission prompts for the full agent experience; alias as 'yolo' for quick launch. [04:29], [05:02] - **Resume sessions with CPR**: Use 'copilot-res' for recent sessions or 'copilot continue' for the last one; alias 'copilot-continue' to 'CPR' to easily bring sessions back to life after killing them. [06:21], [06:59] - **Anvil agent boosts reliability**: The Anvil custom agent forces use of context7 for docs, fetch, and adversarial reviews with GPT-5.3, Gemini, and Opus to check work, combining agentic Opus with rigid GPT-5.3 for better results. [11:47], [12:02] - **Plan first, then autopilot**: Start in plan mode with a detailed voice-dictated prompt to gather requirements without code; switch to autopilot mode for a Ralph loop that implements iteratively until confident and verified. [17:48], [25:29] - **VS Code chat shows CLI details**: Copilot CLI sessions appear in VS Code's built-in chat sidebar, allowing inspection of sub-agents, diagnostics via LSP, background tasks, and commands for deep debugging without extra setup. [27:30], [28:42]
Topics Covered
- Run Copilot CLI in VS Code Editor
- Enable YOLO Mode for Full Agent Autonomy
- Custom Agents Combine Model Strengths
- Plan First to Eliminate AI Guessing
- Autopilot Loops Until Verified Complete
Full Transcript
the GitHub Copilot CLI. Yes, we have another tool and I've been talking a lot about it on X or Twitter, whatever you want to call it. And that's because I
actually like it a lot. And one of the things I want to do on this channel is just always be really honest with you about what I think works and what I think is just shenanigans. And the
Copilot CLI just really works really well. It's become my daily driver. And
well. It's become my daily driver. And
so in this video, I want to kind of walk you through how to get started with it.
So it's a bit of a beginner video, but at the same time, I'm going to show you some of the things that I do with it, some tweaks, where I actually use it, some of my workflows, and we'll actually build something in this video as well,
because that's the only way that you can really watch or learn to see how the Copilot CLI is actually used in real life. And so if you're ready, let's do
life. And so if you're ready, let's do it. All right. So, to get started,
it. All right. So, to get started, obviously the first thing you're going to want to do is install the CLI. So, uh
you can just Google that. Y'all know how to do that. And um then just click the install now button. Right now, that takes you to a GitHub page. I think this is going to be improving shortly, but
just find your installation and then install. Here, I was on a Mac, so I did
install. Here, I was on a Mac, so I did a Brew install. Now, the next thing you're going to want to know is where should I run this thing? Uh should I run it in the system terminal or how should I do this? So, I'm going to show you how
I do it, which is that I always run it inside of Visual Studio Code with the project that I'm working on open. Uh,
and so, let me show you what I mean and why I do this. So, for this video, I've created a folder called the uh CLI video. So, let's just move into that
video. So, let's just move into that here in the terminal. And you'll notice I have the terminal on the right and uh the editor on the left here. And that's
intentional. You'll see why here in just a second. Okay. Uh so with our terminal
a second. Okay. Uh so with our terminal open here, we actually want to open Visual Studio Code on this folder. We
don't have to do that to run the CLI, but Visual Studio Code has this concept of being open on a folder. And so we want to keep with that concept here just
to make it easier on our brains. So I'm
going to run here um code insiders with a dot and a dash r. And it just says open the current folder in the existing window. So, now we've done
existing window. So, now we've done that. You can't really tell other than
that. You can't really tell other than we have the title up here. Let's open
that sidebar again. And if you're wondering how I actually got the terminal here in the sidebar, what you have to do is from the bottom panel here, from the bottom panel, you just drag these things and drop them there.
So, if you didn't know you can do that, you can. That's how I got the terminal
you can. That's how I got the terminal over here. Now, I don't even though
over here. Now, I don't even though we're in the terminal, I don't run the CLI in the terminal, per se. Okay, I run it over here in the editor space. And to
do that, you what you can do is just say uh terminal. And if you look for
uh terminal. And if you look for terminal in editor, you can create a new terminal in the editor space like this right here. Um I do this a lot. And so
right here. Um I do this a lot. And so
what I do is create a keyboard shortcut.
And then what we're going to do here is just look for terminal in editor. And
then here it says create new terminal in editor. And you can see I have that set
editor. And you can see I have that set to uh control option t cuz I do this a lot. And so uh control option t and we
lot. And so uh control option t and we get a new editor instance here or a new terminal instance rather in the editor space. Now let's go ahead and fire up
space. Now let's go ahead and fire up the CLI. So we're just going to type
the CLI. So we're just going to type copilot and here's the CLI. Now the
first time you do this you'll get a nice animation and you'll have to type /lo to actually log in but I've already done that so you're not going to see that here. All right. So with the copilot CLI
here. All right. So with the copilot CLI up, let's just do a quick tour of the interface here. Um you can see it's
interface here. Um you can see it's telling us that we can type at to mention files slash for commands or question mark for shortcuts. Now um I
mostly use slash commands. We'll talk
about some of the shortcuts. I hardly
ever mention files. In fact, we don't even have one in here. But if we were to say uh create a simple readme here, it will create a simple readme for this project. And then what we could do is
project. And then what we could do is just mention the file here. So we might want to say, you know, spruce up this readme. And you'll notice it's saying,
readme. And you'll notice it's saying, do you want to create this readme? And I
do, but I don't want to have to tell the CLI every single time that it's okay to do something, you know. And so what it could do is say yes and don't ask for file operations again. But it's going to ask me this every time it tries to do a
tool call. So I'm going to say yes.
tool call. So I'm going to say yes.
test. But then I'm going to come back to uh the CLI here and I'm going to say allow all like this. And when we do this, we're
like this. And when we do this, we're turning on what's essentially also referred to as YOLO mode. So it's never going to ask me again for permission.
And I want the full agent experience. So
that's what we're going to do. Now, I
like to alias this as well from the command line. So I'm going to press Ctrl
command line. So I'm going to press Ctrl + C twice to jump out here. And from the command line, you can launch it in this mode by doing copilot- yolo, which gives
you the exact same thing. It's just auto approve um on my default. So, I don't like to type that. So, what I do is I just alias it so that I can just type yolo and I get the exact same thing.
Copilot in allow mode. And if you're like, I don't know how to create an alias, well, that's why we use the VS Code terminal because copilot is built in there as well, right? So if you don't
know then you could just ask command or controlI on Windows right say alias copilot alias copilot-
yolo to uh yolo right and it will create that alias for you whether or not you're in powershell or bash doesn't matter. So
this is why we like the VS Code terminal because it has AI built in and that's command or controlI I because we still need to be in the terminal. We're still
going to have to do things. We want to have Copilot there with us as well, not just in the CLI. So let's go back into our session. In the session that we had,
our session. In the session that we had, uh there's two ways to get back to it.
So if we say copilot-res, this will bring up a list of our recent sessions here. So you'll get to see I've
sessions here. So you'll get to see I've been working on a lot of stuff. So
simple read me right here. Um, it's the top one here, right there. You can see Opra's working on some project ideas as well. So, we could we could resume that
well. So, we could we could resume that way. The other way that we can resume
way. The other way that we can resume here is we could just do um we could do this. We could say copilot
this. We could say copilot uh d- continue. And this will just resume the last session we were in, which is the session that we just left.
And speaking of aliasing, something that we could do here that's kind of fun is we can say alias copilot- continue to uh
CPR, right? And so essentially,
CPR, right? And so essentially, so it's going to add this to my ZSH file. I'm going to go ahead and let it
file. I'm going to go ahead and let it do that. And then we have to reboot our
do that. And then we have to reboot our shell here. And then once we've done
shell here. And then once we've done that, if we just type CPR, that will just resume the last session that we were in. So here we are. So if we kill
were in. So here we are. So if we kill it, get back to the terminal, that's fine. CPR bring it back to life. Get it?
fine. CPR bring it back to life. Get it?
All right. Okay. Now, the next thing that we want to do here is look at some of the slash commands that we're going to use a lot. So, obviously model or models is a big one. This is selects the
AI model that you want to use. I'm
seeing Opus 46 is the default.
I don't know if that's actually the case for everybody and I don't know if that's the case for you as well in your company, but you can see all of the models we have access to here. And
again, if you don't see these, your company, if you have a company sub, may be controlling what you can and can't see. Okay? And so that's why they may
see. Okay? And so that's why they may not be present in this list.
Additionally, you'll see some models here that say hidden from me. And that's
because these are not public models.
These are either internal models or they're not they're they're preview models. And so I have these hidden here
models. And so I have these hidden here um just so they don't confuse you as to why aren't those in my model list. Well,
because they're not available to everyone just yet. So, uh, we're going to be on cloud opus 46. I'm a huge fan of Opus. 53 is great, and we're actually
of Opus. 53 is great, and we're actually going to use 53, um, but not not directly, and I'll I'll explain why here in just a second. So, this is how we could change our model if we wanted to,
uh, and our reasoning levels. If you
want to change the reasoning level, pick the model and then you can change the reasoning level. Now, let's look at some
reasoning level. Now, let's look at some shortcuts that you're going to use a lot. So, one that I keep using that
lot. So, one that I keep using that you've seen me use a bunch here is just CR L. And that just clears the screen.
CR L. And that just clears the screen.
Doesn't start a new session. Just clears
the screen. And so, um, what we can do here is look at some of the other commands that are super important. So,
what other commands what other commands do I need to know?
Um, one of them is control A, which is going to take you back to the start of the line. And the other one is control
the line. And the other one is control E, which is going to take you to the end of the line. And there's other things you can do like control K, which I think deletes all of the all of the text after
the cursor. It does. And if you want to
the cursor. It does. And if you want to see what these are, you can just do uh a question mark here. And you'll see here they all are troll E. Um editing is what
you're looking for right there. So you
can look at to that at any time to see what those are, but those are the ones that I use the most. Uh it looks like control U to delete to the beginning of the line. And so if we had a longer
the line. And so if we had a longer prompt, control-U, delete to the beginning of the line. Good to know those shortcuts. Okay. Now, I talked
those shortcuts. Okay. Now, I talked about how I had a custom agent. You can
set up your own custom agents here by just doing / agent. And then you can see I've got a couple of them here. And an
agent, let's like if we were going to create a new agent here. Um, we could put it in either the user config, which is available to every project, or just
this project. A an agent is just a
this project. A an agent is just a prompt file which gives the agent some instructions, but they're very very powerful. In fact, I believe there's not
powerful. In fact, I believe there's not a lot you can't do with custom agents.
You can solve pretty much any workflow problem with them. Um, but if we were going to create one, let's just call this a test agent here. It's this is just a test. Uh, and again, these are
just uh we're just showing how to create a custom agent here. It's not going to do anything. And then in here we would
do anything. And then in here we would say something like you know you are a coding agent always follow this workflow and then the agent's been created and it's created here. You can see it right
there. And if we click this will
there. And if we click this will actually open it in Visual Studio Code.
This is another reason why we like to be in VS Code when we're using the terminal because if we commandclick on links when given them from the terminal to files,
they open right here. This is super powerful. I can't undersell this enough
powerful. I can't undersell this enough that the terminal on its own is great, but you when you need the file editing capabilities and want to see the file, you just can't beat this experience. So,
you definitely want to be in Visual Studio Code.
Okay. Now, I talked about a custom agent I have here called Anvil, and that's the one that we'll be using today. And you
can get this if you go to burcllin.kub.io. io/anvil
and then it's just a plugin. And so
these plugins are supported by the copilot CLI. Uh this one is on GitHub.
copilot CLI. Uh this one is on GitHub.
If you just look for the Anvil repository, you can see how I created a plugin. And this plugin has a custom
plugin. And this plugin has a custom agent and the context 7 MTP server. Uh
and again, and then there's a front-end design skill here that I'm recommending, but I don't give that to you because there's another place that I want you to install that from. So when you run this, you'll get the context 7 MCP server and
the agent and you can know that that's the case. If you go to MCP here, you can
the case. If you go to MCP here, you can see context 7 is there. And context 7 just allows the agent to read docs as markdown files. That's it. The anvil
markdown files. That's it. The anvil
custom agent does quite a bit more. So
the agent really tries to force the model to use context 7 a lot to use fetch a lot and then it forces it to do what we call adversarial reviews or
essentially to check its work with GPT53 codecs and Gemini which is one of the hidden models that I'm using here. And
the reason why I'm doing this is because I really like Opus very agentic. It
likes to please. It wants to do the work but it doesn't always do the best job.
GBT53 on the other hand is very rigid.
It's not very much fun to work with, but it only does exactly what it's asked to do. So, if we put these two things
do. So, if we put these two things together, we get better results out the other side. Now, the last thing I want
other side. Now, the last thing I want to show you before we get started here is this front-end design skill, which I've recommended. So, skills, if you
I've recommended. So, skills, if you haven't watched my video, my video on my video on skills should check that out.
But they're just markdown files. There's
a great one called Front-end Design and I recommend that you have it. It does
front-end design. Uh to install it, you're just going to copy and then come down and then you want to run this in your terminal. Now, this is a really
your terminal. Now, this is a really good opportunity for us to see a couple different ways to do that. So, one of the ways is we could just open our terminal here to the side and execute it
there. That's probably the easiest way.
there. That's probably the easiest way.
If you actually wanted to uh cancel out of the CLI, what you could do is pressR C twice and that just ends your session and then we could run the command.
However, there's a different way to do this that's kind of unique. So, let's
bring our session back here with CPR.
One, one of the things that's built into Linux, this is a Linux only thing that I'm about to show you, is if you press control Z, it will suspend the process.
And in this case, that's the CLI. And
then we can run this other command to install the front-end design skill, which I'm not going to do because I've already installed it here. And then if we want to bring this back, if we just
hit FG, which is short for foreground, then it will bring the process back. And
it's back. So there's a couple different ways that you can either drop out of the CLI or get back into the CLI. It's
probably easier though to just have your terminal instance open and do these things over here and leave these things open. Now, another thing that we've got
open. Now, another thing that we've got here is that up here at the top, if we have multiple terminal instances, it's not really easy for us to tell what's what. Uh, and the reason for that is
what. Uh, and the reason for that is because it just says node up top. So, if
we open another terminal instance here, and we have copilot running over here as well. So, let's yolo into this one. Now,
well. So, let's yolo into this one. Now,
we don't really know like what's happening over here. here and what's happening over here. They both just say node. So, there's a fix for this. If you
node. So, there's a fix for this. If you
go to settings UI and then what we're looking for is terminal uh title and then you can see terminal tabs title here might be a little small.
And what you want to do is you want to set this to sequence, right? This this
one right here. So, let's just copy this. Come down. We're just going to set
this. Come down. We're just going to set it to sequence like this. And then hop out. And then when we do that, you can
out. And then when we do that, you can see here what we've got at the top is uh a little bit more of a descriptive definition of what's actually happening.
So in this one, as you as we go along, you'll see that what it does is it actually updates these titles with the title of the chat session, which is super nice. So you can see what's
super nice. So you can see what's actually happening. One more tip I want
actually happening. One more tip I want to give you, and it's a lot of logistics before we get started, is that when you are running the terminal in a tab like this, it swallows a lot of the shortcuts
that you're used to. So, the commandB works for me, but it won't work for you.
And I can zoom in and I can zoom out, but it won't work for you. And to fix this, what you need to do is go to user settings, and then you want to look for terminal uh integrated.
I think it's just commands to skip shell. That's what we're looking for
shell. That's what we're looking for here. So, you can see here, these are
here. So, you can see here, these are the different commands. Basically, what
we're saying is don't pass these commands through the shell. Let VS Code handle them. And really the three that I
handle them. And really the three that I add are zoom in, zoom out, and to toggle sidebar visibility. That's it. And then
sidebar visibility. That's it. And then
once you add those, then your keyboard shortcuts will start to work uh as you would expect them to. So that's a quick fix there for that. Now, got a lot of
setup here. We've done a bunch. Let's go
setup here. We've done a bunch. Let's go
over and let's start to build something.
And the question is always, well, what are we going to build? And I always build the same thing. So let's look at that. If you've watched some of my other
that. If you've watched some of my other videos, I always build this site. And
the reason why I build this site is because it looks trivial, but it's actually not. Um, so it's a it's a site
actually not. Um, so it's a it's a site for sharing links. Um, if we add a link here, we can add another link. Uh, let's
add microsoft.com. Let's add github github.com/copilot.
github.com/copilot.
Right. And then up here, we can add dope links. Oop, it's already taken. And so
links. Oop, it's already taken. And so
there's a lot that's going on here. We
can publish, but we have to log in to publish. And so then we could see all of
publish. And so then we could see all of our links. And then here's the links
our links. And then here's the links that we can we can reorder these. And
then we can give somebody a single URL and they can share it with the world like this. All right. So I've logged in.
like this. All right. So I've logged in.
If I hit publish now, we get this URL.
And if you were actually to go to this URL right now, you will see this list of links which I've created here. And I
there was some others already in there say to local storage. That's why you see some duplicates. So we want to recreate
some duplicates. So we want to recreate this site. That's the task that we're
this site. That's the task that we're going to be doing with the agent. So,
let's jump back into the CLI and learn some more as we do this. So, we want to build this thing. How are we going to do that? So, first I'm going to switch to
that? So, first I'm going to switch to my agent and I'm going to go to Anvil.
Now, the next thing we want to do is we want to do a plan because we're starting from, you know, absolute zero. There is
nothing here. And this is a very special scenario to be in. It's one you may not be in if you're not building green field projects, right? If you're working with
projects, right? If you're working with existing projects, you may be in different scenarios here. But because we don't have anything, we really need to plan first. Whenever I'm doing this and
plan first. Whenever I'm doing this and I have to give this thing quite a large prompt because I'm about to try to describe what I want. I don't want to type this. I want to speak this. And so
type this. I want to speak this. And so
to do that, I'm going to use the builtin voicetoext support in the operating system. For a Mac,
system. For a Mac, you'll need to go to settings. And then
in settings, you want to just look for keyboard. So
find keyboard here. And then under keyboard, you're going to look for dictation. Turn that on. And then set
dictation. Turn that on. And then set the shortcut to press control key twice.
If you're on Windows, I'm pretty sure it's already on. It's just Windows keyh.
Okay. So I'm going to I'm about to dictate a prompt in and we're going to create a plan. But we want to be in a special mode to do that, which is plan mode. So I'm going to hit shift tab,
mode. So I'm going to hit shift tab, which is going to take me to plan mode.
And then I'm going to start planning. So
let's do it.
I'd like to create a site called the URL list. The whole point of the site is to
list. The whole point of the site is to allow users to create lists of links and then share them with one URL. So, the
site is essentially a homepage that describes what the site does with a big prominent input that says, "Create your first list." And then after the user
first list." And then after the user puts a link in, it takes them to a compose page where they can continue to put more links in. And as links are put in, the open graph data for those links
is fetched from the internet so that each link has a nice icon, title, and description. The user can edit those
description. The user can edit those titles and descriptions or they can take them as is. They can also reorder the items in the list using drag and drop.
Additionally, they get to create a vanity URL. But these vanities have to
vanity URL. But these vanities have to be unique and the list can also have a description. Now, once they have all
description. Now, once they have all this, they can publish the link the list and make it public. In addition, they also have a my links page where they can
see all of their links and they can edit those lists of links at any time from that my links page. To do this, I want
you to use Firebase as a backend. I've
installed the Firebase CLI and I've logged in. So, feel free to create
logged in. So, feel free to create whatever resources you need. If you need something from me, just ask. In
addition, as always, use the front-end design skill when you're building so that we have a nice, beautiful site. And
I'm going to give you some design inspiration for that site. So, that was kind of a long prompt here. I'm going to press shift enter to go down. And you
can see at the bottom, I said I was going to give it some design inspiration. We're going to do that. So,
inspiration. We're going to do that. So,
let's jump over to the browser and we're going to go to color.adobe.com.
We're going to look for just a nice palette here. So, let's look for explore
palette here. So, let's look for explore and then spring. I was like I like light sort of pastely colors. So, let's look at what we've got here. So, this is really pretty. You can imagine that
really pretty. You can imagine that might make a really pretty site. This
one here is nice. I like this. So, I'm
going to click on it here. And then what I'm going to do is say copy as CSS, right? And then let's go back. I'm just
right? And then let's go back. I'm just
going to paste all of this in. Now,
there's a lot of lines so you won't see them. But if we were because we are in
them. But if we were because we are in Visual Studio Code, let's create a new tab here. And we can just paste in and
tab here. And we can just paste in and look. And you can see what's really
look. And you can see what's really interesting about this is not only is it uh describing the color to use, but it's also describing white bush roses on a
background of blue sky in the sunlight.
The AI is going to look at that and it's going to translate that into design. So,
we're literally giving it inspiration in the in the in the form or shape of CSS classes. Totally fascinating. Okay, so
classes. Totally fascinating. Okay, so
let's let's not save this and we're going to go ahead and send this. This is
a massive prompt, right? Like I
basically just said whatever was on the top of my head. And now the agent Opus 46 is going to go to work here and it's going to try to create the plan for
this. So now you can see here it looks
this. So now you can see here it looks like we're not in yellow mode. So let's
do yes. And let's go back and do allow all. If you remember, that's how we get
all. If you remember, that's how we get into yellow mode. Permissions
are now enabled. Good. So, it won't ask me anymore.
And I may speed this up a little bit so that you don't have to watch the AI think. But it looks I see you already
think. But it looks I see you already have a project called link list. So,
I've done this demo before. Should I use that existing project? Uh, let's create a new one just so we're starting from scratch here. How should users
scratch here. How should users authenticate? Uh, let's start with just
authenticate? Uh, let's start with just Google Signin. We'll just start with
Google Signin. We'll just start with that. What front-end framework to use?
that. What front-end framework to use?
Interesting. I didn't specify any part of that. React plus V recommended. Next.
of that. React plus V recommended. Next.
Okay. All right. React plus V sounds good. We'll stick with that. Where
good. We'll stick with that. Where
should it be hosted? We want it hosted on Firebase. Everything is going to be
on Firebase. Everything is going to be on Firebase. Should creating a list
on Firebase. Should creating a list require signing in first. Ooh, now this is a good catch.
So, yes, sign in required require. No,
anyone can create, but only signin users can manage. So I think what we want here
can manage. So I think what we want here is anyone can create a list but only signed users can publish them. If the
user is not logged in uh they can create the list which should be saved to local storage.
Right? So there we're not getting an option we like. So, we're providing some steering and some specification to the planning. And we're not writing any code
planning. And we're not writing any code right now. The agent isn't writing any
right now. The agent isn't writing any code. All it's doing is helping us
code. All it's doing is helping us gather all of the requirements that we actually need to build this because otherwise it's going to have to do a lot of guessing and it's going to guess incorrectly because it's an AI. It's not
a mind readader. Now, it's gone off to create the plan. I should point out that in a normal workflow for myself at this point, I will move on to something else.
So, I'm not going to sit here and just watch it. What I'm going to do is I'm
watch it. What I'm going to do is I'm going to create a new instance of Visual Studio Code and I'm going to start to build something else or I'm going to go back and work on something else. So, for
instance, I've been working on a mobile app for iOS that is a chat app that works the way that I want it to work.
So, I'm going to go back here and I'm going to start working on this chat app.
Normally, this is what I would do, right? I would let this other thing cook
right? I would let this other thing cook in the background and then periodically I'm going to go back and check And it looks like the plan mode is done. I'm
just in time. Now, you can see we're getting a couple different options here.
Accept plan and build on autopilot.
Accept plan and build on default. So,
I'm actually going to take any of that.
I'm just going to hit escape to just completely cancel out of that. I'll
explain why here in a minute. So, you
can see it's created the plan here. And
if we remember, if we commandclick this, then we can see the plan right here. So,
here's the plan. And you can see it's it's actually quite long. Uh, it's
laying out the um the data structure.
It's laying out all of the pages, the routes, the cloud functions that are needed, the security rules. There's a
lot. And ordinarily, if we weren't making just a demo video, we would go through this, review it. Doesn't you
don't have to review it in in intense detail. You have to scrutinize every
detail. You have to scrutinize every detail, but you do need to go through and think about the different things that are happening and just see if anything pops out to you as being a red flag. That's generally what I do. But
flag. That's generally what I do. But
since we are making a video, we want to implement the plan. And so what we're going to do instead here is we're going to switch into I'm going to do shift tab and we're going to go into autopilot mode. And autopilot you can think of it
mode. And autopilot you can think of it as like the copilot CLI version of a Ralph loop. Okay, if you don't know what
Ralph loop. Okay, if you don't know what a Ralph loop is, it's essentially just putting the agent in a while loop and the agent just runs and runs and runs and it keeps being fed back its own
result until it gets to this point where it's looked at its own output so much that it feels really confident that it's implemented things correctly. That's
built into the CLI. I love this feature.
It's called autopilot. We're going to leave it on anvil, right? And we're just going to say implement. Now, we could mention the plan file here if we wanted to with the at, but we don't need to.
We're just going to say implement the plan and then let it cook. Now, this is going to take a second. So, I'm going to go off and work on some other things and we'll come back and see exactly what's
happened here and what we got. See you
in a minute. All right. So, I'm coming back to you here before this is actually finished so we can take a look at a few things that are happening while this thing is running. So one of the things that we can do while it's running is we
can look at the different background tasks. So you can see that it's doing an
tasks. So you can see that it's doing an adversarial review with 53. The hidden
model is Gemini with open 46. So if we hit /tasks, we can see each one of these and we could dig in and see which what happened here, right? So we can see that
it looks like Gemini found some SSRF and open graph cloud function critical severity, right? And so it's going to
severity, right? And so it's going to take this up with Opus. They're going to figure it out between the two of them.
So you can check in on background tasks that way including background terminal processes. So I'm going to escape and
processes. So I'm going to escape and escape again to go back. Now the other thing that I want to show you here which is quite fascinating is that the other benefit of doing this inside of Visual
Studio Code is that we actually get integration with the built-in chat in VS Code. So, I'm going to open that chat
Code. So, I'm going to open that chat sidebar. And what you'll see here is the
sidebar. And what you'll see here is the different uh sessions that we've had with the Copilot CLI. They just show up right here. And I'm going to expand this
right here. And I'm going to expand this just a little bit. If I was to click into this, this will actually pull up and we're actually looking at the CLI
session in the chat sidebar. Right? So,
if you scroll back up here, and I'm quite zoomed in for videos, so it's really hard to see, but we can see exactly what's going on. And if we come
back up here, let's see. Let's Let's
see. Here's So, here's a good one. So,
this happened. Here's a sub agent that was used to check the fire store status.
Not something that's easy to look at in the CLI, but if we click here, it will take us into it. So, we can see exactly what happened, right? So, it used the
get diagnostics. So, it's using, follow
get diagnostics. So, it's using, follow me here, the CLI is using the editor's diagnostics tool, specifically the the
LSP or language server. So, if I do I'm going to pull up the bottom panel here.
If you ever go to problems and you see problems, that is the language server doing that. That's called LSP or
doing that. That's called LSP or language server protocol. The CLI
integrated with the editor is great because otherwise it doesn't know that there's errors. It can't use the editor
there's errors. It can't use the editor features like linting and error checking uh to check its own code. It actually
literally has to build and that's not the most efficient way. We want the agent to have the same tools that we would have. And then we can see that it
would have. And then we can see that it ran this command here and we could dig in and see exactly what that command was and what actually happened. So the
integration with Visual Studio Code super powerful can be understated. A lot
of times you don't care what's happening in the CLI, but when you do, you really need to be able to dig in and see it.
And the integration inside of VS Code provides that. And that's for free. That
provides that. And that's for free. That
just works. There's nothing you have to do to configure that. So, what's
interesting here is you can see that it's going over the reviews from 53 and from Gemini, and then it's doing a build and making sure that everything passes.
And it's actually deploying the hosting and the rules. So again, we're in a Ralph loop here. So it's really going to try to get to the end. And remember, I told it, hey, you have the Firebase CLI,
so just continue on until you're done.
Do whatever you need to do. And you can see as it goes, you'll see these SQL calls. And that's because the CLI uses
calls. And that's because the CLI uses this SQLite database in the back end.
And what Anvil does is it uses that SQLite database to track progress. so
that when it gets to the end, it doesn't hallucinate whether or not it actually did something. It has to check the
did something. It has to check the database to see if it actually did that thing. So, it's done. And I zoomed out
thing. So, it's done. And I zoomed out here so that we can see what's actually happening with Anvil because all of the stuff at the end is this custom agent.
So, you can see, let's just sort of walk through what it actually did. It
presents an evidencebased bundle. And
this is really for its uh benefit so that it knows that it here's the evidence that it completed and did what it said it was going to do. So the
initial state was clean after initial commit empty project with a readme only.
So it snapshot of the initial state and then after the verification after it gets done. So it ran V build it looked
gets done. So it ran V build it looked at IDE diagnostics. It looks at the Firebase rules. It looked at the hosting
Firebase rules. It looked at the hosting did the hosting functions. So it looks like blaze plane required fall back in place. So, it needs me to upgrade to the
place. So, it needs me to upgrade to the Blaze plan. And then there's no
Blaze plan. And then there's no regressions detected. And then here's
regressions detected. And then here's the adversarial review where it looked at 53 Codeex, Gemini 3 Pro, and Opus Force 6. They all found sort of kind of
Force 6. They all found sort of kind of the same things, went through and fixed all those things, and then it came back and basically said, "I'm done." And if you don't like this, you can just run
this command right here to revert all of it. And that is the idea of Anvil is
it. And that is the idea of Anvil is that it checks its work and makes it easy for you to roll back out of the changes that it made. Now,
it wants me to upgrade to the Blaze plants. I'm going to do that real quick.
plants. I'm going to do that real quick.
It actually wants to run this um in in the cloud. It's deployed it, but I want
the cloud. It's deployed it, but I want to run it locally. So, I will literally just ask, how do I run this locally?
And uh hopefully it won't try to run it itself. If it does, we can stop it at
itself. If it does, we can stop it at any time. By the way, you can stop at
any time. By the way, you can stop at any time with just hitting escape to once, twice, twice, once, twice will stop. Uh, and just uh you can just stop
stop. Uh, and just uh you can just stop the model from responding or doing whatever it's doing. Uh, so do you want to run this command? Uh, no. So, we're
going to run it ourselves. What we do?
What do we want to run? We want to run Looks like we want to run npxvit.
All right. So, it's running. And then
let's go ahead and click and open our site. All right. So, here's what it
site. All right. So, here's what it created. And remember, we provided the
created. And remember, we provided the CSS. And you can see uh it's looks like
CSS. And you can see uh it's looks like we're already signed in. I don't know how. Here's my links. Let's try
how. Here's my links. Let's try
google.com.
Uh it looks like it wants the fully qualified. So, let's put that in.
qualified. So, let's put that in.
Create our list. There it is. Okay. And
we've got two links. We can drag these.
We can drop them around. Can we put a new one in?
Microsoft Microsoft.com.
That looks good. Oh, we're and we're getting the Look at the like rounded. It
added a little rounded on the open graph, which is lovely. I love that. Can
I edit the different things? I can.
That's just That's really nice. Uh let's
do GitHub and GitHub. Interesting. Okay,
what about one more? What about this site? This is a good one.
site? This is a good one.
My my own blog here. Shameless plug.
There it is. Okay, and then here's our custom URL. And then can we publish?
custom URL. And then can we publish?
Uh, looks like we can. Uh, very nice.
Um, and so we could should have added a title here. If we sign out, then we can
title here. If we sign out, then we can sign in with Google. Here's here's my links. Let's create a new list. Give it
links. Let's create a new list. Give it
a name, a description. So, you know, there's some things that I would change here, like there's too many emoji. The
flow is a little bit goofy. uh I'd go back and start steering and making some changes, but essentially that's kind of like your burndown on the CLI, what you
need to know today to use it and kind of like how I use it for workflows. And you
can really build anything like I I can't stress this enough. One of the things that I had been working on was a Vibe coding competition that I had with Pierce from the product team last week
in Radmin. And if you tuned in for that
in Radmin. And if you tuned in for that uh live. So here's the other Visual
uh live. So here's the other Visual Studio Code instance. I actually have three of them and I'm using the peacock extension so that I can tell which one I'm in. So this this one's green. This
I'm in. So this this one's green. This
one's blue. And then this is the one that we were in. So it's just an easy way for me to visually move and see, okay, this is my mobile app. This is the demo app that we're working on now. And
here's the other one. So this one I just I just kind of want to show you because I'm I'm kind of proud of it. But the um the whole point of this was to create a thank you wall for contributors because
a lot of the contributions that are made or the code in Visual Studio Code comes from you comes from your poll request.
And so we wanted to honor that. And so I created a site here called the thank you wall. This was part of the challenge.
wall. This was part of the challenge.
And you can load up a release here and you can see all of the different contributors and then just sort of give them kudos here which is which is nice.
But I am showing you this because I also added the very bottom. I was like, "It'd be so cool if you could just like fly around and explore all of these different contributors." And so I I did
different contributors." And so I I did this so you can just fly around through the sky and explore.
I mean, and then give people kudos. This just
blows my mind. A year ago, this would have just been impossible. And this is just me sort of telling the AI what I want and it building. Look at these mountains and these trees and these
clouds. you can do this. There's nothing
clouds. you can do this. There's nothing
that you can't do. Uh, anyway, sidebar, got a little distracted, but that's the GitHub Copilot CLI. I like it a lot.
It's really powerful. I find that it's extremely good at handling background terminal activity. The autopilot or
terminal activity. The autopilot or Ralph loop in there is great. And we
didn't even get to things like fleets, which allow you to deploy an entire fleet of sub aents to go out and tackle big projects like refactors. I hope this
was helpful. I hope it helps with your
was helpful. I hope it helps with your workflows. And remember that whatever
workflows. And remember that whatever works for you, that's the right workflow. I'll leave the links to all of
workflow. I'll leave the links to all of this stuff that you need or we used in the video like Anvil below in the description. And as always, thanks for
description. And as always, thanks for watching and happy coding.
Loading video analysis...