Skip to content

BeaconLet your AI agent be on call

When a service breaks, Beacon wakes your agent, hands it the evidence, lets it reach the machine without ever holding a key, and keeps a recording you can replay. People watch. They do not have to get up.

BeaconBeacon

Why we built it ​

Operations tooling assumes a person at the keyboard: a dashboard to watch, a key on a laptop, a button to approve. Put an agent on the first line and each of those is a hole. An agent does not watch dashboards, so something has to wake it and hand it what it needs. It cannot be given a key, because whatever it reads it may leak. At three in the morning it cannot wait for someone to approve, so review has to happen afterwards, which only works if everything was recorded.

Beacon is the piece of infrastructure built for that: the agent as the operator, people as the ones who see and can stop it. We run our own servers on it. In the first real drill, a broken job went from alert to verified recovery in under four minutes with nobody touching a keyboard.

How it works ​

One service, linkos-beacon, stands between the machines that report, the people on call and the agents that do the work. Metrics and rules stay in VictoriaMetrics and vmalert; Beacon calls no model.

How Beacon fits: probes, CI and Flux report to Beacon, which keeps metrics and rules in VictoriaMetrics and vmalert, sends cards and phone calls to the people on call, wakes agents, and lets them reach machines through its SSH channel.Probeslinkos-probe at each locationCI and Fluxdeployments, reconciliationsVictoriaMetrics, vmalertmetrics and rulesBeaconlinkos-beacon serveGatewayfor machines · port 17006Routergroups, inhibits, silencesBridgecards, escalation, hooksAPI and MCPpeople and agents · port 17001SSH channelevery session recorded · port 17002People on callcards in the chat, phonesAgentsClaude Code, Codex, …Machines5-minute certificates, NAT tooresultstargetschange eventssamplesalertscards, callsack, silencea hook wakesREST, MCP, sshssh

The gateway gives each machine its own token and labels what it writes, so no machine can speak for another, and it hands every probe its targets. The router groups, inhibits and silences alerts as Alertmanager does. The bridge turns an alert group into a card in the chat, escalates to phones when nobody acknowledges it, and wakes agents with a signed hook. Agents gather the evidence and leave notes over REST or MCP, and reach machines through the SSH channel. Architecture has the parts and how they fit.

Install ​

On a Linux machine with Docker, three commands start the centre: Beacon, VictoriaMetrics, vmalert and Caddy.

bash
git clone https://github.com/openlinkos/beacon.git
sudo cp -r beacon/deploy /opt/beacon && cd /opt/beacon
sudo ./install.sh

Then enrol a probe, a machine and your agent. Up in 30 minutes walks through it and ends with a rehearsed outage going from alert to recovery.

Connect an agent ​

One token works for the API, MCP and the SSH channel, and the agent needs nothing written for Beacon: MCP over HTTP, its own ssh, the shell.

bash
claude mcp add --transport http linkos-beacon https://status.example.com/mcp --header "Authorization: Bearer lbt_…"

list_machines hands it an ssh_config block, after which its own ssh edge-1, scp and rsync go through the channel. Woken by an alert, it starts with get_evidence, works on the machines, verifies with probe_now and leaves a note for the people on call. See Agents and alerts and the MCP tools.

What Beacon is not ​

  • Not an agent. It calls no model. It wakes agents, answers them and records what they do; deciding is theirs.
  • No approval workflow. People see every session and can replay it; the pause switch stops agents at once.
  • No log platform and no time-series database of its own. Agents read logs over SSH, the way they know best; VictoriaMetrics stores and queries.

Goals says what Beacon is for, what it will not do, and how to choose when goals pull apart. Beacon is open source under the Apache License 2.0, on GitHub.