G'day everyone!
Lachlan Reed here, joined by James Turner, and thanks to Jellypod for helping make
this daily show a reality.
Now, James, if you've ever spent your evening babying an automated CLI tool only for
it to fail right at the finish line because of a silly syntax error,
you're going to love this.
The latest Claude Code update--we are talking version 2.1.163--just
dropped a massive workflow lifesaver.
Oh, I know exactly what you mean.
There is nothing worse than waiting for an agent to finish a complex multi-file
edit, only for it to exit, run your linter, find one missing comma,
and just throw its hands up.
You're saying version 2.1.163 actually lets Claude fix its own homework before it
exits?
Spot on!
It's all down to a clever upgrade to the lifecycle hooks, specifically the `Stop`
and `SubagentStop` phases.
Previously, if your post-execution hooks failed--say, a test runner spat out an
error--the agent would just halt and throw an error.
Now, developers can return a property called `additionalContext` inside
`hookSpecificOutput`.
It feeds those validation failures right back into Claude's context window.
Wait, so instead of the hook failing the entire run, the hook basically tells
Claude, "Hey, look at this compiler error I just found, go fix it and try stopping
again"?
That's a built-in self-correction loop!
[genuinely surprised] What does that look like structurally?
Is it just a standard JSON payload?
Exactly.
Under the hood, your hook returns a JSON schema.
You pass an object with `status: "failure"`, and then inside `hookSpecificOutput`,
you define `additionalContext` as a string.
For example, you can dump the exact CLI output of your failed Vitest or ESLint run
right into that string.
Claude parses that, realizes the job isn't actually done, and spins up an extra
reasoning turn to patch the code.
That is incredibly elegant.
It turns validation from a binary pass-fail gate into an active feedback channel.
I can write a hook that runs my TypeScript compiler on `Stop`,
and if `tsc` barks, Claude gets the compiler output directly and resolves the type
mismatch on the fly.
No human intervention needed.
Exactly!
It's like having a junior dev who actually listens to the linter before pushing to
main.
And look, they also snuck in a couple of great quality-of-life wins in this release.
We've got new filters for `/plugin list` using `--enabled` and `--disabled` flags,
which is handy when your plugin stack gets messy.
Oh, thank goodness.
Managing third-party extensions was getting a bit cluttered.
And didn't they also tweak the `/btw` shortcut?
Yeah, they did!
If you use `/btw` to capture context, you can now press 'c' as a quick shortcut to
instantly copy the output directly to your clipboard.
It's a tiny change, but when you're jumping between terminal windows all day,
those saved keystrokes really add up.
It really keeps you in flow state.
This whole release feels like Anthropic is focusing hard on making Claude Code feel
less like a novelty sandbox and more like a rugged, production-ready toolchain that
plays nice with local development environments.
Absolutely.
It makes you wonder--as these local agents get better at correcting their own
mistakes through native hooks, how long until we stop writing manual test runners
and just let the environment heal itself?
That is the ultimate goal, isn't it?
Thanks for listening, everyone.
We'll catch you in the next one.
See ya!