Source Intelligence

DisclaimerUnofficial, and not affiliated with Anthropic. Nearly all of this is read straight out of what ships: npm bundles, captured prompts, published docs. Anthropic's own notes go in verbatim, marked as theirs. The rest is my reading, and every entry carries the strings behind it. If one looks wrong, vote it down and say why.

All of v2.1.239 Home All releases olderv2.1.238 v2.1.240newer
Claude Code v2.1.239

Device hook forwarding worker added, off behind two flags and a kill switch

Not switched on
Useful2 Signal5
Hooks Notable not in their notes

Cloud sessions could register hooks that run on your device, blocked by two off flags.

Device hook forwarding is now implemented but needs two account flags that default off, and an env var refuses it.

Feature flag
tengu_violin_amati Off in both readings

The flag server returned off for the account this site reads and for the anonymous baseline. A reading of off cannot rule out a rollout these two readings sit outside of.

This account: off · anonymous baseline: off · compiled default in v2.1.239: on

tengu_violin_wood Off in both readings

The flag server returned off for the account this site reads and for the anonymous baseline. A reading of off cannot rule out a rollout these two readings sit outside of.

This account: off · anonymous baseline: off · compiled default in v2.1.239: on

Read once, for one account on one subscription tier, against v2.1.239. It isn't a statement about your account. What a flag value here can and cannot tell you

CLAUDE_CODE_DISABLE_HOOK_FORWARDING
What

The previous build had only the message shape for registering device hooks; this one adds the working half, letting a cloud session register hooks that run on your device. Nothing forwards in practice: it requires two account flags that both default to off, and setting CLAUDE_CODE_DISABLE_HOOK_FORWARDING refuses it outright.

Details
  • The SDK control loop now routes the register_device_hooks request to a worker holding a hook registry, lease handling and an admission check.
  • Admission requires an SDK URL, CLAUDE_CODE_REMOTE_SESSION_ID set, CLAUDE_CODE_ENVIRONMENT_KIND unset, an allowlisted entrypoint, non-hermetic mode, and the kill switch unset; otherwise the request is refused with a reason string.
  • Even when admitted the worker reads tengu_violin_amati and tengu_violin_wood and clears the registry unless both are on; both fall back to false on error.
  • Managed settings that restrict hooks to plugins, disable customization, allow managed hooks only, or disable all hooks also refuse it.
Evidence

hook_forwarding_disabled: flag_off

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Related

Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.

See this entry in the whole of v2.1.239 →