Vibe Coding: Programming with AI via Terminal and Natural Language

Vibe Coding: Programming with AI via Terminal and Natural Language

What is Vibe Coding

Vibe Coding is a software development approach that uses generative artificial intelligence tools to transform requests expressed in natural language into code and software functionality. Instead of writing every instruction directly, the developer describes what they want to achieve, lets the AI generate or modify the code, and verifies the result through successive iterations.

The term was introduced by Andrej Karpathy in February 2025 to describe a way of programming based primarily on interaction with AI tools: a request is formulated, the result is observed, the code is executed, and further instructions are provided as needed. The concept therefore reflects a change in the way people interact with software: from writing code directly to describing the desired outcome and collaborating with an artificial intelligence model.

Vibe Coding can make the transition from an idea to a first working prototype faster and can also allow people with limited programming experience to experiment with applications and interfaces. For production projects, however, generating code does not eliminate the need to understand how it works, verify its quality, and manage security, performance and maintenance.

In this sense, Vibe Coding should not be considered simply a new programming language, but rather a different way of interacting with the development process, in which artificial intelligence becomes an active tool for writing, modifying and verifying code.

Where does the term Vibe Coding come from?

The term Vibe Coding was introduced by Andrej Karpathy on February 2, 2025, in a post about a new way of interacting with artificial intelligence tools during software development. Karpathy described an approach in which the programmer communicates what they want to achieve to the AI, observes the result, runs the software and continues to interact with the model through new instructions, leaving much of the actual code writing to the AI.

The term was therefore created to describe a development experience that differs significantly from traditional programming: instead of focusing primarily on manually writing instructions, the interaction takes place through intent expressed in natural language, feedback and successive iterations.

In Karpathy's original description, this approach was mainly associated with personal and experimental projects. The term has since become broader and is now used to describe different forms of AI-assisted software development. It is therefore useful to distinguish Vibe Coding in its original sense from the broader practice of AI-assisted coding, in which developers continue to systematically read, understand and review the code produced by artificial intelligence.

This distinction is important because Vibe Coding does not simply mean using AI to program: it describes a different relationship between the person, the code and the AI tool, in which describing the desired outcome and iterating through conversation play a central role.

How does Vibe Coding work?

Vibe Coding is based on an iterative process in which a person describes what they want to achieve, artificial intelligence generates or modifies the code, and the result is then executed and verified. If something does not work or needs to be changed, new instructions are provided to the AI and the cycle starts again.

Describe: describing what you want to achieve

The process begins by describing the desired outcome in natural language. Instead of writing the code directly, the user can ask the AI to create a specific feature, interface, web page or modification to an existing project, providing as much information as possible about the desired behaviour, structure and result.

The quality of the instructions influences the result: the clearer the context, constraints and objectives are, the more likely the AI is to produce a solution that is consistent with the project.

Generate: generating the code

The artificial intelligence interprets the request and generates the code needed to implement the described functionality. Depending on the tool being used, it may create new files, modify existing code, install or configure dependencies, and propose a structure for the project.

At this stage, the code can be produced very quickly, but it should not automatically be considered correct or ready for production. Code generation is only one part of the process.

Run: running and verifying the result

The generated code is executed to verify whether the result matches what was requested. The interface can be checked directly, functionality can be tested, errors can be observed, and the software's behaviour can be compared with the original objective.

This stage is essential because it moves the process beyond simply generating code and towards verifying the actual result.

Nudge: correcting and iterating

When the result is incorrect or needs to be improved, new instructions are provided to the AI. The user can ask it to fix an error, change a behaviour, improve an interface or modify a specific part of the code.

The process therefore becomes a continuous cycle of request, generation, execution, verification and correction. AI can handle a significant part of the code-writing process, while the person remains in control of the objective, the result and the subsequent development decisions.

Image

Vibe Coding and AI-assisted coding: what is the difference?

Vibe Coding and AI-assisted coding are not exactly the same thing. Both use artificial intelligence tools during software development, but they differ mainly in the role that the person maintains in relation to the code.

In AI-assisted coding, artificial intelligence is used to support the developer's work. It can suggest code, complete functions, explain errors, generate tests and documentation, or modify parts of an existing project. The developer continues to read, understand and directly review the code produced.

In Vibe Coding, on the other hand, the interaction can be more strongly oriented towards the final result. The person describes what they want to achieve using natural language and uses AI to generate, modify and iterate on the code, progressively verifying the behaviour of the application. Direct intervention in the code can therefore be significantly reduced.

The distinction is not absolute. In practice, there is a continuum between traditional programming, AI-assisted development and Vibe Coding, and the same project may use different approaches at different stages.

For example, a professional may use Vibe Coding to quickly create a prototype and then move to a more traditional or AI-assisted approach to review the code, improve its architecture, carry out testing and prepare it for production.

This distinction is particularly important in professional projects: AI can accelerate development, but the level of technical supervision and responsibility must be appropriate to the complexity and intended use of the project.

Tools for Vibe Coding

Vibe Coding can be carried out using many different types of tools. Some work directly in the terminal, others are integrated into code editors, while some platforms allow applications to be developed directly in the browser. The choice of tool therefore depends on the type of project, the level of control required and the user's skills.

Terminal-based tools

Terminal-based tools allow users to interact with an AI agent directly within the development environment. The agent can analyse project files, create or modify code, execute commands, run tests and work across different parts of an application.

Examples include Claude Code, OpenAI Codex CLI and other coding agents that work directly on a project through the terminal. This approach is particularly interesting when working with existing projects, because the AI can operate on the code and tools already present in the development environment.

AI-powered IDEs and code editors

Another option is to use a code editor that integrates artificial intelligence directly into the development environment. In this case, AI can analyse the project, suggest or modify code, explain errors and assist the developer throughout different stages of the work.

Cursor is an example of an editor designed around interaction with AI, while tools such as Cline can integrate an AI agent directly into the editor and connect it to the terminal, allowing users to move between code analysis, editing and execution.

Web-based platforms

There are also platforms that allow applications to be created directly in the browser, starting from a description expressed in natural language. In these environments, users can describe the desired application or interface and let the platform progressively generate the project.

These tools can be particularly useful for prototypes, experiments and early versions of digital products, especially when the goal is to test an idea quickly without having to configure the entire development environment manually.

Choosing the right tool

There is therefore no single Vibe Coding tool that is suitable for every project. A terminal-based agent may be better suited to working directly on an existing codebase, an AI-powered editor can provide greater visual control over the code, while a web-based platform can simplify the creation of an initial prototype.

In every case, the tool is only one part of the process: the quality of the result also depends on the ability to define objectives correctly, provide the necessary context, verify what is produced and intervene when the result is not correct.

Advantages of Vibe Coding

Vibe Coding introduces a different way of approaching software development and can offer significant advantages, particularly during ideation, prototyping and experimentation. Its effectiveness nevertheless depends on the type of project, the tools being used and the level of technical supervision.

Rapid prototyping

One of the main advantages is the ability to quickly turn an idea into a working prototype. By describing what is required in natural language, it is possible to generate interfaces, functionality and basic structures much faster than manually writing every component.

This makes it possible to validate an idea more quickly and make changes during the early stages of a project.

Greater accessibility to development

AI tools can make some development activities more accessible to people who do not have an in-depth knowledge of programming languages. Natural language becomes an interface through which behaviours, functionality and modifications can be described.

This does not mean that technical skills become unnecessary: understanding how a solution works remains important, especially when the project is intended for production use.

Customisation

Vibe Coding makes it possible to develop specific functionality and interfaces without necessarily starting from predefined structures. AI can help generate custom components, connect different services and modify the behaviour of an application according to the project's requirements.

This can be particularly useful when a standard solution does not fully meet a client's needs or when a specific functionality needs to be explored quickly.

Faster iteration

The ability to describe a change, generate the code and immediately verify the result makes the development cycle faster. Different solutions can be tested, compared and progressively refined through successive iterations.

This approach can be particularly effective during the early stages of a project, when requirements and interfaces are still evolving.

Support for development tasks

AI does not necessarily have to handle the entire project. It can also be used for specific tasks such as code generation, debugging, test creation, documentation, refactoring, error analysis or explaining parts of an existing project.

In this scenario, Vibe Coding can become part of a broader development process in which artificial intelligence supports the professional without necessarily replacing their work.

Experimentation and learning

Vibe Coding can facilitate experimentation with new technologies and approaches. Small projects can be created quickly, libraries or frameworks can be tested, and the feasibility of an idea can be assessed without immediately investing large amounts of time in initial development.

Interaction with AI can also become a learning tool, allowing users to ask for explanations about generated code, the technologies being used and possible alternative approaches.

Image

Limitations and Risks of Vibe Coding

The speed at which artificial intelligence can generate software does not mean that the resulting code is automatically correct, secure or suitable for production. Vibe Coding therefore presents several limitations that should be considered, especially when a prototype is intended to become a real-world application.

Code quality and reliability

AI-generated code may contain errors, redundancies, inefficient solutions or architectural choices that are not appropriate for the project. Even when an application appears to work correctly, problems may only emerge under specific conditions or as complexity increases.

For this reason, generated code should be tested and, when necessary, reviewed and restructured.

Security

An application generated with AI is not automatically secure. Code may introduce vulnerabilities, handle data or permissions incorrectly, or rely on dependencies with known security issues.

For projects that handle sensitive data, authentication, payments or integrations with external systems, technical review and security testing are therefore particularly important.

Understanding the code

One of the risks of Vibe Coding is creating a working solution without actually understanding how it works. This can make it more difficult to identify errors, modify the project or intervene when something stops working.

The situation can become particularly problematic as a project grows and code generated through numerous iterations loses a coherent structure.

Debugging and maintenance

When a project encounters a problem, describing it to AI can help identify a possible solution quickly, but there is no guarantee that the proposed correction is the right one. A change that appears to solve one problem may introduce new issues elsewhere in the application.

Projects developed with Vibe Coding therefore still require debugging, dependency updates, testing, monitoring and ongoing maintenance.

Dependence on tools

Vibe Coding tools may depend on AI models, platforms, APIs, cloud services, libraries and specific development environments. Changes to their features, costs or availability can therefore affect a project.

Portability must also be considered in relation to the architecture being used and the ability to independently access and modify the project's code and resources.

The risk of over-relying on AI

The speed of Vibe Coding can encourage people to focus on the visible result without paying enough attention to what happens behind the interface. An application may appear to work correctly during a demonstration while still presenting problems related to security, performance, accessibility or scalability.

For this reason, Vibe Coding works best when rapid generation is accompanied by verification, testing and supervision, especially when software is intended for professional use.

When to Use Vibe Coding

Vibe Coding can be particularly effective when rapid experimentation and the ability to modify a solution quickly are important. Not all projects have the same requirements, however: the choice of approach should take into account complexity, technical requirements and the intended use of the software.

Prototypes and proof of concept

Vibe Coding is particularly useful for quickly turning an idea into a working prototype. An interface, new feature or experimental application can be developed and modified through successive iterations, making it possible to assess the feasibility of a project before committing to full development.

Landing pages and custom interfaces

For landing pages, microsites and interfaces that require specific visual elements or functionality, AI can significantly accelerate the development process. The result can be modified quickly based on client feedback or project requirements.

Internal tools

Vibe Coding can also be used to create small tools for internal business operations, such as dashboards, control panels, information management systems or interfaces designed to automate repetitive tasks.

In these cases, the software can be built around highly specific requirements without necessarily having to adopt a general-purpose platform.

MVPs and idea validation

When it is necessary to quickly assess the potential of a digital product, Vibe Coding can help create a Minimum Viable Product (MVP) that can be used to test an idea and collect real-world feedback.

The prototype should not automatically be considered the final version of the product. If the project is validated and needs to grow, its architecture, code, security and infrastructure may need to be reviewed.

Custom functionality and components

AI can be used to develop specific components within larger projects, including configurators, calculators, dashboards, interactive forms, API integrations and connections between different systems.

In these cases, Vibe Coding can become one tool within a more structured development process rather than necessarily being the entire development method.

When greater supervision is required

Technical supervision becomes particularly important when software handles sensitive data, payments, authentication, confidential information or critical business processes. The same applies to complex applications, systems intended for large numbers of users, or projects that must meet specific requirements for security, performance, accessibility and operational continuity.

In these contexts, Vibe Coding can still be used as a development aid, but the code and architecture should undergo technical review appropriate to the complexity of the project.

Vibe Coding and Professional Development

In professional work, Vibe Coding can become a tool for accelerating prototyping, development and experimentation without replacing the skills required to design and maintain a web project.

At Vision in Motion, we also use artificial intelligence to explore new solutions, develop custom components, create prototypes and accelerate certain development tasks. The result is evaluated in relation to the project's objectives, its existing architecture and its requirements for security, performance and maintenance.

Our approach is therefore not to delegate development entirely to AI, but to integrate these tools into a professional process that combines artificial intelligence, technical expertise and experience in web development.

From Vibe Coding to Agentic Engineering

Vibe Coding represents one of the early forms of increasingly natural interaction between developers and artificial intelligence tools. As AI models and agentic tools evolve, AI can take on a more autonomous role in tasks such as code execution, code analysis, testing and managing different stages of the development process.

This is leading to concepts such as Agentic Engineering, in which AI tools do not simply generate code on request but can participate more autonomously in the development process while maintaining human supervision and responsibility.

The transition from Vibe Coding to Agentic Engineering therefore represents an evolution in the way developers and AI can collaborate. It is a topic that deserves further exploration, particularly to understand its opportunities, limitations and implications for software development.

Conclusions

Vibe Coding is changing the way software can be designed and developed, making the transition from an idea to a prototype faster and facilitating experimentation with new solutions.

This does not mean that traditional programming is losing its value. On the contrary, when a project is intended for production use, technical expertise, design, verification, security and maintenance remain fundamental.

The real potential of Vibe Coding therefore lies in the ability to combine the speed and capabilities of artificial intelligence with human experience and supervision. This balance can make AI a practical tool for developing web projects more quickly without compromising the quality and robustness of the result.

Sources

  1. Andrej Karpathy — Original Vibe Coding Post (February 2, 2025)
    The original post in which Karpathy introduced the term “vibe coding” and described the approach.
  2. OpenAI — Codex CLI
    Official documentation on the terminal-based coding agent, relevant to the section on Vibe Coding tools.
  3. Anthropic — Claude Code
    Official Claude Code documentation covering its use for working with code, files, tests and terminal commands.
  4. Cursor — AI Code Editor
    Official documentation for Cursor, an AI-powered code editor designed around interaction with code through natural language.
  5. Cline — Autonomous Coding Agent
    Official project repository with information about using the agent through IDEs, terminals and CLI.
  6. Veracode — Spring 2026 GenAI Code Security Update
    Research on the security of AI-generated code and the importance of reviewing and testing code produced by AI models.
  7. The New Stack — Vibe Coding Is Passe. Karpathy Has a New Name for the Future of Software
    An analysis of the transition from Vibe Coding to Agentic Engineering and the evolving role of AI agents in software development.