Skip to main content

Integration Overview

Use this integration to capture Claude Code cloud-agent activity and upload each session log to your own Google Cloud Storage or Amazon S3 bucket. It is meant for testing cloud-agent telemetry without running a hosted Asymptote backend. This flow depends on the Beacon CLI. You run beacon cloud commands from your workstation to create the object-storage upload path, print Claude environment variables, and generate the setup script that runs inside the Claude cloud sandbox.
If you’re interested in leveraging this telemetry ingest across your enterprise, Asymptote Managed is designed for production cloud-agent telemetry ingest at scale.

Overview

Claude Code Cloud Agents run in Anthropic’s cloud environment, so Beacon cannot use the long-running endpoint agent that local installs use. Instead, the setup script installs Beacon hooks inside the sandbox. During a cloud-agent session, those hooks write /tmp/beacon/runtime.jsonl; at the end of the session, Beacon uploads that file to customer-managed object storage. The setup has three parts:
  1. Create a dedicated GCS or S3 upload path with Beacon.
  2. Add Beacon cloud telemetry environment variables to the Claude Code cloud environment.
  3. Paste a Beacon-generated setup script into the Claude cloud environment.
Each Claude Code cloud agent session writes one readable JSONL object:
or:

Prerequisites

  • Beacon CLI v0.0.51 or later.
  • For GCS: gcloud installed and authenticated to the Google Cloud project you will use for telemetry storage.
  • For S3: AWS CLI installed and authenticated to an AWS account where you can create buckets, IAM users, inline IAM policies, and access keys.
  • Claude Code cloud agent access for the repository you want to test.
  • A Claude cloud environment with outbound access to:
    • For GCS: oauth2.googleapis.com and storage.googleapis.com
    • For S3: s3.<region>.amazonaws.com
    • github.com
    • *.githubusercontent.com
Install or upgrade Beacon before you start:
For GCS, authenticate gcloud and select your project:
For S3, authenticate the AWS CLI:

1. Create the Upload Path

Choose GCS or S3 for the cloud-agent session logs.

GCS

From your workstation, choose a bucket and prefix:
Review the GCP changes Beacon will make:
Terminal showing beacon cloud gcs setup --print output with gcloud commands for creating the bucket, service account, and IAM binding.

Review the bucket, service account, and IAM commands before applying them.

Apply the setup and print the Claude environment variables:
Copy the printed values. Redact BEACON_CLOUD_GCS_CREDENTIALS_B64 anywhere you share screenshots or logs.
Terminal showing beacon cloud gcs setup --apply --print-env output with bucket, prefix, and credentials environment variables.

Copy the printed BEACON_CLOUD_GCS_* variables into the Claude cloud environment.

The helper creates a dedicated uploader service account and grants it object upload access to the selected bucket.

S3

From your workstation, choose a bucket, region, and prefix:
Review the AWS changes Beacon will make:
Apply the setup and print the Claude environment variables:
Copy the printed values. Redact AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY anywhere you share screenshots or logs. The helper creates a dedicated IAM user and grants it s3:PutObject only under the selected bucket prefix.

2. Configure Claude Code Cloud Agents

Open the Claude Code web application and select the cloud environment for your repository.
Claude Code cloud environment selector showing a Beacon Test cloud environment selected.

Select or create the Claude cloud environment that should run Beacon telemetry hooks.

Set network access to Custom and allow:
For GCS, allow oauth2.googleapis.com and storage.googleapis.com instead of the S3 regional hostname. Add these common environment variables:
For GCS, add:
For S3, add:
Claude Code cloud environment settings showing custom network domains, Beacon environment variables, and a setup script.

Configure network access, Beacon metadata, GCS bucket settings, and the setup script in the Claude cloud environment.

3. Add the Setup Script

Generate the setup script for your Beacon release:
Paste the generated script into the Claude environment Setup script field. The script:
  • installs beacon and beacon-hooks in /tmp/beacon/bin,
  • finds the cloud sandbox repository root,
  • writes .claude/settings.local.json inside the sandbox clone,
  • excludes generated Claude settings from git commits.
If you are testing unreleased Beacon changes from a branch, build beacon and beacon-hooks from that branch in the setup script instead of using print-setup --version.

4. Run a Cloud Agent Task

Start a Claude Code cloud agent task that uses tools. You can start the task from the Claude app on your phone or from the Claude Code web application. For example:
Claude Code cloud agent session showing setup completed, a README task, shell command activity, and a temporary note creation.

A successful Claude Code cloud agent session runs the setup script, starts Claude Code, and produces normal agent activity.

5. Verify Upload

For GCS, list the uploaded session objects:
For S3, list the uploaded session objects:
You should see a path like:
Google Cloud Storage object browser showing Beacon cloud agent traces partitioned by provider, user ID, Claude run ID, and runtime.jsonl.

Beacon uploads one readable runtime.jsonl object per Claude Code cloud agent session.

Inspect the log:
For S3:
Expected fields include:

Security Note

The self-serve GCS flow above creates a dedicated service account scoped to object uploads for one bucket. The S3 flow creates a dedicated IAM user scoped to s3:PutObject under one prefix. Both flows store credentials in the Claude Code environment. This is useful for proof-of-concept testing, but treat those environment variables as sensitive credentials. Claude notes that cloud environment variables are visible to users of that environment and recommends avoiding secrets there when possible. Avoid broad credentials, rotate or delete the generated key after testing, and review access before using this flow with sensitive telemetry.

Troubleshooting

The bucket is empty

Confirm the Claude setup script ran and generated hooks:
Confirm hooks wrote telemetry:
If runtime.jsonl exists but object storage is empty, check network access and credentials. The cloud sandbox must reach either the GCS OAuth/storage endpoints or the regional S3 endpoint you configured.

Claude tries to commit hook settings

The setup script should write .claude/settings.local.json, not .claude/settings.json. settings.local.json is intended for local or sandbox-specific configuration and should stay out of commits.

Claude Code runtime support

Review local Claude Code telemetry through OTLP and hooks.

Log forwarding

Review local endpoint S3 forwarding for persistent endpoint deployments.

Asymptote Managed

Use managed secure ingest for production enterprise cloud-agent telemetry.

Agent Beacon on GitHub

Request new cloud-agent destinations or contribute support.