Skip to main content

Command overview

beacon endpoint fx collects telemetry from fx, Vercel Labs’ native coding agent, by reading the session records fx commits under ~/.fx/sessions and converting them into Beacon endpoint events.
Command syntax
It is a command rather than an install step because fx has nothing to install into. Every other supported runtime exposes a hook config, a plugin directory, or an OTLP endpoint, so Beacon writes something once and the runtime calls it. fx has none of those: what it has is a durable session log, so collecting from it is an action rather than a configuration. Every event is marked harness.collection_method=poll. Beacon sees what a turn did once fx committed it, rather than observing the agent as it works, so nothing here can hold or deny a tool call. Reading is local and offline. Nothing this command does reaches the network.

Commands

Flags

Both subcommands accept: sync also accepts:

Sweeping

Sweep once
Preview without writing anything
--print is a dry run in both directions: it neither writes the runtime log nor advances the cursor, so running it twice shows the same events and running it does not quietly consume the work a later real sweep would do.
Sweep continuously
Nothing sweeps on its own. Run sync under whatever scheduler the platform already uses, or leave --watch running. A sweep prints what it did, and says out loud the two conditions a counter would hide:
A damaged session log and an empty one produce the same event count, and only one of them is a reason to look at the machine. The summary is reported even when the sweep hit an error, because a sweep that collected nine sessions and failed on the tenth did nine sessions’ worth of work.

Status

Show fx sessions and collection progress
collected means the cursor is level with what fx’s own manifest says it has committed, in the same log generation. A session whose manifest cannot be read is reported as pending rather than assumed collected, because it cannot say how far fx has committed.

Cursor behavior

The cursor is what keeps a scheduled sweep from re-appending every session’s whole history. It stores both the sequence number and fx’s log generation, because fx restarts sequence numbers when it compacts a session log; without the generation a compaction would look like a rewind. A sweep reads each session’s log only as far as the manifest’s committed watermark, so a frame fx is still writing is left for the next sweep rather than counted as corruption. Re-reading is safe: each event’s dedup id comes from the record’s own coordinates rather than its content, so the same fx record maps to the same event every time.

fx (Vercel Labs)

Telemetry coverage, discovery, and known gaps for the runtime.

beacon endpoint discover

Check whether fx is detected and how much has been collected.