The cross-harness self-improving memory layer for AI agents.
See the code
Website · Docs · Discord · Install · Commands
Beacon captures agent session history across Claude Code, Cursor, Codex, OpenCode, and 20+ other harnesses, then turns useful workflows, corrections, and debugging patterns into reusable knowledge for future agents.
A problem solved by one agent shouldn't need to be learned from scratch by another.
Beacon is an open-source memory layer for AI coding agents that learns from your work across Claude Code, Cursor, Codex, OpenCode, and 20+ other harnesses. It captures full session history, identifies useful workflows, corrections, and debugging patterns, and makes that knowledge reusable by future agents. Built for developers who want agent knowledge to compound across tools instead of disappearing when a session ends.
Key Capabilities:
Beacon is open source and local-first. Interactive endpoint setup signs in through beacon.sh and preselects Beacon Managed, with an explicit Local opt-out. Signing in forwards nothing; confirming Managed installs Beacon and connects this machine in the same command, and the confirm screen says so before you accept. System, package, MDM, and CI installation paths remain noninteractive and account-free.
brew trust asymptote-labs/tap
brew tap asymptote-labs/tap
brew install beacon
beacon endpoint install
Download the .deb or .rpm from the latest release.
sudo apt install ./beacon_<version>_linux_amd64.deb
or:
sudo dnf install ./beacon_<version>_linux_amd64.rpm
Download the x64 MSI from the latest release.
msiexec /i BeaconEndpointAgent-<version>-x64.msi
For silent installation:
msiexec /i BeaconEndpointAgent-<version>-x64.msi /qn
Open Claude Code, Cursor, Codex, or any other supported harness.
Beacon continuously captures your session history in the background
beacon traces
This opens a local terminal browser for traces, event timelines, token usage, and retained content. Nothing is sent anywhere. To use the local web view instead:
beacon endpoint dashboard
Or inspect the raw event stream:
~/.beacon/endpoint/logs/runtime.jsonl
[!NOTE] Signing in does not enable forwarding. Confirming the preselected Beacon Managed option does: the wizard says so on the confirm screen, names what your chosen privacy mode sends, and connects the endpoint after the install succeeds. Choose Local to keep everything on this machine, and disconnect any time with
beacon endpoint disconnect.
Inspect the account used during interactive setup:
beacon whoami
Every agent session contains potentially useful knowledge about your codebase.
Beacon creates a loop around that history:
Run agents
↓
Capture session history
↓
Evaluate what worked
↓
Extract useful knowledge
↓
Review + approve
↓
Reuse across future agents
That could be:
Instead of disappearing into old sessions, that knowledge becomes reusable.
Most agent memory belongs to a single harness.
Beacon sits across the harness layer.
Claude Code ─┐
Cursor ──────┤
Codex ───────┼──→ Beacon ──→ shared project knowledge
OpenCode ────┤
Cline ───────┘
Because Beacon captures and normalizes session history across tools, knowledge learned through Claude Code doesn't have to stay in Claude Code.
Your Cursor sessions can improve Codex.
Your Codex sessions can improve OpenCode.
Your history keeps compounding even as you switch tools.
Your agent session history belongs to you, not the harness.
Beacon captures agent execution where it happens and normalizes it into a common OpenTelemetry-based event model.
That includes:
Instead of separate proprietary histories for every coding tool, you get one dataset you can inspect, search, learn from, and build on.
Beacon ships with a local, read-only dashboard:
beacon endpoint dashboard
Use it to explore session history across harnesses and understand what your agents actually did.
The underlying JSONL remains directly accessible, so you're never dependent on the UI.
Beacon supports local agents, browser agents, cloud agents, CI workflows, and agent SDKs.
| Runtime | Collection | Session | Prompt | Tool | Command | File | Approval | MCP | Tokens |
|---|---|---|---|---|---|---|---|---|---|
| Antigravity CLI | Hooks | ✅ | ✅ | ✅ | ✅ | ✅ | – | – | – |
| Claude Code | OTLP + hooks + poll | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Claude Cowork | OTLP | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Cline | Plugin + poll | ✅ | ✅ | ✅ | ✅ | ✅ | – | ✅ | ✅ |
| Codex CLI | OTLP + hooks + poll | ✅ | ✅ | ✅ | ✅ | – | ✅ | – | ✅ |
| Codex Desktop | OTLP | ✅ | ✅ | ✅ | ✅ | – | ✅ | – | ✅ |
| Cursor | Hooks + poll | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | – |
| DeepSeek Harness | Hooks + poll | ✅ | ✅ | ✅ | ✅ | ✅ | – | ✅ | ✅ |
| Devin CLI | Hooks | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | – |
| Devin Desktop | Hooks | – | ✅ | ✅ | ✅ | ✅ | – | ✅ | – |
| Factory Droid | OTLP + hooks + poll | ✅ | ✅ | ✅ | – | ✅ | ✅ | – | – |
| fx (Vercel Labs) | Poll | ✅ | ✅ | ✅ | ✅ | ✅ | – | ✅ | ✅ |
| Gemini CLI | OTLP | – | ✅ | ✅ | – | ✅ | ✅ | ✅ | – |
| GitHub Copilot CLI | OTLP + poll | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | – | ✅ |
| goose | Adapter only; manual hooks/OTLP | ✅ | ✅ | ✅ | ✅ | ✅ | – | ✅ | ✅ |
| Grok Build | Hooks + poll | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | – | – |
| Hermes Agent | Hooks + poll | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | – |
| Kimi Code | Hooks | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | – |
| Kiro | Hooks | ✅ | ✅ | ✅ | ✅ | ✅ | – | ✅ | – |
| Muse Code | Hooks | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | – | – |
| Oh My Pi | Extension | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| OpenClaw Gateway | Plugin + OTLP + poll | ✅ | ✅ | ✅ | ✅ | ✅ | – | ✅ | ~ |
| OpenCode | Plugin + poll | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| OpenHands | Hooks | ✅ | ✅ | ✅ | ✅ | ✅ | – | ✅ | – |
| Pi | Extension + poll | ✅ | ✅ | ✅ | ✅ | ✅ | – | ✅ | ✅ |
| Prime Agent | Extension + poll | ✅ | ✅ | ✅ | ✅ | ✅ | – | – | ✅ |
| Qwen Code | Hooks | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | – | – |
| Senpi | Extension | ✅ | ✅ | ✅ | ✅ | ✅ | – | – | ✅ |
| VS Code | OTLP + hooks | ✅ | ✅ | ✅ | ~ | ~ | – | ~ | – |
| Site | Collection | Prompt | Response | Tool | Tokens |
|---|---|---|---|---|---|
| Claude.ai | Chromium + Firefox extension → local OTLP | ✅ | ✅ | ✅ | ~ |
| ChatGPT | Chromium + Firefox extension → local OTLP | ✅ | ✅ | ✅ | – |
| Runtime | Collection | Session | Prompt | Tool | Command | File | Tokens |
|---|---|---|---|---|---|---|---|
| Claude Code Cloud Agents | Sandbox hooks → GCS or S3 | ✅ | ✅ | ✅ | ✅ | ✅ | – |
| Cursor Cloud Agents | Sandbox hooks → GCS or S3 | – | ✅ | ✅ | ✅ | ✅ | – |
| Devin Cloud Agents | API poll → GCS | ✅ | ✅ | – | – | – | ✅ |
| CI jobs | beacon ci exec → temporary local collector | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| SDK Surface | Collection | Captures |
|---|---|---|
| Anthropic | OpenLLMetry through @asymptote/sdk | Model call spans, errors, and OTel attributes |
| OpenAI | OpenLLMetry through @asymptote/sdk | Model call spans, errors, and OTel attributes |
| Claude Agent SDK | Observe.wrapClaudeAgentQuery() | Query root spans with Beacon-compatible prompt attributes |
| Vercel AI SDK | experimental_telemetry tracer handoff | Model call and tool spans where telemetry is enabled |
Beacon writes endpoint telemetry to local JSONL by default.
You can also forward the same normalized session history into infrastructure you already use:
Splunk · Datadog · Elastic · Microsoft Sentinel · CrowdStrike Falcon LogScale · Sumo Logic · Wazuh · AWS S3 · GCS · CloudWatch
| Destination | Category | Support Path |
|---|---|---|
| Local JSONL | Local | Default endpoint log and local dashboard source |
| Beacon Managed | Hosted forwarding | Signed-in device enrollment with Standard or Metadata-only privacy |
| CrowdStrike Falcon LogScale HEC | SIEM | Endpoint forwarding with LogScale ingest tokens |
| Microsoft Sentinel | SIEM | Azure Monitor Agent and Data Collection Rule content pack |
| Rapid7 InsightIDR | SIEM | Custom Logs webhook content pack |
| Splunk HEC | SIEM | Endpoint forwarding during install or repair |
| Sumo Logic | SIEM | HTTP Logs & Metrics Source content pack |
| Wazuh | SIEM | Localfile configuration and Beacon content pack |
| AWS CloudWatch Logs | Log aggregation | Vector content pack |
| Datadog | Log aggregation | Datadog Agent custom log collection |
| Elastic | Log aggregation | Filebeat or Elastic Agent |
| Customer-managed pipelines | Log aggregation | Forward directly from local Beacon JSONL |
| AWS S3 | Object storage | Vector, CI upload, or cloud-agent snapshots |
| Google Cloud Storage | Object storage | Vector, CI upload, or cloud-agent snapshots |
Beacon captures activity where agents actually run and normalizes it into one shared event model.
Local agents ───────┐
Browser chat ───────┤
CI ─────────────────┼──→ Beacon ──→ unified session history
Cloud agents ───────┤ │
Agent SDKs ─────────┘ ├──→ local JSONL
├──→ reviewed memory
├──→ MCP / Agent Skills
└──→ your own infrastructure
See the documentation for the full architecture breakdown.
Read the docs for:
Contributions are welcome.
Open an issue, submit a pull request, or join the Discord.
Go
87.6%
TypeScript
5.5%
Shell
2.7%
JavaScript
2.4%
The cross-harness self-improving memory layer for AI agents.
See the code
Website · Docs · Discord · Install · Commands
Beacon captures agent session history across Claude Code, Cursor, Codex, OpenCode, and 20+ other harnesses, then turns useful workflows, corrections, and debugging patterns into reusable knowledge for future agents.
A problem solved by one agent shouldn't need to be learned from scratch by another.
Beacon is an open-source memory layer for AI coding agents that learns from your work across Claude Code, Cursor, Codex, OpenCode, and 20+ other harnesses. It captures full session history, identifies useful workflows, corrections, and debugging patterns, and makes that knowledge reusable by future agents. Built for developers who want agent knowledge to compound across tools instead of disappearing when a session ends.
Key Capabilities:
Beacon is open source and local-first. Interactive endpoint setup signs in through beacon.sh and preselects Beacon Managed, with an explicit Local opt-out. Signing in forwards nothing; confirming Managed installs Beacon and connects this machine in the same command, and the confirm screen says so before you accept. System, package, MDM, and CI installation paths remain noninteractive and account-free.
brew trust asymptote-labs/tap
brew tap asymptote-labs/tap
brew install beacon
beacon endpoint install
Download the .deb or .rpm from the latest release.
sudo apt install ./beacon_<version>_linux_amd64.deb
or:
sudo dnf install ./beacon_<version>_linux_amd64.rpm
Download the x64 MSI from the latest release.
msiexec /i BeaconEndpointAgent-<version>-x64.msi
For silent installation:
msiexec /i BeaconEndpointAgent-<version>-x64.msi /qn
Open Claude Code, Cursor, Codex, or any other supported harness.
Beacon continuously captures your session history in the background
beacon traces
This opens a local terminal browser for traces, event timelines, token usage, and retained content. Nothing is sent anywhere. To use the local web view instead:
beacon endpoint dashboard
Or inspect the raw event stream:
~/.beacon/endpoint/logs/runtime.jsonl
[!NOTE] Signing in does not enable forwarding. Confirming the preselected Beacon Managed option does: the wizard says so on the confirm screen, names what your chosen privacy mode sends, and connects the endpoint after the install succeeds. Choose Local to keep everything on this machine, and disconnect any time with
beacon endpoint disconnect.
Inspect the account used during interactive setup:
beacon whoami
Every agent session contains potentially useful knowledge about your codebase.
Beacon creates a loop around that history:
Run agents
↓
Capture session history
↓
Evaluate what worked
↓
Extract useful knowledge
↓
Review + approve
↓
Reuse across future agents
That could be:
Instead of disappearing into old sessions, that knowledge becomes reusable.
Most agent memory belongs to a single harness.
Beacon sits across the harness layer.
Claude Code ─┐
Cursor ──────┤
Codex ───────┼──→ Beacon ──→ shared project knowledge
OpenCode ────┤
Cline ───────┘
Because Beacon captures and normalizes session history across tools, knowledge learned through Claude Code doesn't have to stay in Claude Code.
Your Cursor sessions can improve Codex.
Your Codex sessions can improve OpenCode.
Your history keeps compounding even as you switch tools.
Your agent session history belongs to you, not the harness.
Beacon captures agent execution where it happens and normalizes it into a common OpenTelemetry-based event model.
That includes:
Instead of separate proprietary histories for every coding tool, you get one dataset you can inspect, search, learn from, and build on.
Beacon ships with a local, read-only dashboard:
beacon endpoint dashboard
Use it to explore session history across harnesses and understand what your agents actually did.
The underlying JSONL remains directly accessible, so you're never dependent on the UI.
Beacon supports local agents, browser agents, cloud agents, CI workflows, and agent SDKs.
| Runtime | Collection | Session | Prompt | Tool | Command | File | Approval | MCP | Tokens |
|---|---|---|---|---|---|---|---|---|---|
| Antigravity CLI | Hooks | ✅ | ✅ | ✅ | ✅ | ✅ | – | – | – |
| Claude Code | OTLP + hooks + poll | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Claude Cowork | OTLP | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Cline | Plugin + poll | ✅ | ✅ | ✅ | ✅ | ✅ | – | ✅ | ✅ |
| Codex CLI | OTLP + hooks + poll | ✅ | ✅ | ✅ | ✅ | – | ✅ | – | ✅ |
| Codex Desktop | OTLP | ✅ | ✅ | ✅ | ✅ | – | ✅ | – | ✅ |
| Cursor | Hooks + poll | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | – |
| DeepSeek Harness | Hooks + poll | ✅ | ✅ | ✅ | ✅ | ✅ | – | ✅ | ✅ |
| Devin CLI | Hooks | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | – |
| Devin Desktop | Hooks | – | ✅ | ✅ | ✅ | ✅ | – | ✅ | – |
| Factory Droid | OTLP + hooks + poll | ✅ | ✅ | ✅ | – | ✅ | ✅ | – | – |
| fx (Vercel Labs) | Poll | ✅ | ✅ | ✅ | ✅ | ✅ | – | ✅ | ✅ |
| Gemini CLI | OTLP | – | ✅ | ✅ | – | ✅ | ✅ | ✅ | – |
| GitHub Copilot CLI | OTLP + poll | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | – | ✅ |
| goose | Adapter only; manual hooks/OTLP | ✅ | ✅ | ✅ | ✅ | ✅ | – | ✅ | ✅ |
| Grok Build | Hooks + poll | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | – | – |
| Hermes Agent | Hooks + poll | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | – |
| Kimi Code | Hooks | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | – |
| Kiro | Hooks | ✅ | ✅ | ✅ | ✅ | ✅ | – | ✅ | – |
| Muse Code | Hooks | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | – | – |
| Oh My Pi | Extension | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| OpenClaw Gateway | Plugin + OTLP + poll | ✅ | ✅ | ✅ | ✅ | ✅ | – | ✅ | ~ |
| OpenCode | Plugin + poll | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| OpenHands | Hooks | ✅ | ✅ | ✅ | ✅ | ✅ | – | ✅ | – |
| Pi | Extension + poll | ✅ | ✅ | ✅ | ✅ | ✅ | – | ✅ | ✅ |
| Prime Agent | Extension + poll | ✅ | ✅ | ✅ | ✅ | ✅ | – | – | ✅ |
| Qwen Code | Hooks | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | – | – |
| Senpi | Extension | ✅ | ✅ | ✅ | ✅ | ✅ | – | – | ✅ |
| VS Code | OTLP + hooks | ✅ | ✅ | ✅ | ~ | ~ | – | ~ | – |
| Site | Collection | Prompt | Response | Tool | Tokens |
|---|---|---|---|---|---|
| Claude.ai | Chromium + Firefox extension → local OTLP | ✅ | ✅ | ✅ | ~ |
| ChatGPT | Chromium + Firefox extension → local OTLP | ✅ | ✅ | ✅ | – |
| Runtime | Collection | Session | Prompt | Tool | Command | File | Tokens |
|---|---|---|---|---|---|---|---|
| Claude Code Cloud Agents | Sandbox hooks → GCS or S3 | ✅ | ✅ | ✅ | ✅ | ✅ | – |
| Cursor Cloud Agents | Sandbox hooks → GCS or S3 | – | ✅ | ✅ | ✅ | ✅ | – |
| Devin Cloud Agents | API poll → GCS | ✅ | ✅ | – | – | – | ✅ |
| CI jobs | beacon ci exec → temporary local collector | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| SDK Surface | Collection | Captures |
|---|---|---|
| Anthropic | OpenLLMetry through @asymptote/sdk | Model call spans, errors, and OTel attributes |
| OpenAI | OpenLLMetry through @asymptote/sdk | Model call spans, errors, and OTel attributes |
| Claude Agent SDK | Observe.wrapClaudeAgentQuery() | Query root spans with Beacon-compatible prompt attributes |
| Vercel AI SDK | experimental_telemetry tracer handoff | Model call and tool spans where telemetry is enabled |
Beacon writes endpoint telemetry to local JSONL by default.
You can also forward the same normalized session history into infrastructure you already use:
Splunk · Datadog · Elastic · Microsoft Sentinel · CrowdStrike Falcon LogScale · Sumo Logic · Wazuh · AWS S3 · GCS · CloudWatch
| Destination | Category | Support Path |
|---|---|---|
| Local JSONL | Local | Default endpoint log and local dashboard source |
| Beacon Managed | Hosted forwarding | Signed-in device enrollment with Standard or Metadata-only privacy |
| CrowdStrike Falcon LogScale HEC | SIEM | Endpoint forwarding with LogScale ingest tokens |
| Microsoft Sentinel | SIEM | Azure Monitor Agent and Data Collection Rule content pack |
| Rapid7 InsightIDR | SIEM | Custom Logs webhook content pack |
| Splunk HEC | SIEM | Endpoint forwarding during install or repair |
| Sumo Logic | SIEM | HTTP Logs & Metrics Source content pack |
| Wazuh | SIEM | Localfile configuration and Beacon content pack |
| AWS CloudWatch Logs | Log aggregation | Vector content pack |
| Datadog | Log aggregation | Datadog Agent custom log collection |
| Elastic | Log aggregation | Filebeat or Elastic Agent |
| Customer-managed pipelines | Log aggregation | Forward directly from local Beacon JSONL |
| AWS S3 | Object storage | Vector, CI upload, or cloud-agent snapshots |
| Google Cloud Storage | Object storage | Vector, CI upload, or cloud-agent snapshots |
Beacon captures activity where agents actually run and normalizes it into one shared event model.
Local agents ───────┐
Browser chat ───────┤
CI ─────────────────┼──→ Beacon ──→ unified session history
Cloud agents ───────┤ │
Agent SDKs ─────────┘ ├──→ local JSONL
├──→ reviewed memory
├──→ MCP / Agent Skills
└──→ your own infrastructure
See the documentation for the full architecture breakdown.
Read the docs for:
Contributions are welcome.
Open an issue, submit a pull request, or join the Discord.
Go
87.6%
TypeScript
5.5%
Shell
2.7%
JavaScript
2.4%