The Truth about Vibe Coding (feat. GitHub Copilot Agent Mode)

The Truth about Vibe Coding (feat. GitHub Copilot Agent Mode)

I tried Vibe Coding with GitHub Copilot Agent Mode

Featured on Hashnode

Hello and welcome to another Articles by Victoria! This weekend, my friends and I have been talking a lot about the revolutionary AI tools we see emerging. We came across the term "vibe coding," which apparently describes the art of coding without actually doing it yourself— an AI handles it for you.

The term sounds strange to me. As someone who spends hours actually coding, I love the "vibe" of real coding and being in the flow state.

So in today’s article, let’s explore what Vibe Coding actually is, how you can do it yourself and what is means for the future of software developers.

What is Vibe Coding?

Vibe coding is the practice of AI-dependent programming where anyone - non-coders and coders, engage with AI tools to prompt, describe and build their own software. From desktop or web apps to mobile apps, anything that can be written with code can be achieved with vibe coding (in theory).

A quick lookup on the web and I found out the term was coined by Andrej Karpathy, previously Director of AI at Tesla, and a member of the founding team at OpenAI. This is his original definition of ‘Vibe Coding’:

There's a new kind of coding I call "vibe coding", where you fully give in to the vibes, embrace exponentials, and forget that the code even exists. […] I'm building a project or webapp, but it's not really coding - I just see stuff, say stuff, run stuff, and copy paste stuff, and it mostly works.

So now that we have an understanding of vibe coding, let’s learn how to actually be a ‘vibe coder’.

How to Vibe Code?

To be honest, while writing this article, I was skeptical about how non-coders could truly rely on AI to handle everything. I had many questions running through my mind:

  • Wouldn’t there be bugs or inefficiencies in the code that only a human could catch and optimize?

  • What about system design and programming patterns—doesn’t AI still need guidance to implement them effectively?

  • How complex can an AI-generated app really be, especially for someone who codes more by intuition than strict methodology?

  • And if AI does all the heavy lifting, what happens to the deeper problem-solving skills that come with traditional coding?

Vibe coding is all about working with AI as a collaborator rather than just a tool. The key is to learn how to interact with AI efficiently—like giving clear, concise instructions and iterating based on feedback.

Here’s how you can start:

  1. Pick an AI-powered coding assistant – Tools like GitHub Copilot, Cursor, or ChatGPT can help you generate code snippets based on descriptions. For this article, I’m using Github Copilot Agent Mode since I have the paid plan.

  2. Describe what you need, not how to do it – Instead of writing step-by-step logic, tell the AI what you want, e.g., “Create a user authentication system with JWT tokens.”

  3. Refine and iterate – The AI might not get it perfect the first time, but you can tweak and refine through additional prompts. This process will take the longest for those who rarely prompts AI tools. The intuition and skill of prompt engineering takes time to build.

  4. Use AI to debug and optimize – When you run into issues, let the AI analyze error messages and suggest fixes. CTRL + C and CTRL + V (sorry Mac users) are your best friends.

If you want, I can write a separate article on the details on how to setup, configure and use different AI models, both free and paid, for vibe coding. Do let me know in the comments!

Using GitHub Copilot Agent Mode to build a simple app with Vibe Coding

A while back, I published an article comparing 3 coding generation tools, one of them being GitHub Copilot. But now, GitHub has released GitHub Copilot Agent Mode (available in preview) and since I’m curious to see how far I could take vibe coding, I decided to put it to the test using GitHub Copilot Agent Mode.

Step 1: Download Visual Studio Code - Insiders

  • Go to this link to download

Step 2: Open VS Code Insiders and Setup Copilot

The instructions are pretty clear and they have an onboarding window as soon as you launch Insiders.

Once your Copilot chat window shows up, make sure the action dropdown is set to new “Agent” mode.

Step 3: Start Vibe Coding

So for this example, I’m making a simple chatbot app using CopilotKit. The Agent does well by coding up a template from scratch. And then, it stops because I’m missing the API key. So I had to re-prompt to ask it to generate me the .env file to store it. Yes, I can easily create a single file myself but I want to be let AI code everything for this project.

And of course, I still had to manually paste my API key in the .env file. As I instruct the Agent to run the app, it told me that the initial code it generated have issues, so it immediately applies the fixes. But the fix was still causing errors so I gave it some help and copying the sample front-end code from the CopilotKit’s documentation. After that, it was fixed.

My simple chatbot app is now up and running! Ta-da!

Verdict

Vibe coding made app development feel effortless. Instead of manually writing code, I found myself interacting with AI in a conversational way, tweaking and refining as needed. However, some limitations quickly became apparent:

1) Debugging is still a human task

If I were the one building this from the start, I would have read CopilotKit’s documentation and knew that I can simply use their UI component.

So when it generated a minor bug, I had to step in and debug manually. AI couldn’t always fix issues without my intervention. And trying to use AI to fix their own mistakes can take lots of unproductive attempts. If you are not using free tools, these costs can accumulate really fast!

2) AI lacks context beyond immediate prompts

While Copilot generated individual functions well, it didn't always connect them in the most efficient way, requiring some human restructuring. For this example, the bugs that were generated from the Copilot Agent was because it didn’t know it had to check the docs and tried to implement its own UI for the chatbot.

3) Optimization requires experience

The AI-generated code worked, but it wasn’t necessarily the most optimized or scalable solution. A human touch was still needed to refine it. As someone who can read code, it’s obviously faster for me to optimize the code myself.

Despite these drawbacks, the experience demonstrated how AI can dramatically speed up development, making coding more accessible to non-programmers and boosting productivity for experienced developers.

4) Data and Security Concerns

One of the biggest concerns with AI-driven development is the handling of sensitive data like the API key in the example. When relying on AI tools like Copilot or ChatGPT, code snippets and project details may be sent to external servers for processing. This raises questions about data privacy, security risks, and even licensing issues—especially for enterprise or proprietary projects. It’s essential to review the terms of use and ensure that confidential code isn’t inadvertently exposed.

At the current limitations, vibe coding can only be used for rapid prototyping and would be beneficial for mainly coders. But it cannot replace software engineers who understand data structures, system design and how to build secure scalable apps.

What does Vibe Coding mean for the future of software development?

When ChatGPT first launched, I knew that prompt engineering is a skill that’s not to be underestimated. The AI can only generate solutions as good as the prompt. If you don’t prompt well, you can’t get good results. If you don’t know what you are doing, you can’t get good results.

Vibe Coding emphasizes the importance of this skill even more! The success of vibe coding a fully functional app all depends on your prompt engineering skill.

For non-coders, I cannot imagine the process of building apps being smooth with no hiccups. AI can generate hallucinations and imperfect solutions occasionally. Knowing how to fix the AI’s mistakes and catching these mistakes before it snowballs into technical debt will be a daunting task for someone without a coding background.

Conclusion

The future of software development might not be about writing code but about shaping AI-generated solutions to fit specific needs. While AI-driven coding isn't perfect yet, its rapid advancements suggest a world where developers focus more on creativity and problem-solving than syntax and debugging.

Whether you’re a seasoned developer or someone with no coding experience, AI tools like GitHub Copilot or Cursor are making it easier than ever to turn ideas into working software.

I am quite excited and optimistic about the changes that vibe coding will bring. Because I don’t think vibe coding is about replacing programmers—it’s about enhancing the way we build. As AI continues to evolve, the role of developers will shift from writing code line-by-line to guiding AI-generated solutions, shaping the future of software development in ways we’re only beginning to explore.

References

Thanks for reading! Hope this article has been helpful! If it has, do leave a like, share the article and comment your thoughts below! Cheers!

Let's Connect!

Did you find this article valuable?

Support Articles by Victoria Lo by becoming a sponsor. Any amount is appreciated!