I’m currently working on adding a translation API to a flashcard app I’m building to teach my toddler new words in English and Spanish. After a couple of days of vibe coding frustration, I finally gave Claude Code a go.
Within a few prompts, it had traced the entire data flow, identified multiple issues, and laid out a step-by-step to-do list to fix it.

It didn’t just help me fix a debugging issue. It made it look simple. And it helped me understand what was going wrong.
Since then, I’ve explored Claude Code a fair bit, and here’s what I’ve found.
Table of contents:
What is Claude Code?
Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster through natural language commands.
Unlike with Claude Desktop, you don’t necessarily need to use MCPs with Claude Code. It comes with essential tools out of the box to explore your codebase, make edits, and even manage git.
Here’s what else makes Claude Code stand out:
-
Deep codebase awareness: Claude Code maps and explains entire codebases after a short exploration. It uses its agentic search to understand project structure and dependencies without you having to provide relevant contextual files.
-
Direct model access: With Claude Code, you get to work directly with Claude, which is generally regarded as the best AI model family for coding right now. (Claude 3.7 Sonnet is also the most popular model on Cursor.)
-
Structured problem-solving: The to-do approach is brilliant. Instead of just spitting out code, Claude Code breaks down complex problems into manageable steps. You can see its reasoning, understand the approach, and guide the process.
I’ll go deeper into what all of this means. But first, I’ll show you how to get started with Claude Code.
How to use Claude Code
Starting my journey with Claude Code was super straightforward. Here’s a quick rundown of what the process entails.
1. Get your machine set up
You can use Claude Code with your favorite terminal, command line interface (CLI), or console program (I use these terms interchangeably throughout this article). I’m using Hyper (it’s free), but you can integrate with other tools.
In addition to your terminal, you’ll need:
-
Node.js 18 or higher on your local machine. If you don’t have that, download it from the official Node.js website, and use these terminal commands.
-
Claude Code doesn’t directly work directly on Windows, so if you’re on a Windows machine, you’ll also need to first install WSL2 to use it.
2. Install Claude Code
Now that you’ve checked all those boxes, install Claude Code in your terminal with this command:
npm install -g @anthropic-ai/claude-code
3. Run Claude Code for the first time
Once it’s installed, you can start Claude Code by simply entering claude
in the terminal.
You should see this.

Select your login method by moving the cursor with your arrow keys to the relevant option, then hitting Enter or return. It’ll redirect you to the browser to log in (or, if you’re already logged in, to authenticate).
4. Authenticate with your Anthropic account
The first time you do this, you’ll need to authenticate with your Anthropic account. (You’ll be redirected to the browser and will be prompted to log in if you’re not already.)

You can select whether to use Claude Code with Claude Pro, Claude Max, or via API. I’m using it with Claude Pro.
5. Start a new project folder or connect an existing project
Once Claude Code is installed and authenticated with your Claude account, it’s time to start your first conversation in your first project.
If you’re not a developer, you might get a little tripped up by the fact that you’re using a command line interface to interact with Claude Code. But just like vibe coding with agentic tools like Replit, you can still use natural language while using Claude Code in the terminal.
You can start by building something new or by giving Claude access to your codebase as a context.
In either situation, you’ll want to give Claude a place to save and access information, such as the project directory (a folder on your local machine for the project files).
If you have existing code from, for example, a vibe coding project, you can ask Claude Code to clone the GitHub repo.
Here’s what the command looks like:
git clone .....my-project
cd my-project
Claude
This is telling it to take the GitHub URL and copy all the files, change the current directory to the project directory where you want the GitHub clone to live, and give Claude Code access to the directory.
6. Start the conversation
Once it has something to work from, you can get used to Claude Code by starting with a broad command or question like:
Once it had access to my project, here’s how Claude Code answered my query “What is the current state of this project?”

7. Initialize the project
Initialize the project with /init
to prompt Claude Code to develop a project-specific memory document in the project directory, where it jots down development commands, project architecture, key implementation notes, and a number of other project-specific details.
For example, here’s the CLAUDE.md document for the above project.


If you have a comprehensive project, the /init
command initializes that project in CLAUDE.md. This is Claude’s memory context and happens automatically with /init
(which you can edit further after generation). The /init
command analyzes your existing project files to summarize the most important context.
Note that you typically only run /init
when first bringing a project into Claude Code or after making big changes to your codebase and you want to refresh the context. Claude references CLAUDE.md whenever you interact with the project, automatically. You can also manually edit the file yourself by opening it in a code editor, like Cursor, that supports Markdown.
A CLAUDE.md file serves a similar (but slightly different) function as a product requirements document (PRD), also comparable to a README file. It can be continuously referenced throughout a build as you add new functionality, while ensuring that the foundational goals and rules for how you want to build are respected as persistent context.
8. Perform tasks
Now it’s finally time to perform some tasks. Based on my own experience, giving Claude prompts like these works best (Anthropic recommends the same thing):
-
Explore the issue: “Read the file upload handling code and any related error logs. Don’t write any code yet, just tell me what you find about how file uploads currently work.”
-
Plan a fix: “Think hard about what could be causing the file upload failures based on what you found. Create a step-by-step plan to fix this issue.”
-
Code: “Implement the fix according to your plan. Verify each change makes sense as you go.”
-
Commit (optional): If everything goes according to plan, ask Claude to commit changes to Git with a clear message.
It’s important to ask it to “not write code” at the start. Otherwise, Claude Code is a bit twitchy, and it can start coding right away, which can have mixed results if you’re using it to help with a complicated issue.
And “Think hard” forces Claude Code to use thinking tokens to think about an issue in detail. It’s similar to the “reflection” prompt pattern, where you query an LLM to “Take a moment to think about your answer before responding.”
Claude Code strengths
After testing Claude Code on everything from quick fixes to full project builds, here are the features that actually improved my productivity.
Complex debugging
It’s a common theme on Reddit that folks use cheaper models to code, but if they encounter a bug they’re unable to fix, they ask Claude. Claude Code can trace data flow, identify edge cases, and suggest fixes based on the broader codebase context.
Code refactoring
Many professional developers complain that vibe coding apps write difficult-to-maintain code. Claude Code solves that issue because it’s great at refactoring codebases without breaking backward compatibility.
That doesn’t mean you won’t run into any issues (I definitely have). But it’ll be cheaper and easier than trying to refactor yourself via an IDE like Cursor or hiring a freelance developer.
Test-driven development
Vibe coding takes you to 85% of the finish line. It’s the last 15% that can seem like an eternity. To reach the finish line, you can use test-driven development, where you write tests to verify the feature implementation.
For example, say you have to add a feature to implement discounts if the shopping cart is over $200 and offer no discount if it’s under $200. You can ask Claude Code to write a test where it adds mock amounts and tests both conditions.
Claude Code is great at that. You might actually have to ask it not to do testing if you don’t explicitly want it to help with that.
File operations
Claude Code understands the directory structure. It automatically creates new files if required, using your codebase as a context. I used it to simplify my codebase, and it helped me separate my business logic from utility and helper functions quite intelligently.
This kind of separation comes in handy because, although your application performs a core function, there are specific functions that you may reuse (e.g., data parsing, loading configs, data standardization). These small helper functions are reused throughout the program, and for clean code, it helps to place them in a separate directory of helpers or utils.
Git workflow management
Git is extremely powerful, but if you’re working with several branches, it can get complicated. Claude Code helps you manage all those workflows by default. Example: I deleted a specific file while refactoring by mistake, and I found out after two commits on top of that. Claude Code helped me restore that file within a minute.
In some ways, it feels a little closer to backend coding because you’re approving terminal commands, but it’s still very much vibe coding in terms of the natural language you use to prompt Claude Code.
Claude code limitations
While I’m loving Claude Code so far, it’s not without its limitations.
Claude has a relatively short context window, so if you’re used to working on several features in a single session, you’ll have to adjust your workflow.
In my experience, it runs out of context after 15-20 mins of intense coding (i.e., you’re just asking it to code, not planning). After that, it’ll auto-compact the conversation to continue (much like other agentic chats that surpass the initial context window).

While it’s a handy Band-Aid fix from Claude to allow users to continue working in the same session, there’s a chance that some of the important details will be lost, so it’s better to start a new session.
You can use the /clear
command to reset the context window. Ideally, you should use it whenever you’re moving from one task to another.
Besides that, I recommend using implementation documents (or TASKS.md) in addition to CLAUDE.md to ensure you don’t lose any important details. Think of this as a list of project milestones and corresponding to-dos—an important foundation for vibe coding best practices.
To implement, add the TASKS.md file to your project root and list out project stages and subtasks, as well as specific direction for technologies to implement.

Finally, since it’s terminal-based, there’s still a learning curve. If you prefer, Anthropic has released extensions for VS Code that you can use to access it inside VS Code instead of the terminal.
Advanced Claude Code techniques
Since Claude is terminal-based, it also offers a lot of opportunities that aren’t possible with traditional chat interfaces.
Multiple agents with Git worktrees
You can run multiple Claude Code instances simultaneously on different parts of the same project using Git worktrees, each focusing on an individual task. This allows parallel development.
For example, I can have one agent build frontend components while another implements backend APIs. A third can write comprehensive tests, while a fourth handles documentation. The limit ultimately comes down to usage within your Claude Pro or Max plan (or you can use the API).
Gemini CLI
While Gemini CLI is still in early development, Gemini offers a relaxed content window to work with. So when analyzing a large database while debugging, you can get help from Gemini instead of using Claude and wasting all your context window.
You can do so by adding this to your CLAUDE.md:
# Using Gemini CLI for Large Codebase Analysis
When analyzing large codebases or multiple files that might exceed context limits, use Gemini CLI with its massive context window.
Use `gemini -p "@src/ Summarize the architecture of this codebase"` to leverage Google Gemini's large context capacity for broad analysis, then bring those insights back to Claude Code for implementation.
(Source)
Custom slash commands
For repeated workflows—debugging loops, log analysis, and the like—I recommend storing prompt templates in Markdown files within the .claude/commands
folder.
First, create the file path .claude/commands
in the project’s root directory. Using a code editor, create Markdown files for each reusable prompt template. Then reference or copy the relevant .md file from the .claude/commands
path.
For inspiration, check out tokenbender’s Claude Code Custom Commands Collection.
Claude Code pricing
I like that, with Claude Code, you can see how many tokens a request takes.

It’s pretty granular, and it helps you get a sense of how complex each request is. But what’s missing right now is the full context of what remains against the limit so you can budget accordingly.
I’m using Claude Code with Claude Pro ($20/month). So far, this seems just right for vibe coding. I can definitely understand how technical developers would benefit from a Max plan, but it feels a little overkill for a beginner, non-technical user/vibe coder.
Here’s what things look like right now. Just keep in mind that on July 28, 2025, Anthropic announced new rate limits they claim apply to less than 5% of subscribers.
Claude plan |
Price (USD) |
Usage allowance (per 5 hours) |
Best for |
Key features |
---|---|---|---|---|
Free |
$0 |
~9 messages or a handful of code prompts |
Casual use, exploration |
Basic Claude access, limited usage, web/mobile only |
Claude Pro |
$20/month (or $17/month annually) |
~45 messages or 10–40 Claude Code prompts |
Professionals, regular users, small code projects |
5x free usage, priority access, all models except Opus in Code |
Claude Max 5x |
$100/month |
~225 messages or 50–200 Claude Code prompts |
Power users, large codebases, heavy workflows |
5x Pro usage, Opus model in Code, priority support, early features |
Claude Max 20x |
$200/month |
~900 messages or 200–800 Claude Code prompts |
Enterprises with very high-volume needs |
20x Pro usage, maximum priority, best for large organizations |
Claude API |
Pay-as-you-go |
Based on tokens, no fixed caps |
Developers, custom integrations, variable usage |
Billed per input/output token, flexible, separate from plans |
Take action from Claude with Zapier
As a non-technical vibe coder, using natural language with a command line interface is a definite adjustment to the approachable graphical user interface I’m used to. But you don’t have to be a developer to unlock the power of Claude Code. If I can figure it out, so can you.
If you’re using Claude for non-coding tasks, you can also connect it to Zapier. By combining Claude and Zapier, you move beyond coding assistance and into full AI orchestration. That means Claude can not only analyze your repo—it can also kick off automations, fetch data from apps, notify your team in Slack, or even update a Notion doc. And if you use Zapier MCP, it can all happen straight from Claude, using natural language. Learn more about how to automate Claude and how to use Zapier MCP, or get started with one of these pre-made templates.
Zapier is the most connected AI orchestration platform—integrating with thousands of apps from partners like Google, Salesforce, and Microsoft. Use interfaces, data tables, and logic to build secure, automated, AI-powered systems for your business-critical workflows across your organization’s technology stack. Learn more.
Related reading: