# Claude Code Just Works With Basic Tools

I have been using **Cursor** for more than a year, so I consider myself deeply into vibe coding. I never thought there would be a better tool than **Cursor** for vibe coding, without a question, I am doomed to be wrong.

**Claude Code** has been on my radar for a while, but I have always been skeptical about the combo of CLI + vibe coding. I mean, come on, what if it make a mistake and you want to change just a line. So I stay with **Cursor** until mid of August (little did I know model degrading was happening), and I decided to give **Claude Code** a go.

## It just works

I was surprised by how effective **Claude Code** approach is compared other coding tools. While **Curosr** relies on **vector indexing** and **embeddings** to search and retrieve code context, Claude Code often just uses basic tools like `grep` — then feeds the raw matched code directly back into the LLM.

And unexpectedly, this “primitive” approach often *feels better* than advanced indexing.

## Why This Might Work Better

1. **Zero Setup vs. Heavy Preprocessing**  
    Vector indexing and embedding pipelines require time and infrastructure, generating embeddings → storing them → updating them when code changes. Meanwhile, `grep` is instant and works out of the box.
    
2. **Uncertainty in Embeddings**  
    Embeddings are fuzzy by design. They can retrieve semantically similar but irrelevant code. That’s a core limitation of LLM-driven search: you add another probabilistic layer before the model even sees the code. `grep` is deterministic, it finds exactly what matches.
    
3. **Fewer Points of Failure**  
    Every extra system (embedding model choice, vector DB reliability, sync jobs) adds an extra layer of potential failure.
    
4. **Privacy & Transparency**  
    With vector search, the code gets processed by another model and stored somewhere. **Claude Code**’s straightforward approach means no hidden vector stores and fewer unknowns about where your data lives.
    

## The Cost Trade-Off

One obvious drawback: sending large chunks of code directly to the LLM burns **tokens**. At first, I thought maybe this was a way for Anthropic to charge more, but that’s unlikely. Claude Code comes bundled with the subscription, if the goal were to upsell API usage, they wouldn’t have made it unlimited in the first place.

Still, token usage is the main technical trade-off here, you still reach your limit faster.

## Less Is More

This all circles back to an old engineering principle: *Less is more.*
