Skip to main content
Anthropic Inference hooks send each governed Claude prompt to Runlayer before inference. Runlayer applies your input scanner policy and returns an allow or deny verdict. When session scanning is enabled, supported transcripts also appear in Sessions. Inference hooks run in Anthropic’s infrastructure, so one Claude organization configuration covers Claude.ai, Claude Code, and other governed Claude Enterprise surfaces. Nothing needs to be installed on each user’s device.

Requirements

  • A Claude Enterprise organization with Anthropic Inference hooks enabled
  • A Claude role with organization:manage permission, such as Admin, Owner, or Primary owner
  • Runlayer organization-admin access
  • An active Runlayer input scanner policy
  • For self-hosted Runlayer, a publicly reachable https:// endpoint on port 443 with a publicly trusted certificate and no redirect
Inference hooks are an Anthropic beta feature. They do not cover requests made through Amazon Bedrock or Google Cloud Vertex AI.

Where to get each value

Anthropic documents the Organization ID locations in its tenant-restrictions guide. Use the ID for the Claude Enterprise organization, not an unrelated Anthropic Console organization.

Configure the integration

1

Allow Inference hooks in Claude

In Claude, open Organization settings → Data and privacy. Find Inference hooks and turn on Allow for your organization.Open the Inference hooks settings page. Allowing the feature does not send prompts yet; Enforce verdicts remains off until the final rollout step.
2

Save the Anthropic tenant ID in Runlayer

In Runlayer, open Settings → Agent session monitoring → Native inference hooks.Enter the Claude Organization ID in Anthropic tenant ID and save. Leave the Runlayer toggle off until you have stored the signing secret.
3

Copy the Runlayer endpoint into Claude

Copy Inference hooks endpoint from Runlayer.In Claude’s Inference hooks page, click Configure and paste it into Endpoint URL. Do not add a custom request header.
4

Test and save the endpoint

Click Test connection in Claude. A successful test reports an allow verdict.Save the endpoint configuration. Anthropic generates a webhook signing secret and reveals it once. Copy the complete whsec_... value before closing the dialog.
5

Store the secret and enable Runlayer

Return to Runlayer. Paste the secret into Signing secret, turn on Anthropic Inference hooks, and save.Runlayer encrypts the secret and never displays it again. If you lose it, rotate it in Claude and immediately enter the replacement in Runlayer.
6

Start in shadow mode

In Claude, set Mode to Shadow mode, choose the rollout percentage, and turn on Enforce verdicts.Despite its name, Enforce verdicts must be on for Claude to send live prompts. Shadow mode sends prompts and records Runlayer’s verdicts without blocking users. Anthropic notes that configuration changes can take about a minute to reach all servers.
7

Verify live traffic

Submit a new prompt in Claude.ai or Claude Code. Check Audit Logs in Runlayer for the scanner decision.To retain the transcript in Sessions, also enable Full session scanning APIs and the matching Claude or Claude Code hook client under Settings → Agent session monitoring. Anthropic must include a session ID and a user email that matches an active user in the Runlayer organization.

Move from shadow mode to enforcement

Review the Audit Logs and Sessions produced during the shadow period. Tune scanner policies until expected prompts are allowed and genuine violations are denied. Then choose Claude’s failure behavior:
  • Allow the request lets inference proceed when Runlayer cannot return a verdict in time.
  • Block the request fails closed when Runlayer is unreachable or times out.
Change Mode from Shadow mode to the selected behavior when you are ready to enforce Runlayer’s deny verdicts. Use Claude’s rollout percentage to expand coverage gradually.

Security and identity

Anthropic signs each saved-endpoint request with the configured signing secret. Runlayer verifies that signature before using the tenant ID or actor data. The tenant ID selects the stored secret; it is not authentication by itself. Runlayer maps the signed actor email to an active user in the same Runlayer organization. If no matching user exists, Runlayer denies the request instead of assigning the prompt to an unverified identity.

Troubleshooting

The endpoint points to a Runlayer tool hook instead of the Anthropic Inference hooks adapter. Copy the URL displayed in Native inference hooks. It must end in /api/v1/hooks/anthropic/inference.
Confirm the configured URL is the Runlayer Inference hooks endpoint and not a temporary test receiver. The endpoint must return HTTP 200 with an Anthropic verdict body.
Confirm the Claude Organization ID matches Anthropic tenant ID in Runlayer and that the latest whsec_... secret is stored. If the secret was rotated in Claude, paste the replacement into Runlayer immediately.
Turn on Enforce verdicts in Claude. For a non-blocking test, keep the mode set to Shadow mode. Also confirm the rollout percentage is greater than zero and wait about a minute after changing the configuration.
Enable Full session scanning APIs and the matching Claude or Claude Code hook client in Runlayer. Sessions also require Anthropic to send a session ID and the actor email to match an active Runlayer user.
Confirm that the user’s Claude email exactly matches an active user’s email in the same Runlayer organization. The request is signed, but Runlayer still fails closed when it cannot bind that actor to an organization user.