Feature request
Add transcript parser support for the GitHub Copilot CLI so --sync-ai-activity can extract per-turn AI metrics (token counts, model, prompts, line changes) the same way it already does for Claude, Codex, and Cursor.
Context
I maintain @zorfling/wakatime-copilot-cli, a hook-based integration that fires wakatime-cli heartbeats from Copilot CLI's sessionStart / postToolUse / sessionEnd events under --category "ai coding". It works well for time + line-change attribution, but token counts can only come from transcript parsing — Copilot CLI's hook payloads don't surface tokens/model info to the hook script.
Where Copilot CLI stores session data
On macOS/Linux:
~/.copilot/data.db — SQLite (tables include sessions, turns, events with usage_input_tokens, usage_output_tokens, usage_model, etc.)
~/.copilot/session-state/<sessionId>/ — per-session working dir
~/.copilot/data.db-wal / data.db-shm — WAL sidecars
The schema is reasonably stable and includes everything needed (model, input/output tokens, timestamps, working directory) per turn.
Suggested approach
Treat Copilot CLI like the existing Claude / Codex parsers — add a new transcript source that reads new rows from ~/.copilot/data.db since the last heartbeat and emits one AI heartbeat per assistant turn with:
--entity = cwd of the session (or most-recently-touched file)
--category "ai coding"
--plugin "github-copilot-cli/<version>"
- model + token counts on the resulting heartbeat
Happy to help with schema details or testing if useful.
Feature request
Add transcript parser support for the GitHub Copilot CLI so
--sync-ai-activitycan extract per-turn AI metrics (token counts, model, prompts, line changes) the same way it already does for Claude, Codex, and Cursor.Context
I maintain
@zorfling/wakatime-copilot-cli, a hook-based integration that fireswakatime-cliheartbeats from Copilot CLI'ssessionStart/postToolUse/sessionEndevents under--category "ai coding". It works well for time + line-change attribution, but token counts can only come from transcript parsing — Copilot CLI's hook payloads don't surface tokens/model info to the hook script.Where Copilot CLI stores session data
On macOS/Linux:
~/.copilot/data.db— SQLite (tables include sessions, turns, events withusage_input_tokens,usage_output_tokens,usage_model, etc.)~/.copilot/session-state/<sessionId>/— per-session working dir~/.copilot/data.db-wal/data.db-shm— WAL sidecarsThe schema is reasonably stable and includes everything needed (model, input/output tokens, timestamps, working directory) per turn.
Suggested approach
Treat Copilot CLI like the existing Claude / Codex parsers — add a new transcript source that reads new rows from
~/.copilot/data.dbsince the last heartbeat and emits one AI heartbeat per assistant turn with:--entity=cwdof the session (or most-recently-touched file)--category "ai coding"--plugin "github-copilot-cli/<version>"Happy to help with schema details or testing if useful.