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.238 Home All releases olderv2.1.237 v2.1.239newer
Claude Code v2.1.238

Plugin marketplaces and archives can mint HTTP headers from a command

Use it now
Useful3 Signal4
Plugins Notable

Marketplaces and plugins can run a command to mint short-lived HTTP headers for fetching archives.

Feature flag
tengu_plugin_command_source_refresh Not enough to say

Nothing here resolved what this flag was doing on this version, so nothing here should be read as on or off.

This account: no value returned · anonymous baseline: no value returned · compiled default in v2.1.238: off

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

headersHelperdisableCommandPluginSourcesallowManagedHooksOnlyCLAUDE_CODE_MARKETPLACE_NAMECLAUDE_CODE_MARKETPLACE_URL
What

A marketplace or plugin entry can declare headersHelper, a shell command whose JSON stdout becomes the HTTP headers used to fetch that marketplace or plugin archive, so short-lived tokens replace static headers. It runs only on explicit install, update or refresh, after you have seen the exact command, and is controlled by the kill switch tengu_plugin_command_source_refresh, which defaults to on. Managed settings disableCommandPluginSources and allowManagedHooksOnly block it entirely.

Details
  • The command's output overrides static headers, is inherited by same-origin archive downloads from that marketplace, is memoised with an expiry, and is re-run on later refreshes.
  • It runs from the Claude config home rather than the session working directory, and receives CLAUDE_CODE_MARKETPLACE_URL / CLAUDE_CODE_MARKETPLACE_NAME for marketplaces, CLAUDE_CODE_PLUGIN_NAME / CLAUDE_CODE_PLUGIN_ARCHIVE_URL for plugin archives.
  • Consent is enforced by comparison: if the command, or the archive URL it fetches, changed since it was displayed, the install refuses and reports entry_helper_unshown, entry_helper_changed or entry_archive_url_changed.
  • An entry declaring a helper must be strict:false so its full manifest is inlined and reviewable before anything runs.
  • Sources that are not operator-authored have credential environment variables stripped, their values redacted out of whatever env is passed, and routing/identity headers (host, cookie, x-forwarded-, proxy-, and similar) dropped from the result.
  • Marketplaces added via --add-dir have their declared helpers stripped; remote managed-settings declarations require separate verification.
  • Values must be printable ASCII and short enough for the install consent pane to display. Outcomes report to plugin_headers_helper; when the kill switch is off the log reads "headersHelper not run — disabled by the plugin command kill switch".
Evidence

CLAUDE_CODE_PLUGIN_ARCHIVE_URL, Command that prints a JSON object of HTTP headers, headersHelper not run \u2014 disabled by the plugin command kill switch

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.238 →