Overview
Beacon detections are threat rules for AI-agent telemetry. They read normalized endpoint events, evaluate rule conditions over those events, and emit findings that explain which rule fired, why it fired, and which events were involved. Use detections when you want to review local agent activity for risky commands, sensitive file access, suspicious tool use, policy bypass attempts, prompt-injection patterns, or multi-step behavior such as a secret read followed by outbound network access. The detection format is open and lives in the Agent Beacon repository. Rules are YAML documents with CEL match expressions, metadata, and embedded test fixtures. The detection engine ships with the Beacon CLI, while rule packs are external data that can be installed, updated, and linted separately from the binary.Local scanning is read-only and offline.
beacon scan does not fetch rule packs, send telemetry to Asymptote, mutate endpoint configuration, or change the runtime log.Quickstart
Run active detections over the default per-user endpoint log:Scan local endpoint telemetry
JSON findings
Install the full threat-rule pack
List active detections
Fail on high or critical findings
What Detections Look For
Detections focus on risky agent behavior that is hard to understand from one raw log line alone:- Credential access: reads of
.env, SSH keys, cloud credentials, browser session stores, shell history, process tables, Kubernetes kubeconfigs and service-account tokens, GPG private keyrings, or password-manager vaults (KeePass, 1Password, Bitwarden, LastPass, pass). - Context exfiltration: network commands, paste and transfer services, DNS tunneling, Git bundles, outbound MCP calls, secret-bearing request bodies, SSH reverse-tunnel or SOCKS-proxy invocations, or archive-then-upload pipelines.
- Risky commands: destructive shell operations, persistence installation (crontab, systemd timers, kernel modules), shell escapes, privileged container runs, curl-to-shell patterns, sudoers edits, root-equivalent changes, or history-rewriting git operations (filter-branch, filter-repo, rebase -i, force-push to protected branches).
- Sensitive edits: changes to CI pipelines, dependency manifests, shell startup files, authorization code, autostart units, agent instruction files, SSH authorized_keys or sshd_config, /etc/hosts or hosts.allow/deny, container or IaC files (Dockerfile, Terraform, Kubernetes manifests, Helm values), or other control surfaces.
- Prompt injection: instructions that try to override roles, ignore prior instructions, exfiltrate context, hide with invisible characters, or decode and execute hidden payloads.
- Approval and policy abuse: denied actions that still execute, high-risk approvals without a reason, attempts to spawn around runtime permission controls (agent CLIs launched with permission-elevating env vars, sandbox-escape primitives like nsenter / unshare / chroot / pivot_root), or re-invocations of denied commands through a renamed binary or temp-path shim.
- Agent runtime control: spawns of known agent CLIs (Claude Code, Codex, Cursor Agent, Aider, Goose, OpenCode, Gemini) that arrive with permission-elevating env vars or attempt to hand off credentials or context to a second agent.
- Resource consumption: unusually expensive single calls when token and cost telemetry are available, fork-bomb patterns (
:(){ :|:& };:,while true; do ... & done), or disk-fill primitives (dd of /dev/zero to large targets, fallocate, yes-piped-to-file).
Detection Coverage
Beacon ships with a small built-in baseline sobeacon scan works before any rule store is installed. The broader rule pack is distributed as a release asset and includes categories like these:
Rules only evaluate events that exist in the runtime log. For example, an MCP detection needs MCP-like activity to be emitted by a supported harness, and a prompt-injection rule needs retained prompt or content fields to be present under the endpoint’s local data-retention settings.
Detection Flow
- A supported agent harness emits runtime telemetry.
- Beacon normalizes that telemetry into endpoint events and writes
runtime.jsonl. beacon scanloads the active rule set from an explicit rules directory, the local rule store, or the built-in baseline.- Each rule is decoded, validated, and compiled before it runs.
- The scan evaluates rules against the ordered event stream.
- Matching rules produce findings with rule metadata, severity, reason, session context, and evidence events.
beacon scan or inspect it in the loopback-only endpoint dashboard. The dashboard Detections view lists active rules, while the Findings view runs those rules over the configured runtime log on demand.
Rules And Findings
A rule is the durable detection definition. It contains anid, title, severity, CEL logic, and test fixtures that prove the expected behavior.
A finding is the runtime result of a rule firing. Findings include the rule identity, severity, emitted reason, matched session when available, and the event evidence that caused the match.
Finding shape
Single-event rule shape
Rule Sources
Beacon can run detections from three sources, resolved in this order:- An explicit directory passed to
beacon scan --rules. - The local endpoint rule store managed by
beacon rules. - The built-in baseline when no local store is installed or the store is empty.
Scan with a local rule directory
Install local rules into the store
~/.beacon/endpoint/rules. System-mode installs use the system endpoint base directory.
Author And Validate Rules
Threat rules are meant to be reviewed and tested like code. A new rule should start asexperimental, include a plain-language emit.reason, and carry at least one fixture that proves the expected verdict.
Validate a rule file or directory before installing it:
Lint rule files
List CEL field paths
Operational Notes
beacon scan --min-severity <level>filters displayed findings.beacon scan --fail-on <level>exits non-zero when any finding at or above the threshold exists.beacon scan --session <id>narrows evaluation to events whose session ID contains the supplied value.beacon scan --log-path <path>scans a copied or archivedruntime.jsonlfile.beacon rules pullis the only rules workflow that reaches the network, and only for the explicit URL you provide.- The local dashboard mirrors
beacon scanrule resolution and finding behavior, but stays loopback-only and read-only.
Managed Detections
The open-source Beacon flow runs detections locally over endpoint JSONL. Asymptote Managed builds on the same telemetry foundation with centralized ingest, retention, search, detections, fleet-wide visibility, policy workflows, identity mapping, SSO/RBAC, and investigation workflows. Use local Beacon detections when you need offline endpoint checks or customer-controlled forwarding. Use Managed when you need centralized review across a fleet or organization.Read Next
YAML Schema
Learn the fields used by Beacon threat-rule YAML files.
Detection Standard
Understand the threat-rules/v1 standard, maturity ladder, and conformance model.
Detection Engine
See how rules are loaded, compiled, evaluated, and turned into findings.
beacon scan
Run active rules over local endpoint telemetry.
Endpoint dashboard
Browse active detections and findings in the local dashboard.
Related
Endpoint Event Schema
Review the normalized JSON fields that detections evaluate.
Inventory
Review local harness, MCP server, skill, and configuration visibility.
beacon rules
Manage, install, lint, and inspect local detection rules.

