Get the Weekly Vibe Coding Advantage

Each week, I share actionable techniques for mastering AI coding tools like Claude Code, Cursor AI, and other AI tools that I’ve discovered through countless hours of experimentation.

You’ll learn effective prompting strategies, see real-world projects deconstructed, and discover workflow optimizations that change how you think about software development.

Join my newsletter, “The Art of Vibe Coding”
for your weekly dose of vibe coding advantage.

3 Tips of Getting the Most Out of Claude Code

I remember the first time I tried Claude Code.

I felt like I’d just hired a brilliant intern who never sleeps. Except, on day one, this intern had no idea where the coffee machine was, let alone the code style of my project.

The result?

Chaos.

The fix?

Onboarding.

When you fire up Claude Code for the first time, it’s tempting to expect magic from the get-go.

But even the smartest assistant needs a proper introduction. Think of Claude Code as that eager junior developer: incredibly fast, surprisingly clever, but only as good as the guidance you give it.

So how do you guide it?

How do you set yourself (and Claude) up for success?

In this post, I’ll walk you through setting up Claude Code in your development environment, giving it “project memory” with CLAUDE.md, refining that memory over time, and managing its tool access for safety and flow. By the end, you’ll have Claude working like a seasoned partner in your coding journey.

Let’s dive in.


Tip #1: Set Up Claude Code the Right Way

Every great project starts with a solid foundation.

Your Claude Code setup is no different.

Before you unleash Claude on your codebase, make sure your environment is ready. This isn’t just about installing the Claude CLI (though yes, go ahead and install it if you haven’t). It’s about creating the perfect playground for Claude inside your workflow:

1. Install and connect:

First, get Claude Code running in your terminal (follow Anthropic’s instructions for installation and API keys). The installation is straightforward, but don’t stop there.

2. Project structure matters:

Run Claude in the root of your project (or wherever makes sense).

Claude will automatically load context from that location. If your project is a monorepo or has subfolders, be mindful – Claude can pull in context from parent or child directories too.

In short, where you launch Claude Code will determine what it sees, so place yourself in the right folder.

3. Run an initial command:

Once Claude Code is live in your terminal, try the /init command.

Why?

/init prompts Claude to generate a starter CLAUDE.md file for you (more on this file in a moment). It’s like saying, “Hey Claude, here’s the tour of our project.” This auto-generated guide gives you a head start.

Setting up Claude Code is about being intentional. You wouldn’t start building a house without a blueprint; likewise, don’t start with Claude without setting the stage. A few minutes spent on proper setup will save you hours of confusion later.

Now that your environment’s ready, let’s give Claude some memory.


Tip #2: Turn Documentation into Claude’s Memory (Using CLAUDE.md)

Imagine hiring a new developer and giving them a cheat sheet of everything important in your project. That’s exactly what CLAUDE.md is for Claude.

Claude Code uses a special file called CLAUDE.md as your project’s second brain.

Every time you start a session, Claude automatically pulls in the contents of this file as context. In plain terms, CLAUDE.md is where you tell Claude the stuff it needs to know about your project.

What goes into this magical file?

Think high-level CliffsNotes for your codebase:

  • Key commands & scripts – What are the everyday terminal commands to build, test, run or deploy your project? (e.g. “npm run build builds the project, npm run test runs the test suite.”)
  • Project architecture & important files – A quick rundown of core components or utilities. (“The database.ts module handles all DB connections,” or “Our UI lives under the /client directory.”)
  • Coding style and conventions – Are you using spaces or tabs? Tabs, right? Mention it. Let Claude know about any style guides or naming conventions you follow. (“Use ES6 modules, not CommonJS,” or “All new components must be functional components.”)
  • Testing guidelines – How do you verify code? If you have a specific way to run tests or a philosophy (like “write unit tests for every model” or “prefer integration tests using X framework”), note it down.
  • Team and workflow quirks – Anything unique about how your team works. Do you branch a certain way? Does the project require a local dev server running on port 3000 before code works? Put those in.
  • Common pitfalls & gotchas – Every project has that “one weird thing.” Save your future self (and Claude) from pain by writing it down. “Need to run pyenv before using Python 3.9” or “Library X sometimes throws a harmless warning – ignore it.”

There’s no strict format for CLAUDE.md.

In fact, the best CLAUDE.md files are short, sweet, and human-readable. Bullet points, simple sentences, whatever gets the point across. Pretend you’re writing notes to a colleague about how to navigate your codebase – because that’s essentially what you’re doing for Claude.

Pro tip: If you used /init during setup, Claude already drafted a CLAUDE.md for you.

Open it up and see what it included. You’ll likely find some auto-detected info. Use that as a starting point, and feel free to edit or add details you know are important.

Handing Claude a CLAUDE.md is like giving it memory implants.

Suddenly, it knows the lay of the land. And when Claude “knows” your project’s context, its code suggestions and actions become far more relevant and accurate. No more “uh, what file is that?” moments – Claude will already have the map.

Refine and Repeat: Tune Your CLAUDE.md Over Time

Here’s a secret: your first draft of CLAUDE.md won’t be perfect. And that’s okay. Great mentors iterate, and so should you.

When I first created a CLAUDE.md for my project, I dumped in everything I could think of. It was useful, but not perfect. Some details I added weren’t actually helping Claude’s responses.

Other important nuances were missing.

The lesson?

CLAUDE.md is a living document. The more you work with Claude, the more you’ll tweak and refine this file.

How do you tune CLAUDE.md effectively? A few guidelines I learned by doing (and yes, by messing up and trying again):

1. Start small, then expand

Don’t feel pressure to write a novel in CLAUDE.md on day one.

Begin with the basics (the bullets we listed above). As you notice Claude making mistakes or asking for clarification, that’s your cue to update the file. Did Claude misinterpret a function’s purpose? Add a line in CLAUDE.md clarifying it. Did it forget to run the tests after making changes? Add a reminder in the workflow notes.

2. Experiment and observe

Treat each update to CLAUDE.md as an experiment.

After editing it, see how Claude’s behavior changes. Is it following your coding style more closely now? Is it still getting stuck on a certain task? Over time, you’ll discover which instructions lead to better outcomes. (It’s a bit like tuning an engine – adjust, test, and repeat.)

3. Inline updates via #

Here’s a power move: You can update CLAUDE.md on the fly while chatting with Claude.

Simply start a message with # and give an instruction or info. Claude will quietly absorb that into the CLAUDE.md for future context.

It’s like whispering in your assistant’s ear and saying “remember this for next time.” For example, if Claude makes a mistake and you correct it, send # Note: The file parser.js should never directly call the database without going through dataAccess.js – now it’s in memory. This iterative teaching makes Claude smarter with each interaction.

4. Emphasize critical rules

If there’s something you absolutely need Claude to heed, don’t be shy about highlighting it.

Mark it as IMPORTANT or even use all-caps for a key instruction in CLAUDE.md.

For instance: “IMPORTANT: Always run npm run typecheck after making changes.” Claude tends to pay extra attention to emphasized notes, much like a human would.

Over time, you’ll evolve CLAUDE.md from a simple cheat sheet into a robust knowledge base tailored to your project.

I’ve seen people run their CLAUDE.md through AI-powered “prompt improvers” to polish the wording, and it works. The bottom line is, don’t set it and forget it. Treat CLAUDE.md as a dynamic part of your workflow. Each tweak is an investment in a smarter Claude.

And a smarter Claude means you get better code, faster.


Tip #3: Manage Allowed Tools for Speed and Safety

Flow is everything when you’re “in the zone” coding. The last thing you want is to be interrupted every minute with “Allow this action?” pop-ups. But you also don’t want your AI running wild with dangerous commands. The solution: a balanced approach to tool permissions.

By default, Claude Code is cautious.

It will ask permission before doing anything that could modify your system or code (like writing files, installing packages, running certain shell commands). This safety-first approach is good – especially when you’re just starting out. You wouldn’t give a new hire full production access on day one, right? Same idea here.

However, once you get comfortable and notice which actions are safe and routine, you can streamline your workflow by allowing Claude to perform certain tasks without asking every time.

It’s all about removing friction for things you trust, while keeping guardrails for things you don’t.

How do you manage these allowed tools? You have a few options (choose whatever fits your style):

  • “Always allow” prompts – The simplest: when Claude asks “Allow this tool?” and you know it’s fine (say, running your test suite or formatting code), choose “Always allow.” Claude will remember and stop bothering you about that specific command.
  • Use the /allowed-tools command – Inside Claude’s chat, type /allowed-tools to see a menu of permissions. You can add specific tools or commands to the allowlist here. For example, always allowing file edits (Edit) or Git commits (Bash(git commit:*)) can be real time-savers once you trust Claude with them.
  • Edit the config file – For a more persistent, shareable approach, you can manually edit your allowlist in the config (.claude/settings.json in your project, or a global ~/.claude.json). This is great for teams: check in a settings file with pre-approved tools (linting, tests, etc.) so everyone’s Claude is on the same page.
  • Session flags – If you’re launching Claude Code via CLI, you can use flags like -allowedTools to pre-authorize certain tools for that session. This is a more advanced tweak, but handy for one-off allowances. (Example: start Claude with -allowedTools Edit,Bash(npm run build) to let it edit files and run builds freely.)

The goal here is to find the right balance.

Early on, you might keep Claude on a short leash until you trust it. As confidence grows, loosen the reins for the mundane stuff. Let Claude run your linters, formatters, or test commands without nagging you.

You’ll love the flow of just watching tasks happen.

At the same time, don’t feel obligated to allow everything.

If a command could wreak havoc or if you’re unsure, keep it manual. You’re the boss, and Claude respects that. Managing allowed tools is about building trust – step by step. With the right permissions set, you get the best of both worlds: speedy automation and peace of mind.


Your Turn: Level Up Your Coding Game with Claude

You made it through the setup, the CLAUDE.md lesson, the tuning tips, and the safety talk.

Now the real fun begins.

All this knowledge means nothing until you put it into practice. So here’s my challenge to you: go set up Claude Code in your environment and try it out. Today.

Create that CLAUDE.md (or refine the one you generated). Add one or two key instructions and see how Claude responds. Teach it something new tomorrow. Whitelist a tool you’re comfortable with and feel the difference in your workflow. Step by step, you’ll notice Claude becoming not just a tool, but a teammate.

Remember, every expert was once a beginner.

The difference is, the expert kept pushing, kept refining, kept learning. Claude Code is a cutting-edge assistant, but you are the one steering the ship. Give it direction, give it context, and it will amplify your abilities in ways that might just feel a little bit like magic.

So what are you waiting for?

The next era of coding has already begun, and you have front-row access.

It’s time to take action: set up Claude Code and embrace this new workflow. Commit to the process, and soon you’ll wonder how you ever coded without it.

Now, go build something amazing with your new AI pair-programmer. The future of development is yours to create – one prompt at a time.

The author partially generated this content with ChatGPT, Claude, Gemini, and other large-scale language-generation models. Upon developing the draft, the author reviewed, edited, and revised the content to their liking and took ultimate responsibility for the content of this publication.


by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *