Overview
Use this guide for a single Mac where you want Beacon running in system mode, Claude Code telemetry enabled, and local Beacon JSONL logs forwarded to an S3 bucket. There is no MDM setup here. The end state is:- Beacon is installed under
/opt/beaconfrom the signed and notarized GitHub Release package. - The system collector runs as
com.beacon.endpoint.collector. - Claude Code hooks are installed for the logged-in user.
- Runtime logs are written to
/var/log/beacon-agent/runtime.jsonl. - Inventory logs are written to
/var/log/beacon-agent/inventory_state.jsonl. - Bundled Vector forwards both streams to S3 under
runtime/andinventory/.
1. Prepare AWS
Create or choose an S3 bucket and a root prefix such asbeacon-prod. Do not include runtime or inventory in the prefix; Beacon adds those folders.
Give the credentials used by Vector permission to write under that prefix:
kms:* or s3:PutObjectTagging permissions in AWS.
For a quick local setup, have these values ready:
/Library/Application Support/Beacon/Forwarders/s3-vector.env with mode 0600.
You can also use normal AWS provider-chain settings such as AWS_PROFILE, AWS_SHARED_CREDENTIALS_FILE, AWS_CONFIG_FILE, AWS_WEB_IDENTITY_TOKEN_FILE, or AWS_ROLE_ARN instead of raw access keys.
2. Install The Package
Download and install the latest Apple Silicon endpoint package from GitHub Releases:BeaconEndpointAgent-*-arm64.pkg asset from the release page and run the same sudo installer command against that file.
The package installs /opt/beacon/bin/beacon, /opt/beacon/bin/beacon-otelcol, /opt/beacon/bin/vector, and the S3 helper scripts.
3. Configure Beacon And S3
Run the packaged helper once from an interactive login session. Keep Claude Code closed while this runs.com.beacon.endpoint.s3-forwarder.
Restart Claude Code before testing a real Claude session.
4. Verify Locally
Check the two services:5. Verify S3
Vector batches uploads, so allow up to five minutes.Troubleshooting
Vector Is Not Starting
Check launchd and Vector stderr:/opt/beacon/bin/vector, a malformed env file, missing AWS credentials, or an S3 bucket/prefix/IAM mismatch. Re-run the helper after fixing the environment.
Port 4137 Or 4317 Is Already In Use
Beacon’s default OTLP ports are4317 for gRPC and 4318 for HTTP. If setup reports a port conflict, first retry the same command once. A transient launchd or collector startup race can briefly surface as “address already in use” and then succeed on the next run.
If the retry fails, identify the process:
No S3 Objects Appear
First wait five minutes. Then check that Vector has the expected non-secret settings:s3:PutObject for s3://${BEACON_S3_BUCKET}/${BEACON_S3_PREFIX}/*, the AWS region matches the bucket, and the validation event was written after Vector started. Runtime forwarding starts at the end of the file to avoid backfilling old runtime events.

