Agent Beacon is a local-first memory layer that records AI coding-agent sessions and turns useful workflows, corrections, and debugging patterns into knowledge that other agents can reuse. Developers use it across Claude Code, Cursor, Codex, OpenCode, and other agent harnesses so lessons and repository conventions persist between sessions. The catalogue entries provide instructions and a skill for working with Beacon's shared agent memory.
Borrowing it
Nothing to install: this file belongs to Asymptote-Labs/agent-beacon. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/Asymptote-Labs/agent-beacon/main/CLAUDE.mdgit clone --depth 1 https://github.com/Asymptote-Labs/agent-beaconWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/instructions/asymptote-labs/agent-beacon/claude-md)<a href="https://agentmods.dev/instructions/asymptote-labs/agent-beacon/claude-md"><img src="https://agentmods.dev/badge/instructions/asymptote-labs/agent-beacon/claude-md/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/instructions/asymptote-labs/agent-beacon/claude-md"><img src="https://agentmods.dev/badge/instructions/asymptote-labs/agent-beacon/claude-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.20923 | $0.20923 |
| Opus 5.5 | $0.08369 | $0.08369 |
| Sonnet 5.5 | $0.04185 | $0.04185 |
| Haiku 4.5 | $0.02092 | $0.02092 |
Grade D, and why
agent-beacon CLAUDE.md scanned grade D with 2 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Asks for rootmediumPrivilege escalation
A mod that escalates privileges can change anything on the machine, not only the project.
sudo /opt/beacon/bin/beacon endpoint update --apply Recursive force deletehighDestructive command
rm -rf with a variable or a broad path is one typo away from removing the wrong tree.
rm -rf .tmp/release-<tag> How it starts
The opening of the file, as written. The whole thing — 607 lines — stays where its author put it; the contents beside it link to each section on GitHub.
CLAUDE.md
Guidance for Claude Code and other coding agents working in this repository.
Project Scope
Beacon Endpoint Agent is a local-only endpoint telemetry agent for AI runtimes. The shipping code paths are:
cli/beacon: publicbeaconCLI and endpoint runtime.cli/beacon-hooks: hook adapter invoked by Cursor and other supported runtimes.collector-builder: OpenTelemetry Collector distribution and Beacon JSONL exporter.packages/asymptote-sdk-js: TypeScript SDK for cloud agent telemetry that exports Beacon-compatible OpenTelemetry spans.browser-extension: optional MV3 collector (Chrome, plus a beta Firefox build target) that relays Claude.ai and ChatGPT chat telemetry into the local pipeline as OTLP.pkg/asymptoteobserve: shared Go library — event schema, harness-name normalization, provenance markers, token usage, and the threat-rules engine. Imported by the CLI, the hook adapter, and the collector exporter, so a change here reaches all three.plugins: TypeScript sources for the managed runtime plugins/extensions (opencode-beacon,cline-beacon,pi-beacon,omp-beacon,openclaw-beacon,prime-beacon,omo-beacon), each mirrored into an embedded copy undercli/beacon/internal/endpoint/hooks/assets/.agent-skills: publishable Agent Skills plugin for the traces-to-memory workflow (beacon-memory-recall,beacon-memory-distill,beacon-memory-promote), for authoring dashboard lenses (beacon-lens-create), for sharing the current session to beacon.sh (beacon-trace-share, which runsbeacon share --current --harness <runtime> --json, keeps the default direct visibility and asks before public), and for continuing local sessions in another runtime (beacon-session-handoff, which uses detached CLI launch) with manifests for Claude Code, Agent Plugins (Codex, Copilot, VS Code, Kiro, Devin), Cursor, Kimi Code, and Gemini CLI. At the repo root,.claude-plugin/marketplace.jsonis read by most harnesses,.cursor-plugin/marketplace.jsonby Cursor, andpackage.json(pi.skillsonly) makes the repo a Pi/Prime Agent package; keep that rootpackage.jsonfree of dependencies and scripts.cli/beacon/cmd/agent_skills_test.gochecks everybeaconcommand and flag the skills name against the real command tree, so rename a command and update the skills together. The binary carries a copy ofagent-skills/skillsincli/beacon/internal/agentskills/skillsfor onboarding andbeacon skills install; a test keeps it identical, so copy it across whenever a skill changes.rulesandspec/threat-rules: the open rule corpus and the Threat Rules format it conforms to. Every rule'staxonomy.beacon_categoryis its directory name, and the six embedded baseline rules inpkg/asymptoteobserve/rulestore/baselineare byte-identical copies of their corpus rules; conformance tests enforce both.spec/lenses: the Lenses format — single-file HTML views of one trace that the local dashboard runs in a sandboxed, network-less frame and feeds once throughwindow.beacon.getTrace(). The contract types (LensManifestV1,LensDataV1) live inpkg/asymptoteobserve/lens.go, andlens_test.gopins the spec's examples and manifest schema to them. The dashboard builds the data inBuildLensData(/api/lens-data), lists lenses at/api/lenses, and serves each lens at/lenses/frame/<id>under the spec's CSP withlenses/prelude.js(which defineswindow.beacon) injected ahead of it; that route is the only one that may be framed. Built-in lenses arecli/beacon/internal/endpoint/dashboard/lenses/*.lens.html, andactivityis byte-identical to the spec example (a test enforces it). The session page (static/session.html,initLensTabsinapp.js) shows lenses as tabs fed by/api/lens-data?session=, which projects exactly the events that page lists; it is the host half of the protocol and closes a lens that errors, stalls, or navigates its own frame. Trust model (SPEC "Trust model"): the opaque origin, sandbox and CSP keep a lens from touching Beacon or the dashboard and block ordinary network APIs, but cannot fully prevent a lens from sending trace data out through browser features no CSP governs (WebRTC, resource hints, speculative loading), so an installed lens is code the person trusts with the trace data it is shown; never describe the sandbox as making exfiltration impossible.prelude.jsremoves theRTC*globals and guards the document (refuses creating, inserting or parsing in nested frames,<link>elements and<script type=speculationrules>, parsing markup in the real call's document and context and inserting exactly the checked nodes so<noscript>/foreign-content parser differentials cannot slip through, refusesdocument.writeandexecCommand("insertHTML"), and a mutation observer removes those from the file's own markup); that is best-effort hardening, not a boundary, and the hostileprobefixture intestdata/lens-e2epins each covered path. Installed lenses live in the lens store (cli/beacon/internal/endpoint/lensstore,<BaseDir>/lenses/<id>.lens.html, 0600 under 0700), written only bybeacon lenses add|remove(cli/beacon/cmd/lenses.go;addprints the trust warning and confirms on a TTY, and refuses without one or in CI unless--yes); the dashboard rescans it per request and never writes it, and a store lens can never shadow a built-in.asymptoteobserve.CheckLensFileis the one file check every installer, server and linter uses. User docs aredocs/concepts/lenses.mdxanddocs/cli/lenses.mdx; keep them in sync with the commands and built-in lenses. The authoring loop isbeacon lenses spec(the spec carried in the binary asdashboard/lenses/SPEC.md, kept byte-identical tospec/lenses/SPEC.mdby a test),beacon lenses data(the exactLensDataV1for a session),beacon lenses lint(lensstore.Lint; built-ins must lint clean) andbeacon lenses preview(the dashboard withOptions.LensFiles, re-read per reload).beacon-sandbox: harness that runs a real Claude Code session in a disposable sandbox and checks what Beacon captured. Seebeacon-sandbox/AGENTS.md.packaging: macOS, Linux, and Windows packaging and deployment assets.terraform: customer-run Terraform modules for the cloud side of object storage forwarding. The base modulesaws-s3andgcsalways create a new, dedicated bucket (never an existing one) and the writer every Mac's forwarder uses: the put-onlybeacon-endpoint-writerIAM user, or abeacon-endpoint-writerservice account withobjectCreatorlimited to the prefix by an IAM condition. The enterprise self-hosted path, where Asymptote reads that bucket through ClickHouse, is two separate modules that take the base module'sbucketoutput:aws-s3-asymptote-reader(anasymptote-s3-readerIAM user, because ClickPipes on the GCP-hosted ClickHouse rejects IAM roles, plus an SQS queue and dead-letter queue per stream and the bucket notification, which it owns) andgcs-asymptote-reader(objectViewerforbeacon-clickpipes-reader@asymptote-labs, a Pub/Sub topic, the notification and a subscription per stream with the managed path's settings). The queues exist because a ClickPipe without one reads in key order and skips objects that land behind its cursor, which Macs uploading on their own timers cause; their URLs and subscription paths are outputs for the provisioning script's--queue-url. Keep everything Asymptote-specific out of the base modules. No module creates keys unless asked (create_writer_access_key,create_writer_key,create_access_key), so no secret lands in state by default. Resource names andforwarder_settingsmatch the packagedinstall-forwarder.shhelpers and the manual guides. docs.beacon.sh (docs/log-forwarding/{aws-s3,gcs}-terraform.mdx) documents the base modules only. The reader modules and the self-hosted setup are documented only on docs.asymptotelabs.ai (beacon-mdrdocs/deployment/self-hosted-{s3,gcs}.mdx), so keep them out ofdocs/;/manage/configure-s3-data-connectorredirects there. Both sites pin the modules to a release tag; keep them in sync with the variables.docs: the published documentation site (docs.asymptotelabs.ai).
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- today Changed · +6 lines · +98 tokens per session 5677fc956918
- 2d ago Changed · +184 tokens per session f13b40900fc1
- 3d ago Changed · +4 lines · +360 tokens per session 6b9d7bb8908a
- 5d ago Changed · +70 tokens per session 7397920d8132
- 9d ago Changed · +10 lines · +220 tokens per session 7a613c68d94f
- 10d ago Changed · +8 lines · +462 tokens per session edfa0fee2b01
- 11d ago Changed · +1 lines · +174 tokens per session bf580cfacf78
- 13d ago Changed · +8 lines · +549 tokens per session 23136e46ae66
- 14d ago Changed · +2 lines · +3,063 tokens per session 736e7d6f74a0
- 15d ago First seen · 568 lines · 15,743 tokens per session scan D 306b92eecf97
agent-beacon CLAUDE.md is an instructions file published in the GitHub repository Asymptote-Labs/agent-beacon (2,808 stars, last pushed today), licensed MIT. It adds 20,923 tokens to every session, about $0.0837 per session on Opus 5.5. A static security scan graded it D with 2 findings (asks for root, recursive force delete). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other instructions, from other repositories
vscode buildNext.instructions.md
Working notes and architecture documentation for the new esbuild-based build system in build/next. Use when making changes to the new build pipeline (transpile/bundle commands, NLS plugin, source-map handling, resource copying, or self-hosting watch tasks).
next.js AGENTS.md
AGENTS.md instructions for vercel/next.js, covering next.js development guide, codebase structure, monorepo overview, core package: packages/next and other important packages.
vscode oss-third-party-notices.instructions.md
Instructions for microsoft/vscode, covering vs code oss third-party-notices pipeline, architecture, pipeline flow in ci, cache eligibility and rollout and applying the notice (cutover).
langchain AGENTS.md
AGENTS.md instructions for langchain-ai/langchain, covering global development guidelines for the langchain monorepo, corridor security analysis, project architecture and context, monorepo structure and development tools & commands.
vscode copilot-instructions.md
Copilot instructions for microsoft/vscode, covering vs code copilot instructions, project overview, root folders, core architecture (src/ folder) and built-in extensions (extensions/ folder).
deno copilot-instructions.md
Copilot instructions for denoland/deno, covering deno development guide for github copilot, network access, high level overview, key directories and key files to understand first.