Production-to-dev bridge. Ingests logs/errors from observability tools, clusters them, asks an LLM to summarize each cluster, opens or updates issues on GitHub/GitLab. Optional handoff to relay-agent closes the full SDLC loop. Standalone: no inter-package runtime deps.
Project description
Beacon
Production-to-dev bridge. Ingests logs and errors from observability tools, clusters them with an LLM, files structured issues on GitHub or GitLab. Optional handoff to Relay closes the full SDLC loop.
Status: alpha, live on PyPI as
beacon-agent==0.1.0a1. Standalone: no inter-package runtime deps. GitHub + GitLab fully supported in v0.1.0a1; webhook server mode (Sentry, Datadog, OpenTelemetry receivers) lands in v0.1.0a2.
What it does
cat errors.jsonl | beacon digest \
--vcs github --repo myorg/myapp \
--relay-label relay
Beacon:
- Ingests observability events (JSON-lines from stdin or a file)
- Clusters them by stack signature so the same incident does not file 47 separate issues
- Summarizes each cluster with an LLM: likely cause, suggested action, suspected file:line
- Files (or updates) one issue per cluster on the VCS, with a stable hidden signature for dedup
- Hands off to Relay: if the LLM judges the issue small and well-scoped, Beacon applies your
--relay-label; Relay's workflow then picks it up and ships a fix PR
This closes the SDLC loop: production noise to triaged story to autonomous fix to review by Tribune to deploy to verify with Sentinel.
Why this exists
ThinkNext ships an OSS agentic SDLC stack:
| Stage | Tool |
|---|---|
| Idea to code | Cascade (human-gated) or Relay (autonomous) |
| Code to review | Tribune |
| Code to tested running app | Sentinel |
| Production to next story | Beacon (this repo) |
Beacon is the only piece that touches running production: the place where errors actually happen.
Install
pip install 'beacon-agent[claude-code]' # or [anthropic], [openai], [google], [all]
beacon configure llm claude_code --set-default
beacon configure vcs github --token ghp_xxx --set-default
Run
# Dry run: print what would be filed
cat errors.jsonl | beacon digest --vcs github --repo myorg/myapp --dry-run
# File issues, label the small ones for Relay
cat errors.jsonl | beacon digest \
--vcs github --repo myorg/myapp \
--label beacon \
--relay-label relay \
--min-count 3 \
--max-clusters 10
Read from a file instead of stdin:
beacon digest --source ./errors.jsonl --vcs gitlab --repo group/project
Input format
One JSON object per line. Beacon maps common field name aliases automatically so most sources work without an explicit adapter:
{"message": "User not found", "level": "error", "exception.type": "NotFound", "stacktrace": "...", "service.name": "api", "environment": "prod", "timestamp": "2026-05-27T10:15:00Z"}
{"msg": "DB connection refused", "level": "fatal", "service": "worker"}
Recognized aliases include: msg/message, level/severity, ts/timestamp, exception.type/exc_type/error.type, stack/stacktrace/traceback, service.name/service/app, env/environment, release/version, plus syslog-style numeric severities.
What ships in 0.1.0a1
| Capability | Status |
|---|---|
| stdin / file JSONL ingest with multi-source field aliases | Full |
| Clustering by stack signature with stable fingerprints | Full |
| LLM summary per cluster (cause + action + relay-safe judgment) | Full |
| GitHub: find-or-create issue with hidden signature marker for dedup | Full |
| GitLab: same | Full |
Optional --relay-label for autonomous handoff |
Full |
| Multi-LLM via vendored client (Anthropic / OpenAI / Google / Claude Code / Ollama) | Full |
| Webhook server (Sentry, Datadog, OpenTelemetry receivers) | Planned 0.1.0a2 |
Per-repo beacon.yaml (severity thresholds, ignore patterns, custom prompt) |
Planned 0.1.0a2 |
| Scheduled digest mode (cron-style weekly rollups) | Planned 0.1.0a2 |
| Bitbucket + Azure DevOps issue creators | Planned 0.1.0a3 |
License
MIT. See LICENSE.
About
Built and maintained by ThinkNext Software Solutions, alongside Cascade, Relay, Tribune, and Sentinel.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file beacon_agent-0.1.0a1.tar.gz.
File metadata
- Download URL: beacon_agent-0.1.0a1.tar.gz
- Upload date:
- Size: 33.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
870bbfd00f5044e469b9c9e5bc62cfead2776d86f89858228c255e6fb599dc37
|
|
| MD5 |
74d3038d9c7aa0ed574aefdf99d21f76
|
|
| BLAKE2b-256 |
5b6e96fc5d4ece562d323803cdb2003818a2cc9e0df95805265a7d9b0571c816
|
File details
Details for the file beacon_agent-0.1.0a1-py3-none-any.whl.
File metadata
- Download URL: beacon_agent-0.1.0a1-py3-none-any.whl
- Upload date:
- Size: 41.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b1f106d693a4b0502795bb0f8f1dbe413e6b55523f44c21f76f824b47ae8a48c
|
|
| MD5 |
fb702445b0e738032b1f37935ef2113d
|
|
| BLAKE2b-256 |
ee8f8df0bccab992afe6acbc10171b97173752f42d5eb900f64b8149fe393a55
|