> ## Documentation Index
> Fetch the complete documentation index at: https://docs.asymptotelabs.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# beacon endpoint copilot

> Collect endpoint telemetry from GitHub Copilot CLI session records

## Command overview

`beacon endpoint copilot` reads the records GitHub Copilot CLI commits under
`~/.copilot/session-state` and converts them into Asymptote
[endpoint events](/concepts/core-concepts#endpoint-event).

```bash title="Command syntax" theme={null}
beacon endpoint copilot [command]
```

This complements live OTLP export. Polling backfills assistant text, complete
tool results, commands, file activity, and token usage. Every event uses
`harness.collection_method=poll`; this path observes committed records after
the fact and cannot hold, approve, deny, or delay a tool call.

Reading is local and offline.

## Commands

| Command | Description |
| - | - |
| `beacon endpoint copilot sync` | Read new Copilot CLI session records into the runtime log |
| `beacon endpoint copilot status` | Show local sessions and collection progress |

## Flags

Both subcommands accept:

| Flag | Description |
| - | - |
| `--copilot-dir <path>` | Copilot directory; defaults to `~/.copilot` |
| `--state <path>` | Cursor file; defaults to `~/.beacon/endpoint/state/copilot.json` |
| `--workspace <path>` | Include sessions whose recorded working directory matches this workspace |
| `--session-id <id>` | Include one Copilot CLI session |
| `--json` | Print JSON output |
| `--user` | Use per-user endpoint paths; enabled by default |
| `--system` | Use system endpoint paths and a cursor beside the system runtime log |

`sync` also accepts:

| Flag | Description |
| - | - |
| `--log-path <path>` | Runtime JSONL path |
| `--print` | Print mapped events without writing or advancing the cursor |
| `--watch` | Sweep continuously |
| `--interval <duration>` | Watch interval; defaults to `1m`, with a 5-second floor |

## Sweeping

```bash title="Sweep once" theme={null}
beacon endpoint copilot sync
```

```bash title="Preview without writing" theme={null}
beacon endpoint copilot sync --print
```

`--print` neither writes the runtime log nor advances the cursor.

```bash title="Sweep continuously" theme={null}
beacon endpoint copilot sync --watch --interval 5m
```

Nothing sweeps automatically. Schedule `sync`, or leave `--watch` running in
the account that owns `~/.copilot`.

## Status

```bash title="Show session collection progress" theme={null}
beacon endpoint copilot status
```

`collected` means the cursor is level with every complete record decoded from a
session's `events.jsonl`. A partially written trailing record remains pending
for the next sweep.

## Cursor behavior

The cursor stores the last decoded line for each `events.jsonl`, along with file
size and modification time for inexpensive no-op sweeps.

| Mode | Default cursor path |
| - | - |
| User | `~/.beacon/endpoint/state/copilot.json` |
| System | `copilot-state.json` beside the system runtime log |

Re-reading is safe: event IDs derive from the source file, session ID, line
number, and mapped event suffix, so the same source record maps to the same
event.

## Related

<Columns cols={2}>
  <Card title="GitHub Copilot CLI" icon="code" href="/runtimes/github-copilot-cli">
    Review telemetry coverage and deployment guidance.
  </Card>

  <Card title="beacon endpoint discover" icon="magnifying-glass" href="/cli/endpoint-discover">
    Check detection and live OTLP configuration.
  </Card>
</Columns>
