Skip to main content

Data categories

Beacon writes normalized endpoint events only when supported runtimes provide telemetry through a configured local surface. Each event includes required event, endpoint, and harness context. Optional entities are present only when the source payload provides that context and the configured retention mode allows it.

Runtime inventory

The browser extension is the only surface that reads content from a site the person is signed into personally, so its boundaries are worth stating explicitly. It observes the chat request and response streams on claude.ai, chatgpt.com, and chat.openai.com, and nothing else. It has no access to other tabs, browsing history, or page content elsewhere, and it never writes files. Its retention setting defaults to full, so complete prompt and assistant response text is retained in the local runtime log unless an operator changes it in the extension’s options page. redacted scrubs emails and API-key-shaped tokens; metadata retains no chat text at all. Retention is applied in the browser before anything is sent, so under metadata the text never leaves the page.

Local inventory metadata

beacon endpoint inventory can also report local agent configuration metadata that is not emitted by a runtime event: By default, inventory is metadata- and hash-only. Beacon hashes config, hook, and SKILL.md files for change detection but does not retain file bodies, full MCP server definitions, or skill instruction bodies in inventory JSON, dashboard responses, or inventory snapshot events. Operators can opt into capturing full definitions with the --contents flag (CLI) or the include_contents config setting (snapshot telemetry). When enabled, configs, hooks, and skills gain a redacted content block and MCP servers gain a full definition block. Captured contents always pass through local secret redaction and a per-file size cap (64 KiB by default, configurable with max_content_bytes). Redaction replaces values under keys matching TOKEN, SECRET, PASSWORD, KEY, AUTH, or CREDENTIAL with ***REDACTED***. Inventory heartbeat telemetry uses a separate local JSONL file, inventory_state.jsonl, so runtime.jsonl stays scoped to agent runtime activity. Normal hook execution can periodically write:
  • inventory.heartbeat, a small event showing that Beacon checked local agent configuration inventory and recording counts plus a snapshot digest.
  • inventory.snapshot, a snapshot written when the digest changes or inventory is first initialized. Metadata-only unless include_contents is enabled.
By default, snapshots include config-file metadata, MCP server metadata, skill metadata, and hook config metadata across supported local runtimes. They do not include skill instruction bodies, MCP secret values, full environment values, full command arguments, or unrelated config content. When include_contents is enabled, snapshots additionally carry redacted, size-limited content and definition blocks as described above.

Required fields

Optional entities

Top-level model, repository, branch, message, raw, and field_truncated fields can add shared context across entities. Content-bearing fields follow the configured retention mode. For hook-based runtimes, branch is derived locally from the workspace’s .git/HEAD file when the runtime payload does not provide one. This is a local file read only: no git command runs and nothing leaves the machine. Disable it with BEACON_DISABLE_GIT_METADATA=1. OpenCode’s managed plugin retains full prompt, completed assistant/reasoning, tool argument/result, command output, and diff content in local or customer-controlled logs. All values pass through secret redaction and per-string truncation. Content events carry original hashes and byte counts; oversized events discard raw/content payloads, set field_truncated, and remain within the endpoint event-size limit. Cline’s managed plugin retains full prompt, tool argument/result, command output, and diff content under the same redaction, truncation, hashing, and event-size controls. It forwards the remaining hook payload under raw.cline after dropping functions and cyclic references from Cline’s live hook context. Nothing is sent anywhere but the local runtime log: Cline’s own OpenTelemetry export and its hosted prompt-storage feature are neither configured nor used.

Schema fields

Review the full entity model and common fields.

Agent harnesses

Compare runtime-specific collection surfaces and telemetry coverage.