Harness: Practical AI Coding Tips
10 No-Nonsense Ways to Actually Ship with AI Tools
Summary
AI coding tools are moving incredibly fast, and it's easy to feel overwhelmed by the constant flood of new features, MCP servers, skills, and "agentic" concepts. The speaker argues that 90% of it is noise.
Instead of chasing every shiny new thing, focus on a handful of simple, high-leverage practices that work across tools (Claude Code, GitHub Copilot, Codex, etc.):
- Stay in a powerful environment like VS Code with full extensions and terminal integration
- Run agents in safe, isolated environments (remote dev containers) so you can safely use "YOLO" / allow-all mode
- Always prototype first (especially UI) before implementing
- Plan thoroughly, then rubber-duck the plan with a different model
- Use autopilot + subagents for execution
- Review and refine with multiple models until diminishing returns
- Continuously extract lessons from your sessions
The goal is simple: stop getting distracted by hype and become dramatically more productive with the tools you already have.
Full Transcript
OK folks.
Look, the number one piece of feedback that I get from people on this channel and when I meet them in person is that they're overwhelmed and exhausted.
We're getting pummeled with AI features and tools and MCP servers and skills and new concepts and no one can keep up.
OK, you can't keep up.
I can't keep up.
But the truth is, 90% of this stuff is just noise.
You don't need it.
And if you don't believe that, then just go ask AI to create a skill to do literally anything.
And then you can publish that skill.
And whether or not it works is almost secondary to the fact that it exists, it's irrelevant.
So what I want to do in this video is I'm going to give you 10 concrete tips for how you can effectively use AI to code today.
These things are very simple and it doesn't matter if you're using Claude code or GitHub Copilot or Codex, these will apply to you and you will find that you are highly effective and you can just ignore all the rest of this stuff.
Alright, so if you're ready.
Let's do it alright.
Tip number one is going to be to use Visual Studio code.
I am aware that there are a lot of tools out there, including ones from Microsoft and GitHub like the GitHub Copilot app, which we'll talk about in a different video.
But for me, for now, I'm still in Visual Studio code.
And the reason for that is because, first of all, we get all the themes and extensions and everything that Visual Studio code does that isn't code.
I mean, think about it.
If you're working with Docker containers, you can get the Docker extension and see all your images and containers here in Visual Studio code.
You can't do that in these other apps.
The other reason why I really like it is because the integrated terminal in Visual Studio code has this built-in ability with control I to just open the chat here in line.
And I find I do this a lot because I just forget terminal commands, so this is super helpful.
Now I will say that when I'm in Visual Studio code, what I do is I open the terminal in the editor area as a tab.
So if you just look for editor terminal, it's right there, first one, create new terminal in editor area, and then I map that to Control Alt Windows T on Windows here.
So then what I can do is just hit the keyboard shortcut and open a terminal here, and now I've got it full screen.
And then I'm going to fire up and use the Copilot CLI here, and this is how I work with agents.
So that's tip number one, use Visual Studio code.
Tip number two is always turn on YOLO or allow all so you can do that just here with YOLO or allow all.
They both do the same thing, so let's do YOLO mode on and what this does is it just allows the agent to execute any command at once without asking you for permission.
Now I know that some of you may work in places where they don't like this kind of a thing and they turn it off.
We're going to talk about in a second.
You've got to have this on or you are completely kneecapping yourself in your ability to be productive with AI and to actually do great things with it.
This is critical.
If you take nothing else from this video, figure out how to get this on and that tip number two, YOLO mode is really going to force us into tip number three, which is never, ever, ever run agents on your own machine.
So what you want to do instead is run them on a different machine because you want to be able to turn on YOLO mode, but you want to be safe.
So for me, I have this little Ubuntu box here and I'm going to connect to it from Visual Studio code using remote SSH.
Another reason why I love Visual Studio code, so I'm going to click down here and I'm going to go to connect to host and then you can see I've already configured it.
It's just an SSH host by IP address here.
I'm going to click and that's going to open Visual Studio code connected to this little box here.
Now for me, it just feels local, right?
But I'm actually not on my machine.
I'm on a different machine, so even if the agent gets out of control, it can only hurt this box.
It can't hurt my work machine, but I'm going to take this a step further, so let's start a new project here.
So I'm going to open this up and you can see I'm actually in bash now and so let's create.
Let's go to the dev directory.
I'm going to create a new directory here and we're going to make a date picker web component here, so let's go ahead and create that and then I'm going to move into that directory.
Here we go and then I'm going to just open it here inside of Visual Studio code and I like to do that with the code insiders dash R and then the dot command and that will just reopen it right here.
And now we've got the folder open.
I'm going to collapse the chat sidebar.
You won't see me use that again here now.
What we want to do here is take this a step further and not only do I want to be on this box, but I want to be inside of a dev container.
So as long as Docker is installed, we're just going to choose add dev container configuration files and then I'm looking for node and type script node and type script right here and take the default.
We don't need any of these features and we'll go ahead and take that.
This is going to add some configuration files to the project and then you'll see it will be prompted.
Do you want to reopen this inside of a dev container?
We're just going to say yes, and what this is going to do is it's going to open this project inside of a Docker container on this remote machine, so we are now two layers removed.
So now the worst thing that can happen is it can destroy the Docker container, but it's contained on this remote box.
You've got to figure this out with your company.
If they won't let you use allow all or YOLO mode, you've got to invest in figuring out how to get it so that you're in an environment where the agent can't hurt anything.
It may take a little investment, may take some time, but this is super important.
OK, so now I'm just going to open the terminal in the editor space like we talked about, and then I'm going to go ahead and run copilot because it's not installed yet.
And you'll see that because it's copilot Visual Studio code, it automatically detects and then I can quickly install again.
You can use whatever tool you want.
This is just how I work and I'm going to work in the CLI with the sidebar open the rest of the time here.
This is how I still prefer to work with agents here.
Tip number four is prototype everything.
I don't care if it's Greenfield.
I don't care if you're doing a feature.
I don't care if it's UI work.
I don't care if it's an API prototype it.
The reason why we're doing this is because we want to get up front as many answers as we can get before we get to implementation.
So let me show you how I do this.
So first of all, here what we're going to need is because we're doing UI work, we're going to need a skill that helps the model with UI and I'm using Opus 4 six.
I always use Opus for UI work and we have two options here.
The first one is that we install the front end design skill, so you've heard me talk about this before, but just go to skills.sh and search for front end design and this is it right here.
It's got 550,000 installs.
This is the one I took this a step further and I've created my own design system here called poster board and.
This is what I use now.
It contains the same information as the front end design skill, but layers on top of it, typography, colors, CSS classes, etc etc.
So I would do this if I were you to take some time, build out your own design language and CSS framework because you can do that now.
There is no reason why you can't do this.
It's just you just have to ask for it.
So let's start with front end design.
If you wanted to install this, you just click on it and then you can just copy this command here and then just paste it in.
And this is what I would recommend that you do here.
I'm not going to do this.
I'm actually going to do a different one here, so I'm going to do MPX skills.
Add and then going to reference my own skill, see poster board design and then it's in a folder called skills, I believe.
Apparently the folder is skill and not skills.
There we go.
I'm going to put it in this project here.
We're not going to install that other skill and then there we go.
And if we open the sidebar you can see there's my skill right here for design.
So now that we have that, we're ready to create a mock because we're doing front end work here.
So I'm just going to mention it directly here and for the copilot CLI we need to reload our skills.
There we go.
And now we should see it here.
There we go.
And now I'm just going to ask for what I want using voice chat.
I want to create a date picker web component using this poster board design language.
Create 20 mocks for this component.
Put them all in the same HTML file so that I can decide which one I like the best.
I always mock now before I implement.
I used to implement and then go back and try to fix it up, but it's better if you figure out what you want up front than trying to fix it later on, because if you think about it.
Ideally, in a perfect world you would be able to one shot something every single time and if your prompt was perfect, you would be able to do that.
Of course you can't do that.
No one can do that, but we're going to talk about how we can get as close to that as possible and prototyping is a very important part of that.
We've got our mocks back here, so let's check him out so we can do that here.
Let's install the live preview extension again.
Visual Studio code just delivering over and over for us here.
So now we can preview this file here, so let's pull it back up and then we'll just click here to preview and now we can see it right here in the integrated browser.
So let's just Scroll down and see what we've got here.
I'm going to zoom out.
I'm going to make this wider museum just a bit.
I'm zoomed in for the video, but I need to zoom out so we can see this and we'll zoom out just in the browser.
So this is this is nice classic grid.
This is a dark one.
This is a range compact in line interesting.
Oh, look at this.
I like this.
So you select a month and then it drills down into the day.
Which is very cool.
This is an interesting one here.
Spinner here.
OK, so I think what I want here is I want this classic grid, but what I want is the ability to be able to drill down by month and by year.
So in other words, you click at the top should go up to the month you click on the year.
It should go up to the years and then you can drill back down and it would be really nice way to navigate through the date picker.
So just from the mocks, we've already identified a lot of what we want to do in our prompt, and that's going to bring us to tip number 5.
Because we are now ready to go.
Tip number 5 is always plan and grill.
Now, what is that even mean?
Well, first of all, plan is just toggling into plan mode.
As you can see, bottom left corner, just ship tab.
So now we're in plan mode and this is going to iterate with us and ask us some questions to create a plan.
But we're going to take this a step further by installing a skill called grill me from Matt Pocock.
This is one of the best skills I think that's ever been created.
It's quite simple.
All it does is it pesters you and asks you questions over and over and over again to get out from you all of the details that you can't think through ahead of time.
Again, we're trying as best we can to approach the perfect prompt so that ideally we just one shot this date picker and be done with it.
The only way we're going to get there is by going through some process that helps us put that prompt together and now we're going to do grill me like this and now we have a little bit more fidelity and we can tell the agent what we want here.
So let's do it like this.
I want to build a.
Web component, a date picker web component.
You can look at the mox file there.
I just want the standard grid.
A calendar view, but I want to be able to zoom in and out by date and year.
So clicking on the month at the top should zoom out to a month view and then that should have year at the top and clicking that should zoom out to a year view and then clicking on the year would zoom back into the month and clicking the month would zoom back in and I could see.
The days OK and now we're just going to go through the plan mode with the grill me skill and we're going to let it ask us the questions that we need to actually get a really good plan in place here.
Alright, so it asked me 15 questions about this date picker.
I answered them all here and skipped ahead so you don't have to watch that, including how the zoom works, how the events work, everything that it would need to know, including the API everything.
So we now have all that, and that's all part of our plan here, which we can control.
Click this and it opens it in a tab again.
Visual Studio code just the best.
So what we want to do here, though, is we have a plan.
You can see it's quite.
It's quite intense here.
It's quite detailed.
The next thing we're going to do.
This is going to bring us to tip number 6 and that is always rubber duck your plans.
So if you look in the slash commands here, there's a rubber duck and what this does is it's just reviewing the plan with a different model.
So I'm just going to hit it like this.
I'm not going to give it any other information here, and because the copilot CLI is multi model, meaning we have Claude family models, Gemini and GPT family models.
Asking for a rubber duck should have Opus request review, probably from one of the GPT models.
OK, in this case, 55 and so what we're going to have it do is just review the plan with a different model and the reason why we do this is because these models have different training data and different blind spots.
OK, so just because Opus thinks the plan is good doesn't mean that it doesn't have holes that GPT 55 can't find and vice versa.
When you put these models together like this, you get this sort of like hybrid capability.
That's super powerful.
So yes, a little more expensive, but will let the rubber duck finish and that's tip number 5 no. 6 tip number 6 rubber duck.
Alright, now tip number 7 is going to be to use autopilot and subagents.
So here you can see it's actually suggesting that I'm going to exit plan mode and say that I'm going to prompt myself and then I'm going to go ahead and I'm going to clear out the context.
We don't want to start a new session here, so our plan.
Did our plan get copied into the?
I did not, so that's no big deal.
We can go back, look at our sessions here, so let's just go back to.
We can resume that session.
OK, and I'm just going to drag it in here.
Perfect.
OK, and then now now we're ready to just.
Do a new session here and the reason why I'm starting fresh here is because there's a lot of information out of their context window.
I don't want it to get confused, so we're going to start fresh.
We just got the plan and now we're ready to implement and I'm going to move to autopilot, so that's tip number 7 is autopilot and all we're going to do here is we're going to say implement.
And then we're just going to mention the plan specifically.
Now the other thing that I'm going to do here you can do is you can say use subagents and small models when appropriate to speed up.
The implementation use fleet as well when appropriate, so I'm kind of slamming a bunch of tips in here together, but.
Subagents allow the main agent to call other agents and it can use smaller models, which is faster and saves you money and then fleet can do multiple things at one time, which is purely a speed play.
So I'm just passing all that into Opus and letting it make those decisions here.
But at this point, right?
This is where we just kind of let the thing cook, and because it's on autopilot, it's going to go until the plan is finished.
Autopilot is kind of like a loop.
Other harnesses sometimes call this goal, but you're setting the goal.
The goal is to implement the plan and autopilot.
Make sure that it actually does that by sort of putting it in a loop and making sure that it accomplishes that goal, which is to implement the plan implementation is finished.
If you scroll back up here, what's kind of interesting, kind of interesting here is that you'll see that it decided to use GPT 5.4 to implement the date picker.
Very interesting, but.
The kind of the point of me showing you this is that these harnesses are orchestrators.
You don't need orchestration frameworks.
You can have them.
Maybe you get more mileage out of them, but you really don't, right?
You could just ask copilot to do that and it will just do that.
And most of these tools will do that here and then it went through and parallelized the demo page and the component at the same time to make it a little bit faster here.
OK, so now we are ready to see what we've got here and that's going to bring us to tip number.
Eight yes, which is to use the built in browser tools here.
So I'm going to open this index dot HTML.
We're going to open the preview here and this should show us a preview of our date picker and here it is.
So let's look at it here.
This is the inline default.
We should be able to click here and zoom out to months and then zoom out to years.
OK, here's the Sunday start.
Here's the min max in line.
Here's the drop down mode.
It's really pretty.
You know it's really nice.
But I don't like the fact that the months like we could have another row of years here and then the months aren't evenly spread out in the height of the date picker.
So what I'm going to do here is I'm actually going to have the model look at the browser, so I'm just going to say.
Use the built in browser to check your work right now.
We could put another line of years and the months aren't evenly spread out in the height of the date picker and then I'm just going to go ahead and send it now.
This is one place where there really could be better integration between the CLI.
So here, ideally we would just click on the element and we can do that here.
So if I click here I can click on the element.
But this is going to open sidebar chat, right?
You can see it's added the elements here and then we could actually change this and do the CLI and we could keep going here working with it right here.
But again, I don't really use sidebar chat, so I'm going to rely more on prompting here.
But admittedly, this is a place where an integrated browser is really nice and in the GitHub Copilot app there is an integrated browser which I really like.
So a hole in my workflow here.
If you will, we've just discovered together.
And now we fix that issue.
We got a pretty good looking date picker like we can zoom out.
We can go to the year.
So if we wanted to say go to, you know we can paginate through the years 1889 June 12th.
It's that easy to get there and then we can drill back up here.
Go forward and we should see the current year highlighted right here.
Perfect June.
That's right on the 14th.
So this date picker is looking pretty good to me now.
I think we're ready to ship this and that brings us to tip number 9.
So let's start a new session here and then tip number 9 is to use the different models from different families on autopilot to really refined your end result.
So we're going to switch to autopilot with shift tab or goal in other harnesses and then something like this.
Review this project for completeness, accuracy, improvement, changes, security, etc.
Run that review by GPT 55 and get its input into your findings to see if you're missing anything.
Display your findings in a list ordered by priority.
Fix every item in the list, then repeat this process until both you and GPT 55 agree that the only remaining items have diminishing return.
So I'm going to go ahead and send this and because we're on autopilot, it's going to do that.
It's going to repeat until this last sentence here, which is crucial, which is that the only remaining items have diminishing return.
Because when you tell models to review code, they're always going to find something.
They're never going to find nothing.
You've probably seen this, but if you say look for diminishing return, that's your stop point.
Then the autopilot will continue until both Opus and GPT 55 agree between each other that, OK, we've got every item.
This thing is production ready.
Everything else has diminishing return.
And again, this is can be expensive because you're using the two top tier models, but we're after the best possible result here.
And this is how you get there.
OK, so it found quite a few things here.
If we Scroll back up here, these were the critical significant.
It did three rounds of review with the GPT 55, including keyboard access, two digit, some bugs here, year bounce clamping.
I don't even know what that is.
HTML escaping.
But the point is, like at this point, we've now thought of things that even probably you would not have thought of and I wouldn't have thought of, but would show up as bugs down the line.
So yes, we're spending some more money and some time in effort here, but we're avoiding things down the line that would have to be addressed at that point in time.
And that brings us to our final tip.
Which is to take everything we've done here today and learn from it with something called Chronicle.
So we're just going to do Chronicle here so you can see session history tools and insights.
And then there's some different commands that we can pass in what we're going to do here is we're going to do tips right here and then we're just going to send it just like this.
And what this will do is it'll look back across our session history and it will give us suggestions for how we can improve the way that we work with the agent.
We're going to take that, we're going to factor it in, and then we'll go back and we'll tweak the workflow that we've got, including these new insights so that we are just continually getting better at working with these agents.
Because no one has the full answer here on how to do this.
We're just sort of finding what things work and then trying to bake those into the tools and the harness so that you don't have to install a million different things or do some sort of AI gymnastics to get things to work correctly for you.
Life should not be that hard.
So that's tip number 10.
We'll see what Chronicle brings back for us.
OK, so here's interesting.
Here's what it's telling me.
It says you've sent the exact same prompt 13 plus times.
Why don't you stash your current prompt or even better, put that orchestration block in a instructions file?
OK, great, perfect.
Good to know that was on a different project, but that's good to know here.
Use slash subagents to set model routing instead of specifying it in every prompt.
Interesting, so it looks like again it's correcting me and saying, you know, use slash subagents specifically use slash fleet, which I did, but looks like I could do more of.
Use control Q in your 80 turn inbox session.
You often wait for a step to finish, just go ahead and queue it up.
This is great.
We're learning about features of the harness as we go here.
Turn your repeated orchestration into a project skill.
So we're doing sophisticated things here.
We're learning about features of the CLI, and as we learn about those, we can automate just a little bit more.
But I hope you can see from this video that you really don't need a lot of extra stuff.
The harness has what you need, whether that's GitHub, copilot or cloud code or codex, it's in there.
You just need to understand what's in there and how to use it.
And remember, keep it simple.
It's not that complicated.
I understand that as a developer, if you're like me, you feel like this should be more complicated than this.
This is very easy.
But that is the way that it is now, and if you overcomplicate it, you're actually going to get worse results.
While really burning yourself out, trying to keep up with all the fancy things that people are talking about on the Internet.
Don't worry about that.
Just focus on getting the most out of the tool of your choice and you will be just fine.
Thanks for watching.
And as always, happy coding.
Related in Agentic Commerce & AI Tools
- Agentic Commerce Category — The hub for building systems that agents (and humans) can actually use.
- Company Brain — Building a single unified AI brain for an entire organization with agent fleets and closed loops.
- Mike's CEO Operating System — Full personal OS with daily command center, agent orchestration, and structured knowledge management.
- BuildMyOnlineStore (BMOS) — Making products discoverable by AI agents.
- Loops, Not Prompts and the Building AI Agent Loops series — The philosophy and practice of giving agents real work to do in loops.
- Claude Agent Skills — Packaging reusable expertise so agents become specialists.
- x402 – Internet-Native Payments for AI Agents
- Google Brain: Andrew Ng on AI, Coding Agents & the Future — Insights on agentic workflows, small generalist teams, building blocks, and enterprise transformation.
- Dreaming: Self-Improving AI Agents — Background memory consolidation so agents learn from past sessions and get smarter over time.
- Claude Tag in Slack & Notion Agents — Productivity tools that risk lock-in — our model-agnostic philosophy for the agentic era.
- Open Tag by CopilotKit — Open-source, model-agnostic "AI teammate" experience for Slack & Teams as an alternative to vendor-locked solutions.