Jellypod, Inc.

The Claude Code Changelog

TechnologyNews

Listen

All Episodes

Claude Code v2.1.178: Parameter-Matched Permissions

We break down Claude Code v2.1.178’s new fine-grained permission system, including tool parameter matching like Tool(param:value) for blocking costly or risky actions before they run.

We also cover smarter nested skill resolution, the new purple workflow indicator, improved /doctor diagnostics, and the stricter /bug submission flow.

This show was created with Jellypod, the AI Podcast Studio. Create your own podcast with Jellypod today.

Is this your podcast and want to remove this banner? Click here.


Chapter 1

Fine-Grained Permissions with Tool Parameter Matching in Claude Code v2.1.178

Lachlan Reed

G'day everyone! [excited] Lachlan Reed here, joined by James Turner, and this episode is brought to you by Jellypod AI. Now James, I was messing about in my backyard shed last night, and I updated Claude Code to version 2.1.178. They've introduced something that absolutely blew my mind -- [genuinely surprised] a brand new tool parameter matching syntax that looks like `Tool(param:value)`.

James Turner

Oh, I saw that commit! [excited] It's essentially regex-level control but specifically for your LLM's tool calls. So instead of just a blanket "yes" or "no" to Claude running commands, you can write a rule like `Agent(model:opus)` to explicitly block or intercept when it tries to spin up a high-cost Opus subagent.

Lachlan Reed

Spot on! [laughs] It stops those sneaky midnight runs where you wake up to a three-hundred-dollar API bill because Claude decided to write a novel using Opus. You just write `Agent(model:opus)` in your configuration, set the permission to 'deny' or 'ask', and it intercepts that exact argument before the token even hits the network.

James Turner

That is incredibly powerful. [reflective] And it's not just for saving cash on API calls. Think about file system safety. You could write something like `Bash(cmd:rm)` to catch any destructive terminal commands before they execute. It's directory-level scoping for security.

Lachlan Reed

Exactly. [calm] And speaking of directories, they've also sorted out how nested skill collisions are handled. If you have multiple `.claude/skills` folders -- say, one in your project root and another deep inside a nested subdirectory -- Claude Code now resolves them using a "directory-closest" scope.

James Turner

Wait, so if I have a custom deployment script defined as a skill in my root directory, but my frontend subfolder has its own specialized version of that same skill... [questioning tone] how does it resolve?

Lachlan Reed

It's brilliant. [excited] If you're working inside the frontend subdirectory, Claude will traverse upwards, find the frontend skill first, and execute that one instead of the global root skill. It prevents your nested configurations from stomping all over each other. No more namespace collisions when you're jumping between monorepo packages.

James Turner

That's a massive quality-of-life win for monorepos. [thoughtfully] It makes local skill development actually viable without fearing you'll break global defaults. And speaking of quality-of-life, did you notice the new visual indicator in the terminal?

Lachlan Reed

Oh, the purple shimmer! [laughs] It's like a little digital magic show in your console. Whenever a major workflow trigger gets activated, the terminal output does this subtle purple shimmering transition. It's a nice little touch so you actually know when Claude has handed over control to a specific background agent.

James Turner

It's clean. [calm] But they also made some practical diagnostic updates. The `/doctor` command has been completely overhauled to verify these new parameter matching rules. If you've got a borked configuration file, `/doctor` will pinpoint exactly which `Tool(param:value)` string has a syntax error.

Lachlan Reed

Which is handy, because knowing me, I'll definitely put a colon where a semi-colon should be. [chuckles] And there's one more change that might annoy some folks at first, but it makes complete sense: the `/bug` command now forces you to provide a description *before* you can submit.

James Turner

Honestly? Good. [laughs] No more empty bug reports with just a log dump and zero context. You have to explain what went wrong first. It forces developers to give the team some actual signal instead of just noise.

Lachlan Reed

Fair play. [warmly] Well, that's version 2.1.178 for you. It's a massive leap forward for keeping your AI agents on a tight, cost-effective leash. Give those new permission scopes a spin, and we'll catch you in the next one!

James Turner

See ya! [cheery]