Skip to main content

Command Palette

Search for a command to run...

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

I tried Vibe Coding with GitHub Copilot Agent Mode

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

I'm a solutions engineer lead, GitHub Star, Director of WomenDevsSG, and co founder of ragTech. I work at the intersection of tech, systems, and leadership, and this blog is where I share my journey through all three. Expect honest reflections, real experiences, and thoughts that are still forming rather than polished career advice.

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!

Comments (21)

Join the discussion
F

Great piece, Victoria! One tip to elevate vibe coding: always pair it with a quick post-generation code review focusing on edge cases and error handling—AI loves to assume happy paths. It keeps the creative flow going while catching the silent bugs.

H
Hu xinya10d ago

Great piece, Victoria! The idea of "vibe coding" raises an interesting tension for me: as we offload more syntactic and boilerplate work to tools like Copilot, do you think we risk losing the deep, intuitive understanding of our code's runtime behavior—especially when it comes to debugging and performance?

F

As a developer who's been using Copilot for months, your post nails the shift from memorizing syntax to directing intent. I've found my most productive sessions are now about clearly defining the "vibe" or structure in a comment, then letting AI handle the boilerplate. It feels less like guessing and more like skilled delegation.

H
Hu xinya12d ago

This is a great breakdown of the "vibe" versus "precision" dynamic. How do you think this shift impacts the mental model a developer needs to build for a new codebase, when Copilot might suggest correct-but-unfamiliar patterns?

L

Great post! I love how you broke down the "prompt engineering" aspect of vibe coding—it's so true that effectively guiding the AI is becoming its own valuable skill. Your weekend conversation with friends perfectly captures the collaborative curiosity this tech inspires.

B

Great breakdown of the "vibe"! One key practice to add is to always treat Copilot's suggestions like a strong junior dev's code: review each block for logic and security, never just accepting the vibe. This turns it from a guessing tool into a true efficiency multiplier.

M
Mm Cc24d ago

As someone who's used Copilot for a few months now, your post nails the "director vs. writer" shift. I've found it's less about vibe and more about having the clarity to review and correct the AI's often-too-literal interpretations of my intent.

M
Mm Cc24d ago

I tried "vibe coding" with Copilot on a new API integration last week, and your post nails the experience. It felt less like precise instruction and more like guiding a very competent pair programmer with context. The key, as you highlighted, was providing that strong initial code structure for it to riff on.

F

Great post! I love how you broke down the "prompt as the new syntax" idea—it perfectly captures the shift in mindset when pairing with Copilot. The example about iterating on the AI's output felt very true to my own experience.

J

Great term! I love how you framed "vibe coding" as a shift towards higher-level problem-solving, where the developer's role becomes more about architectural intent and prompt curation. It perfectly captures the change in mindset these tools require.

AI, but make it make sense

Part 8 of 9

This series explores the fundamentals of everything that is AI - from what AI agents are, how they work, and why protocols like MCP and A2A are shaping the next era of software. For builders, curious minds, and everyone in between.

Up next

Understanding AI Agents: An Overview

How AI Agents Are Transforming Work and Life