Command overview
beacon endpoint copilot collects telemetry from GitHub Copilot CLI by reading the session records Copilot commits under ~/.copilot/session-state and converting them into Beacon endpoint events.
Command syntax
harness.collection_method=poll. Beacon sees what Copilot wrote after the fact, so this path cannot hold, approve, deny, or delay a tool call, and it does not synthesize approval events.
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
sync under whatever scheduler the platform already uses, or leave --watch running in the account that owns ~/.copilot.
Status
Show Copilot CLI sessions and collection progress
collected means the cursor is level with the complete records Beacon decoded from that session’s events.jsonl. A partly written trailing record is left for the next sweep and reported as pending rather than treated as corruption.
Cursor behavior
The cursor is what keeps a scheduled sweep from re-appending every session’s whole history. It stores the last decoded line perevents.jsonl file, plus file size and modification time for cheap no-op sweeps.
Re-reading is safe: each event’s id comes from the source file, session id, line number, and mapped event suffix, so the same Copilot record maps to the same event every time.
Related
GitHub Copilot CLI
Telemetry coverage, discovery, and known gaps for the runtime.
beacon endpoint discover
Check whether Copilot CLI is detected and whether live OTLP is configured.