Skip to main content
Grok Bot runs work on a cloud computer. The macOS desktop app and iOS app are control surfaces, so they do not inherit AI Watch binaries, MDM settings, or the local Grok CLI hooks under ~/.grok. Use Grok Bot’s Cursor-format team or plugin hooks to send session events to Runlayer. This integration is monitor-only: the collector cannot block tools, enforce MCP policy, read Runlayer data, or administer your workspace.

1. Create a scoped key

In Runlayer, go to Settings → Organization API Keys, create a key with only the Grok Bot Hooks permission, and copy it when shown. Runlayer stores only its hash. Add the value to the Grok Bot team or cloud-computer secret store as RUNLAYER_GROK_BOT_HOOK_KEY. Do not commit it to a repository, and do not use an AI Watch organization key or Agent Account secret.

2. Add the hook helper

Create .grokbot/runlayer_hook.py in each repository used by Grok Bot. Replace the hostname in COLLECTOR_URL with your Runlayer tenant hostname. Keep the full HTTPS URL literal so repository content cannot redirect the credential.
The helper reuses one delivery ID across transient retries, never logs the key or payload, and always returns Grok Bot’s explicit allow response. A Runlayer outage therefore cannot block or change a Bot run.

3. Register supported team hooks

In Grok Bot, add command hooks for the events below at team scope. Teams that manage Cursor-format plugins as code can use this as hooks/hooks.json in the plugin and assign the plugin to Grok Bot users. Runlayer supports exactly the configured events below. This list defines the integration contract; it is not a claim that every Grok Bot version emits every event during every run. Other event names are rejected by the collector.
Start a new Bot run, then open Sessions in Runlayer and filter for Grok Bot. If events do not appear, confirm Grok Bot is enabled under Settings → Agent session monitoring, the secret is available on the cloud computer, and the collector URL uses the correct tenant hostname.