Startup now gates reading of several file-descriptor-based secret sources, the OAuth token FD, gateway token FD (CLAUDE_CODE_GATEWAY_TOKEN_FILE_DESCRIPTOR), API key FD, and websocket auth FD, behind !$e(a.CLAUDE_CODE_REMOTE). "Remote" entrypoint detection now also treats CLAUDE_CODE_REMOTE being set together with a resolved websocket or gateway token as a remote entrypoint.
Names in the bundleCLAUDE_CODE_REMOTECLAUDE_CODE_GATEWAY_TOKEN_FILE_DESCRIPTOR
Documented inclaude-code/agent-sdk/typescript
The entry above is what we published on the day. These lines were added later, as Anthropic's own pages caught up, and they sit beside the original rather than replacing it.
Confirmed since
Anthropic's documentation has since written up CLAUDE_CODE_REMOTE, on Customize sessions in self-hosted environments.
| `CLAUDE_CODE_REMOTE_SESSION_ID` | Session ID in the tagged `cse_...` form. This is the same session the [lifecycle hooks](#lifecycle-hooks) see as `CLAUDE_RUNNER_SESSION_ID` in `session_...` form; the UUID variables match across both, an…self-hosted-environments-configuration see the edit
Added since
A small documentation edit on Configure cloud environments touched a line naming CLAUDE_CODE_REMOTE after this was published.
* **No cloud-only scoping**: hooks run in both local and cloud sessions. To skip local execution, exit early unless the `CLAUDE_CODE_REMOTE` environment variable is `true`, the way the [dependency install script](#install-dependencies-with…cloud-environments see the edit
Two sources agreeTwo things we can check say the same as this entry.
Anthropic's documentation agrees
A small documentation edit on Configure cloud environments touched a line naming CLAUDE_CODE_REMOTE after this was published.
The name it cites is new in this build
New in this build: CLAUDE_CODE_GATEWAY_TOKEN_FILE_DESCRIPTOR