Tari Ibaba

Tari Ibaba is a software developer with years of experience building websites and apps. He has written extensively on a wide range of programming topics and has created dozens of apps and open-source libraries.

How Claude Code Loops make you so much more powerful

You think Claude Code makes you code faster — but you don’t realize you’re barely scratching the surface.

Just sending prompt after prompt to Claude Code will get you nowhere.

When you ignore features like Loops, you end staying far behind what your potential could be — in speed and accuracy and everything that moves you closer to your goals as a developer.

Loops are like the holy grail of AI automation.

You’re no longer just manually prompting and hoping to get exactly what you want.

Now Claude will actually do the prompting for you — over and over until it gets the exact prompt that meets your exact requirements.

It’s an absolute game changer.

You are going from regular prompt engineering — to full-blow loop engineering.

No more step-by-step instructions — now you define precise goals, verification criteria, and stopping conditions.

And it doesn’t stop at prompting.

What are Claude loops exactly?

Claude Code loops are the iterative execution cycles in which Claude repeatedly:

  • Reads the current project context
  • Uses tools such as terminal commands or file editing
  • Evaluates the results
  • Repeats the process until a predefined stop condition is met

Instead of acting like a one-shot chatbot, Claude functions as an autonomous background agent capable of completing tasks with minimal human intervention.

The four types of loops

Claude Code gives you four primary loop patterns.

1. Turn-based loops — Complete everyday tasks reliably

Every prompt already runs inside a turn-based loop by default.

Claude gathers context, performs edits, executes tools, verifies its work, and returns a response.

Example:

Scenario: Fixing a bug in a login form.

Prompt:

Fix the bug preventing users from logging in with Google OAuth.

What Claude does:

  • Reads the authentication code
  • Identifies the issue
  • Updates the implementation
  • Runs relevant tests
  • Returns the completed fix

The loop ends once Claude has finished your task and gives you a response.

These loops are ideal for everyday tasks such as debugging, refactoring, and implementing small features.

2. Goal-based loops — Make sure Claude explicitly finishes the job

Goal-based loops continue working until a measurable objective has been achieved.

Example:

Scenario: Eliminate all failing tests.

Prompt:

Keep working until every unit test passes.

Do not stop if tests fail—fix the issues and rerun the test suite until all tests are green.

What Claude does:

  • Runs the test suite
  • Finds failing tests
  • Makes code changes
  • Reruns the tests
  • Repeats until every test passes

Instead of stopping after one attempt, Claude keeps iterating until the success criteria are met.

Rather than generating a single answer, Claude keeps iterating until the defined outcome is reached.

3. Time-based loops — Easily automate recurring development tasks

Time-based loops execute on a schedule, similar to cron jobs.

For example:

Scenario: Monitor a pull request throughout the day.

Command:

/loop 15m check my open PR, address any new review comments, rerun CI, and commit fixes if needed.

What Claude does every 15 minutes:

  • Checks for new reviewer comments
  • Updates the code
  • Runs tests
  • Verifies the build
  • Waits until the next scheduled run

This is similar to a cron job, except the scheduled task is powered by an AI agent rather than a static script.

Claude periodically revisits the task without requiring another prompt.

4. Proactive loops — Let Claude continuously maintain your projects by itself

Proactive loops are the most autonomous.

Instead of waiting for your instructions, they continuously handle repetitive engineering work.

For example:

Scenario: Automatically maintain a repository.

Workflow:

Every once in a while, Claude:

  • Scans the repository for outdated dependencies
  • Opens upgrade pull requests
  • Fixes simple merge conflicts
  • Runs the test suite
  • Closes duplicate issues
  • Updates documentation if APIs have changed

No developer prompt is required. The workflow runs continuously based on a schedule or repository events, keeping the project healthy with minimal manual intervention.

This shifts AI from reactive assistance to proactive software engineering.

Evaluator-driven verification — Reduce bugs by making Claude prove its work

One of the biggest challenges with language models is premature satisfaction—assuming a task is complete before proving it works.

Claude Code addresses this with external verification.

Instead of relying on Claude’s confidence, an evaluator checks the outcome using objective signals like:

  • Unit tests
  • Linters
  • Browser automation
  • Performance checks

If verification fails, Claude automatically returns to work until the required checks pass.

Cron-like AI workflows — Turn Claude into a scheduled engineering assistant

Time-based loops effectively turn Claude into a scheduled AI engineer.

A recurring loop can:

  • Review open pull requests
  • Respond to new review comments
  • Apply fixes
  • Re-run tests

You can step away while Claude continuously manages routine engineering work in the background.

Deterministic API control — Build reliable autonomous agents that stop at the right time

Claude Code loops are controlled by structured API signals rather than natural-language responses.

States such as stop_reason: "tool_use" and stop_reason: "end_turn" determine whether Claude should continue working or exit the loop. This deterministic control flow reduces premature exits and prevents runaway execution.

Tiered cost optimization — Scale long-running AI workflows while keeping costs low

Long-running loops can become expensive if every iteration relies on a frontier reasoning model.

To reduce costs, routine tasks—such as gathering context or running shell commands—can be delegated to smaller, faster models. More capable models are reserved for complex reasoning and code changes, making autonomous workflows more efficient.

Loops are the future — Spend less time prompting and more time shipping software

With loops, instead of waiting for prompts, Claude can monitor repositories, manage pull requests, triage issues, and perform continuous maintenance with minimal supervision.

By combining iterative execution, automated verification, deterministic control flow, and scheduled automation, loop engineering enables AI agents that work toward measurable outcomes—not just generated responses.

The result is an AI that behaves less like a chatbot and more like a persistent engineering teammate.

How Claude Code Loops make you so much more powerful Read More »

5 powerful Claude Code tricks to speed up your workflow

Claude Code has several powerful hacks and shortcuts that can save you hours and make your coding workflow much easier.

Here are 5 powerful Claude Code tricks you should start using.

1. Switch between modes with Shift + Tab

Did you know you can switch between Claude Code’s modes without leaving your current session?

Just press Shift + Tab to cycle through the available modes.

  • Auto Mode: Claude automatically runs actions it considers safe and blocks risky ones (now the default).
  • Manual Mode: Claude asks for your approval before making most file changes or running commands.
  • Accept Edits Mode: Claude makes file edits without asking every time but still checks with you before running commands that need approval.
  • Plan Mode: Claude studies your code and creates a plan before making changes.

Claude Code in Auto mode:

Claude Code in manual mode:

In Accept Edits mode:

In plan mode:

Let’s say you want to move your React app from JavaScript to TypeScript.

You could switch to Plan Mode and type:

Plain text
Analyze this project and create a step-by-step plan to migrate it from JavaScript to TypeScript.

Once you’re happy with the plan you can switch to Auto Mode and let Claude handle the migration while checking its actions for risks.

You can also switch to Manual Mode if you want to review changes yourself.

This gives you the freedom to choose how much control you want over Claude’s actions.

2. Send terminal output to Claude with | claude -p

You don’t always need to open Claude Code to ask a quick question.

With claude -p you can send the output of a terminal command straight to Claude.

Using -p in Claude Code:

Done:

You can turn your Git changes into PR release notes:

Shell
git diff | claude -p "Summarize these changes into PR release notes."

Or find errors in your application logs:

Plain text
cat app.log | claude -p "Find uncaught exceptions and error stack traces."

You can even ask Claude to explain why your tests are failing:

Plain text
npm test 2>&1 | claude -p "Explain why these tests failed."

This makes it easy to understand errors and review code changes without starting a full chat session.

3. Mention files instantly with @

Tired of typing long file paths or explaining which file you want Claude to work on?

Just type @ followed by the file or folder name.

Let’s say you want Claude to refactor a file:

Plain text
Refactor @src/utils/api.ts to use async/await.

You can also ask it to compare two files:

Plain text
Compare @src/components/Header.tsx and @src/components/Navbar.tsx.

Find any repeated code or review an entire folder:

Plain text
Check @src/services/ and suggest ways to improve error handling.

This helps Claude focus on the exact files you want it to check. You spend less time explaining things and more time getting work done.

4. Run terminal commands with !

You don’t need to leave Claude Code whenever you want to run a terminal command.

Just add ! at the beginning of your command.

You can run your tests:

JavaScript
!npm test

Check your Git status:

JavaScript
!git status

Or build your project:

JavaScript
!npm run build

Let’s say Claude just helped you build a new feature. You can run !npm test right away to check if everything works.

If something fails you can ask Claude to help fix it without leaving the session.

5. Undo bad changes with double Esc

Ever asked Claude to change something only for it to break your code?

Instead of trying to undo every change yourself you can press Esc twice quickly.

You can also type:

JavaScript
/rewind

This opens a list of earlier checkpoints in your session.

You can go back to an earlier conversation or restore file changes. You can also do both.

Let’s say Claude changes your login system but users can no longer sign in.

Instead of fixing every file manually you can use /rewind to return to a checkpoint before the changes.

Just remember that rewind can’t undo every shell command or outside action. You should still use Git.

Final thoughts

Claude Code can do much more than write code for you.

With these five tricks you can plan changes and find errors faster. You can also work with files and run commands without leaving your session.

Sometimes getting better at Claude Code isn’t about writing better prompts. It’s about knowing the small shortcuts that save you time every day.

5 powerful Claude Code tricks to speed up your workflow Read More »

Catch and auto-fix all hidden bugs with this Claude Code command

This is hands down one of the most powerful Claude Code features right now.

The /code-review command elevates your workflow and catches all the bugs in your code long before they reach production.

It can intelligently group the potential issues based on severity and even fix them automatically. It can even distinguish between bugs from your recent changes and pre-existing bugs that have silently been around for a while.

You catch bugs early, save time with rapid review of small changes, and fix issues faster without having to switch between tools.

1. From lightning-fast checks to deep code reviews

Not every code change needs a deep review.

Claude Code gives us five effort levels:

  • Low: Quick, surface-level checks for obvious bugs with minimal false alarms.
  • Medium: Balanced, everyday checks that catch clear logic flaws fast.
  • High: Deeper analysis that proactively probes for edge cases and hidden bugs.
  • XHigh: Heavy reasoning checks that catch complex multi-file and concurrency bugs.
  • Max: Exhaustive reviews that rigorously test every edge case and security risk.

Say I just fixed a button. I can run:

Plain text
/code-review low

But if I’ve changed how users log in I might want a deeper check:

Plain text
/code-review high

Here I review some demo code using the medium effort. Review started:

Review ready — all the finding for each file are comprehensively laid out:

All this lets you us less time reviewing small changes and more time checking important ones.

2. Ultra: Unleash a team of AI agents on your codebase

For very big changes like major features, we can use Ultra mode:

Plain text
/code-review ultra

Ultra (previously /ultrareview) uses multiple AI agents that work at the same time in a cloud sandbox.

Each agent checks different things:

  • Logic bugs: Does the code work as expected?
  • Edge cases: What happens with unusual inputs?
  • System impact: Could the changes break other features?
  • Performance: Could the changes slow things down?

For example if I’m changing how my app handles payments. One agent might check balance calculations while another looks for problems when two payments happen at once.

Ultra also checks its own findings. It tries to verify bugs before reporting them and filters out findings that don’t hold up.

This helps us spend less time chasing false alarms.

3. Fix bugs and add PR Comments effortlessly

Claude Code gives us two useful flags.

–fix: Apply fixes automatically

Plain text
/code-review high --fix

Say Claude finds that your code crashes when an API returns null. It can update the code to handle that case.

You can then run git diff to check the changes.

–comment: Add comments to pull requests

Plain text
/code-review high --comment

Claude can post findings directly to GitHub pull requests or GitLab merge requests.

It points to the code that needs attention so your team knows what to fix.

This means you can find bugs and share feedback without jumping between tools.

4. Make reviews follow all your project rules with CLAUDE.md

Every project has its own rules.

Maybe your team doesn’t want database queries inside controllers. Or maybe you prefer returning errors instead of throwing exceptions.

You can add these rules to your CLAUDE.md file:

Plain text
# Review Guidelines - Focus on bugs and security issues. - Ignore generated files. - Keep database queries out of controllers. - Prefer returning errors over exceptions.

Claude uses these instructions when reviewing your code.

So if you accidentally add a database query inside a controller Claude can point it out.

You don’t need to repeat your rules every time.

5. Cut through the noise and focus on what actually matters

Nobody wants a code review full of unnecessary warnings.

Claude Code groups findings into three categories:

  • Important: Bugs you should fix before merging.
  • Nits: Small issues that aren’t urgent.
  • Pre-existing: Bugs that were already there.

Say you add a payment function that accepts negative amounts. Claude might mark that as Important because it could lead to incorrect balances.

If it finds an unrelated bug in old code it can mark it as Pre-existing.

Claude also explains why it flagged an issue and how it checked the problem.

This helps you know what to fix first.

Final thoughts

Claude Code’s /code-review gives us more than a simple bug checker.

We can choose how deep reviews should go and use multiple AI agents for complex changes. We can also apply fixes and share findings with our team.

It won’t catch every bug. We still need to test our code.

But as we use AI to write more code it makes sense to use AI to help us review it too.

Catch and auto-fix all hidden bugs with this Claude Code command Read More »

New Claude Code Mods are incredible: Customize everything

This is absolutely incredible.

Anthropic just gave release a powerful new Mods feature that will completely change how we use Claude Code.

You can now customize Claude Code in so many amazing ways. You can make it show you all the essential info you need at a glance.

For example here’s a lightweight token-weather mod from Anthropic that creatively uses weather to show you how much context you have left:

Clear sunny weather when you have low context usage:

And then it dynamically changes to showers when your context is starting to get full:

And then when your context is almost filled up it changes into a full-blown storm.

This is just a small taste of what mods can do for you. Devs have already started creating so many incredible open-source mods.

But what are mods?

Mods are JavaScript or TypeScript plugins that run directly inside Claude Code. They let us intercept tool calls before (or after) they run, build our own personalized interfaces, and much more.

And practically this also means we can stop potentially dangerous commands and save time by automating repetitive tasks, among other benefits.

1. Powerful control over all Claude’s actions

One of the biggest changes is that mods can step into Claude’s workflow while it’s running.

Unlike external hooks that run separate scripts, mods can step in before or after an action. They can even replace the action entirely.

Look at the critical function that this blast-radius mod from Anthropic performs here — it intelligently detects and intercepts risky commands like rm -rf — and first shows you everything that’s going to change if it runs, letting you decide to proceed or cancel if you want.

If you cancel:

If you proceed:

So you see this is the incredible level of customization that mods give you.

You can:

  • Block risky commands: Stop Claude from running commands that could delete important files.
  • Retry failed actions: Automatically retry a tool call when something goes wrong.
  • Redirect requests: Send certain tasks to another AI model or external service.
  • Replace tool calls: Handle a request directly without running the original tool.

You can even create custom commands that can run custom code or make your specified changes to the user interface.

This gives us more control over Claude’s actions and helps us prevent costly mistakes.

2. Fully customizable interface and live status bars

Mods also let us change how Claude Code looks.

We can add custom components to the CLI or desktop app such as:

  • Live status bars that show our Git branch or test results.
  • Custom panels and tabs that display useful project information.
  • Pop-ups and progress messages that show what’s happening in real time.
  • Custom tool displays that make outputs easier to read.

For example this custom mod shows a roundup of all the changes made to every file, on the right side of the terminal:

Say you want to see your CI/CD pipeline status while Claude works. You can build a panel that shows it directly inside Claude Code.

This saves us from constantly switching between tools and helps us stay focused.

3. Instant updates without restarting Claude Code

Another cool feature is hot reloading.

You can change a mod’s code and Claude Code will pick up the changes without restarting your session.

This means:

  • You don’t lose your conversation.
  • You can test changes right away.
  • You can ask Claude to update a mod for you.

Say you built a status bar that shows your Git branch. You could ask Claude to add test results to it.

Claude updates the code and the new version starts working in your current session.

This makes it much easier to experiment with new ideas without breaking your workflow.

4. Flexible and replaceable built-in features

Anthropic is also turning some of Claude Code’s built-in features into mods.

One example is the /diff command which helps us review code changes.

Since it now runs as a mod you can:

  • Turn it off if you don’t need it.
  • Replace it with your own version.
  • Customize it to fit your team’s workflow.

You could build a diff viewer that focuses on security issues or displays code changes in a way you prefer.

Anthropic plans to move more built-in features into mods.

This means we could eventually keep only the features we need and replace the rest with our own tools.

5. Smart sidecar agents that work alongside Claude

Mods also make room for something interesting: sidecar agents.

These are extra AI agents that work alongside your main Claude Code session.

One example is the cc-plugin-you-should-know concept. It’s designed to watch your coding session and point out things you might miss.

A sidecar agent could:

  • Spot subtle bugs while Claude writes code.
  • Catch missing edge cases before they become problems.
  • Flag security risks in your implementation.
  • Suggest improvements without interrupting your main task.

This could help us catch issues earlier and spend less time fixing bugs later.

The official built-in status of this specific plugin is still unconfirmed.

Final thoughts

Claude Code Mods give us more freedom to shape our coding environment.

We can prevent risky actions and automate repetitive tasks. We can also build custom interfaces and update features without restarting Claude Code.

One thing to keep in mind is security. Mods aren’t sandboxed so they can use the same files and system resources as Claude Code. Only install mods you trust.

The biggest benefit is that we can now shape Claude Code around how we work instead of changing how we work to fit Claude Code.

New Claude Code Mods are incredible: Customize everything Read More »

Claude Code Dynamic Workflows will change AI coding forever

Claude Code Dynamic Workflows will change the way developers code with AI forever.

It fixes all the problems we’ve had to deal with when trying to use the same agent to do everything — or when trying to make multiple agents work together.

It combines hard-coded code and dynamic LLMs in a way we’ve never seen before — to get the absolute best of both worlds.

Dynamic Workflows allows Claude write its own JavaScript orchestration scripts on the fly and spin up tens to hundreds of parallel subagents to tackle giant tasks end-to-end.

It doesn’t just spawn sub-agents randomly — it deploys them in incredible structured and sophisticated ways.

And the sub-agents are not just doing simple divide-and-conquer code generation like we’ve been seeing.

They are intelligently combining themselves in a way that’s perfectly customized to whatever massive task we give them.

Some of them might aggressively review the code another agent generated — some might be there to pick the best code generated among a set of other agents.

Let’s dive deeper into Dynamic Workflows and see all the ways it can level up the workflows of so many developers.

1. Fixes all the biggest failures of single-context LLMs

Traditional AI agents operate inside a single conversation, which creates three major failure modes.

Defeating agentic laziness

Give one agent a task like reviewing 50 files for a security issue and it eventually becomes difficult to track progress.

Tasks get summarized, details are missed, and the model may prematurely declare success.

Dynamic Workflows solve this through decomposition. Instead of one agent handling 50 files, Claude launches 50 focused subagents. Each agent sees only one file and one objective, while the orchestration layer manages the larger task.

Crushing self-preferential bias

In traditional workflows the same model often generates and reviews its own work.

Dynamic Workflows separate these responsibilities. One agent builds, another reviews, and a third may challenge both. Because reviewers operate in independent contexts, they evaluate outputs against the requirements rather than defending previous reasoning.

Preventing goal drift

Long conversations cause important constraints to disappear over time.

Requirements like maintaining backwards compatibility or preserving performance gradually get compressed out of context.

Dynamic Workflows keep agent conversations short and purpose-built, ensuring every worker remains tightly aligned with the original objective.

2. JavaScript-powered deterministic decomposition

This is one of the biggest breakthroughs with Dynamic Workflows.

Claude doesn’t just spawn agents on the fly — it first writes a custom orchestration program.

LLM’s are great but they can be unpredictable — and there is no guarantee on how they tackle a huge goal.

With this JavaScript orchestration layer, the workflow’s structural control flow is 100% deterministic and predictable.

The file calls multiple JavaScript functions, like agent():

  • agent(prompt, options): Spawns an isolated subagent. Can enforce structured JSON data using a schema

We know exactly what is going to happen at the high-level — while letting the individual sub-agents decide how they go about the lower-level tasks distributed among them.

Instead of thinking and generating everything on the fly, Claude generates a JavaScript workflow that determines:

  • How work is divided
  • Which agents are created
  • How outputs are verified
  • How failures are handled
  • How results are synthesized

Because these workflows are standard artifacts, developers can save, modify, version-control, and rerun them. Over time, teams can build libraries of reusable workflow harnesses and custom agent networks tailored to their engineering processes.

3. Advanced multi-agent design patterns

Dynamic Workflows can combine sophisticated agent architectures on demand.

Tournaments

Multiple agents attempt the same problem using different approaches. A separate judging agent evaluates the candidates and selects the strongest solution.

Adversarial verification

A dedicated reviewer is created with one goal: reject the output.

This agent actively searches for security vulnerabilities, logic flaws, hidden assumptions, and edge cases, creating a far more rigorous review process than self-evaluation.

Fan-out-and-synthesize

For large-scale tasks, Claude distributes work across dozens or hundreds of parallel agents operating independently. Once completed, the workflow pauses and synthesizes all outputs into a unified result.

This pattern is ideal for migrations, audits, documentation generation, and repository-wide code changes.

4. Powering massive engineering projects

The scale enabled by Dynamic Workflows is difficult to overstate.

It’s really hard to overstate the sort of massive scale you could get from using Dynamic Workflows.

A prominent example is the Bun runtime migration from Zig to Rust. Using workflow-driven orchestration, approximately 750,000 lines of Rust code were generated while maintaining roughly 99.8% compatibility with the existing test suite.

Projects that would traditionally span multiple quarters can increasingly become automated jobs running in the background for hours or days.

5. Built-in resumability and safety

Long-running workflows require operational reliability.

The runtime continuously tracks workflow state and subagent progress. If a crash or disconnection occurs, execution resumes from the last checkpoint rather than restarting from scratch.

To prevent runaway costs, the system also provides visibility into workflow execution, token consumption, and resource usage, while enforcing limits that stop recursive workflows from spiraling out of control.

Dynamic Workflows represent a shift from prompt engineering to orchestration engineering.

Rather than asking a single AI agent to solve increasingly complex problems, Claude generates a custom execution harness, launches specialized workers, verifies their outputs, tracks state, and synthesizes results.

The future of AI development is not single super-agent.

It’s dynamically generated teams of specialized agents coordinated by software the AI writes for itself.

Claude Code Dynamic Workflows will change AI coding forever Read More »

New Claude Code /design command is absolutely incredible

This is incredible.

Claude Code just got a new command that makes it so much easier to build beautiful and breathtaking apps.

The new /design command brings all the most powerful features of Claude Design directly into Claude Code –to make designing an app as effortless as possible.

It’s perfect for whenever you want to add a new visualizable feature like a new screen.

The /design command in action in Claude Desktop — works in Claude Code too:

Before you’d just ask Claude to build the feature and then it gives the result — which you may or may not be satisfied with.

But now things have gotten a lot more sophisticated.

Now with the /design command Claude can generate and show you several visual directions in which it can take to implement what you’re asking:

The /design command makes multiple design suggestions:

You can inspect and refine them — then turn the direction you choose into frontend code.

The most interesting part of /design is that it doesn’t have to commit to a single interpretation of your prompt.

Claude can generate several distinct visual directions on one canvas. One dashboard might be dark, dense, and technical. Another might be minimalist and editorial. A third one might emphasize large charts and simplified navigation.

The artboards can also be interactive rather than static mockups.

Forms, calculators, charts, and other UI elements can demonstrate the behavior for you — giving you a chance to test the micro-interactions before you commit to an implementation.

You can also make lightweight edits directly on the canvas like adjusting text, spacing, layout, or individual elements. That makes the design itself part of the conversation with Claude.

Adjusting the generating design with auto-generated tweaks:

Another amazing ability it has is how it resolves all the unclear requirements before it starts generating — it doesn’t just make irritating assumptions.

A vague request like “make me a modern SaaS dashboard” leaves dozens of decisions unspecified: typography, density, brand feel, navigation style, and overall visual direction.

Instead of silently falling back to familiar AI design clichés the design workflow can ask targeted questions about themes, layout preferences, branding, and constraints first.

And the best part is how it can you use your existing codebase and all the visual components in as context.

Claude can inspect your project and figure out all the styling conventions, CSS variables, Tailwind configuration, design tokens, typography, and reusable UI components.

So instead of generating a mockup that looks completely detached from the current application, /design can now work directly with your existing design language.

There’s no more need to export a screenshot, manually rewrite a design specification, or describe the chosen layout all over again.

That means the all type scale, spacing, component choices, and styling you select can flow directly into your frontend code.

It makes experimentation so much easier — and drastically expands the limits of your creativity.

Making it incredibly useful as a solo developer where you have to be a product manager, designer, and engineer at the same time.

New Claude Code /design command is absolutely incredible Read More »

Claude Code just got a massive Auto Mode upgrade

This is incredible.

Anthropic just made an insane change to Claude Code that will massively improve your productivity as a developer — although it might seem scary at first.

Claude Code now automatically executes commands and make tools calls by default when coding — no more stopping to ask for permission.

It won’t do this anymore:

And I know at first glance some developers will be seriously worried about this — won’t this potentially lead to disaster like file/database wipeouts or corruption from unsafe tool calls?

But actually this line of thinking is completely wrong — especially from what Anthropic discovered from their internal research.

In internal testing conducted by Anthropic across 1,053 paid participants, humans caught disguised dangerous commands only 13.6% of the time. After 50 consecutive permission prompts, detection dropped to roughly 5% as approval fatigue kicked in.

So it looks like it’s actually we humans we need to be concerned about when it comes to verifying commands.

So Claude Code now uses a background classifier to automatically know which commands are safe and which aren’t.

And the difference was absolutely insane — the automatic system was almost 7 times better at catching dangerous commands

Claude Code’s background classifier demonstrated a substantial security advantage, identifying and blocking 89% of destructive commands that might otherwise have been executed.

So of course once they saw the massive improvement it only made sense to make it the default in versions of Claude Code — Pro, Max, and Team.

And this change gives us so many benefits beyond just security.

Claude Code is no longer going to stall in its execution just to ask you to approve a command — you can finally experience the full value of long-horizon autonomous coding.

Anthropic reports that teams using it ship roughly 25% more pull requests because long-running agents can continue working without repeatedly waiting for human approval.

I found it pretty annoying at times — I would give Claude a prompt and expect it to be done when I come back — only to find out that it has barely even done anything — all because it’s waiting for me to approve a command.

I’m not the only one too:

Now I will have complete certainty that when I come back I will see results.

And also the background classifier is completely free — zero cost on all the complex logic or token usage of checking if a command is safe or not.

And free for all plans too.

Anthropic fully absorbs the computational cost of Claude Code’s background classifier, allowing Pro, Max, and Team users to benefit from continuous automated security checks without consuming any additional usage allocation.

So you don’t need to spend more just to be able to code with peace of mind.

And Auto Mode isn’t only looking for obviously dangerous shell commands — also helps defend Claude against indirect prompt injection.

So like if Claude reads a third-party package, webpage, or scraped file that has hidden instructions telling it to ignore the user and steal credentials.

Claude could potentially interpret those instructions as legitimate.

So this new Auto Mode adds another security boundary — the classifier always makes sure to compare Claude’s proposed action with the user’s original intent.

And this is especially important for autonomous agents because the more information they take in from the outside world, the larger their prompt-injection attack surface becomes.

Of course an AI supervising another AI creates its own problem — what happens when the security classifier repeatedly blocks Claude due to false positives?

Anthropic took this into consideration and built in an escalation mechanism.

If the classifier blocks three consecutive commands or reaches 20 blocked actions during one session, Claude Code automatically exits autonomous execution and returns control to the human.

One rejection might simply mean Claude chose a risky approach.

Twenty means something probably deserves human attention.

Auto Mode isn’t perfect tho — Anthropic still recommends human oversight for high-stakes production operations.

But the direction is really fascinating.

We originally put humans in the loop because we didn’t trust AI — then humans started clicking “Approve” without reading.

So now Anthropic has decided to put another AI in the loop to supervise the first one.

Claude Code just got a massive Auto Mode upgrade Read More »

Claude Code is secretly wasting your tokens. This feature fixes that.

Most developers don’t realize just how many tokens Claude Code wastes by default in just trying to understand your codebase.

Every noisy search result, duplicate reference, and irrelevant file eats into your context before the real work even begins.

Increasing your API costs and slowing down responses significantly.

But luckily, we now have the incredible Language Server Protocol (LSP) integration to fix all this.

It’s one of the least talked about features that dramatically transforms how Claude processes your code and makes changes.

By swapping heavy text searches for instant AST queries, LSP cuts lookup times from 30–60 seconds down to a 50-millisecond response, delivering up to 900x faster code navigation speeds

With LSP Claude Code stops relying on text searches — it directly queries a language server that already understands your project’s structure. What you get is an AI assistant that behaves much more like a modern IDE than a just a chatbot. You get the best of both worlds.

LSP powers many IDE features we’ve been using to code everyday years before AI came around, like:

  • Go to Definition
  • Find References
  • Rename Symbol
  • Type checking
  • Error diagnostics
  • Hover documentation

Rather than treating code as plain text, LSP exposes semantic information such as symbols, types, inheritance, and references.

Imagine asking:

“Where is UserRepository used?”

Without LSP, Claude performs a text search that may return:

  • the definition
  • dozens of call sites
  • comments
  • documentation
  • test files
  • unrelated string matches

Claude must read all of that before determining what actually matters.

With LSP, Claude asks the language server for the symbol’s references and receives only the precise locations where that symbol is used. Instead of searching text, it navigates your code semantically.

The difference becomes even more valuable in large repositories.

Enterprise projects often contain:

  • thousands of files
  • millions of lines of code
  • hundreds of packages

Traditional searches repeatedly scan those files. Language servers already maintain indexes of definitions, references, implementations, and type information. Claude simply queries those indexes, making navigation faster and far more precise.

One of the most underrated advantages of LSP integration is token savings.

Every line of search output consumes tokens, increases latency, and costs money. Text searches often return much more information than Claude actually needs, including comments, documentation, duplicate references, and unrelated matches. Claude has to spend part of its context window filtering that noise.

LSP eliminates most of this overhead. Instead of returning pages of search results, it provides only the relevant semantic information, such as:

  • the symbol definition
  • exact references
  • implementation hierarchy
  • type information

In large codebases with heavily referenced symbols, LSP-driven navigation can produce tool outputs that are 2–3× smaller than equivalent text searches.

That means:

  • lower API costs
  • faster responses
  • less wasted context
  • more room for Claude to reason about your code

LSP also makes refactoring much safer.

Suppose you rename a class called PaymentProcessor.

A simple text replacement could accidentally modify comments, documentation, string literals, or unrelated variables. A language server understands symbols rather than text, allowing Claude to rename only the actual class and its legitimate references.

Another major advantage is immediate diagnostics.

After Claude edits a file, the language server can instantly report:

  • syntax errors
  • missing imports
  • unresolved identifiers
  • type mismatches

Instead of waiting for a build or CI pipeline to fail, Claude can identify and fix problems immediately.

Sometimes people confuse LSP with the Model Context Protocol (MCP), but they complement each other rather than compete.

  • LSP helps Claude understand your source code.
  • MCP helps Claude interact with external tools such as GitHub, Slack, databases, and cloud services.

Together they allow Claude to understand both your application and the ecosystem around it.

LSP shifts Claude from simply reading code to actually understanding it. Rather than treating a repository as a collection of files, Claude reasons about symbols, relationships, types, and program structure.

The result is:

  • faster navigation
  • safer edits
  • better refactoring
  • immediate feedback
  • lower token usage

LSP integration may not be as flashy as autonomous agents, but as a developer working on real-world codebases, it’s one of the most meaningful ways to level up your Claude Code workflow.

Claude Code is secretly wasting your tokens. This feature fixes that. Read More »

Claude Code Skills vs MCP vs Plugins: The real difference most developers confuse

Many developers confuse them a lot — but they’re actually not interchangeably in any way.

They all extend Claude Code but they do it very differently and for very different reasons.

First let’s understand what each of them are on their own.

A Skill is a reusable set of instructions, knowledge, and workflows that Claude can load when performing a task. Skills help Claude apply project-specific standards, follow established processes, and consistently execute repeatable tasks.

Model Context Protocol (MCP) is an open protocol that enables Claude to connect to external tools, services, databases, APIs, and other software systems. MCP servers let Claude discover available tools and interact with connected resources.

A Plugin is an installable extension for Claude Code that packages one or more components — like Skills, MCP servers, Hooks, Agents, and configuration — into a reusable, shareable unit.

Here’s a real-world scenario that illustrates the crucial difference:

Imagine having a chef that learns your family’s special cake recipe.

Skills: the mental playbooks, checklists, and habits stored in your brain.

Now they know how to cook it.

But they still only have the ingredients already in the kitchen.

MCP: The physical tools you use to achieve goals in the real world.

Now the chef gets access to:

  • the pantry
  • grocery delivery
  • refrigerator inventory
  • supplier catalog

The chef can actually obtain new ingredients.

Plugins: the entire kit containing everything you need to know and every tool you need to achieve your goal.

Instead of manually giving every new chef:

  • recipes
  • supplier accounts
  • kitchen procedures

You hand them one onboarding kit containing everything.

A Skill adds knowledge.

An MCP adds capability.

A Plugin adds distribution.

A skill teaches Claude Code how to do things — specialized knowledge and edge cases it needs to be aware of, and the optimal manner of approach to take in solving a task.

MCP lets Claude Code actually do those things — make pull requests on GitHub, read databases, process analytics data, etc.

Plugins bundle MCPs and Skills into a single package. It can contain multiple mcps and multiple skills.

As a software engineer in your new company:

A Skill is training.

“Here’s how we review pull requests.”

An MCP is company access.

GitHub credentials.

Jira.

Slack.

AWS.

A Plugin is the setup package you get as a new hire:

Laptop.

VPN.

GitHub access.

Internal documentation.

Team tooling.

Training, permissions, and installation are three different problems.

Why you need all of them

Imagine a situation where Claude keeps writing API endpoints differently from your team.

The problem isn’t missing capability — Claude already knows how to write code — it simply doesn’t know your conventions.

That’s where a Skill comes in.

But how about when Claude needs to query your production database?

No amount of instructions can magically let Claude access that database.

That’s where MCP shines.

But then we still need every engineer on your team to receive:

  • the database connection
  • deployment workflow
  • code review standards
  • security checks

You don’t want everyone configuring these individually.

That’s a Plugin.

Can one replace the other sometimes?

No.

A Skill cannot replace an MCP because instructions cannot grant access to systems Claude cannot reach.

An MCP cannot replace a Skill because having access to a system doesn’t teach Claude your team’s preferred workflow.

A Plugin doesn’t replace either one—it simply packages them together

The easiest way to remember the distinction is this:

  • Skills lets Claude follow your team’s processes
  • MCP lets Claude access external systems
  • Plugins lets other install everything easily

Claude Code Skills vs MCP vs Plugins: The real difference most developers confuse Read More »

How Claude’s Feature Dev skill makes development easier and faster

This is one of the most essential skills that every developer should have.

The /feature-dev skill plugin makes you write code with far fewer mistakes, spend less time fixing AI-generated code and make much better architectural decisions.

It does this through specialized AI agents that handle different tasks and a structured seven-step workflow that takes you from understanding your codebase to building and reviewing your feature.

1. Multi-agent specialization: Better codebase understanding and fewer mistakes

Normally one AI agent handles everything from reading your code to planning and reviewing it.

Feature Dev uses three specialized agents:

  • code-explorer: Goes through your codebase to understand how things work and trace dependencies without changing files.
  • code-architect: Plans the feature and suggests different approaches while spotting possible problems.
  • code-reviewer: Checks for bugs and type issues. It also looks for security risks and possible regressions.

This lets each agent focus on one task instead of handling everything in the same context.

For us developers this means fewer mistakes caused by missing context. It also reduces duplicate code and the risk of breaking existing features.

2. Seven-step workflow: Less back-and-forth and more predictable development

Feature Dev doesn’t just take your prompt and start coding.

It follows seven steps:

  1. Discovery: Understand what you want to build.
  2. Codebase exploration: Look through your existing code.
  3. Clarifying questions: Ask about anything that’s unclear.
  4. Architecture: Plan how to build the feature.
  5. Implementation: Write the code.
  6. Quality review: Check the code and run relevant tests.
  7. Summary: Explain what changed and prepare the work for review.

This gives you a clear picture of what’s happening at each stage.

Instead of constantly correcting the AI with new prompts you get a more organized process. You can review important decisions and catch problems early.

3. Upfront clarification: Less rework and fewer wasted hours

One frustrating thing about AI coding tools is how quickly they make assumptions.

Say you ask Claude to add file uploads to your app.

It should first ask questions like:

  • What file types should users upload?
  • What’s the maximum file size?
  • What happens when an upload fails?
  • Where should the files go?

A regular AI assistant might make these decisions without asking you.

Feature Dev asks questions before writing code so you can clear up missing requirements early.

This means less time fixing misunderstood requirements and fewer unnecessary code changes.

It’s easier to answer a few questions upfront than to rewrite several files because the AI made the wrong assumptions.

4. Architectural trade-offs: Less technical debt and more control

Instead of choosing one approach and immediately writing code the code-architect agents explore different ways to build your feature.

They compare things like:

  • Complexity: How difficult is the solution?
  • Maintainability: How easy will it be to change later?
  • Existing code: How much needs to change?
  • Trade-offs: What do we gain or lose?

You then choose what makes the most sense for your project.

Say you’re adding caching. You might prefer a simple in-memory solution instead of Redis depending on your app’s needs.

This helps us avoid unnecessary complexity and technical debt while keeping you in control of the architecture.

5. Persistent artifacts: Easier handoffs and less lost context

One problem with AI coding sessions is losing track of decisions when you pause your work or hand it over to a teammate.

You can make Feature Dev more useful by pairing it with Markdown files like:

  • proposal.md: What we’re building and why.
  • design.md: How we’ve decided to build it.
  • tasks.md: What’s done and what’s left.

Feature Dev doesn’t create these files by default. But you can combine it with tools like OpenSpec or your own instructions.

This makes it easier to resume work and share plans with teammates. You can also review code against the original design without digging through a long AI conversation.

Final thoughts

Feature Dev gives us a clearer process and more control over how we build features with AI.

You might not need it for small fixes. But for complex features it can save time and help you avoid unnecessary mistakes.

The goal isn’t just to write code faster. It’s to spend less time fixing mistakes and more time building the right thing.

How Claude’s Feature Dev skill makes development easier and faster Read More »