TinyAI Observability
Private VS Code extension for collecting Copilot and Claude coding task telemetry.
Usage
- Install the private
.vsix.
- Reload VS Code.
- Keep using Copilot Chat / Agent mode, Claude Code panels, or Claude CLI normally.
- The extension automatically scans local VS Code Copilot
chatSessions and GitHub.copilot-chat/transcripts files, plus Claude ~/.claude/projects/**/*.jsonl and ~/.claude/transcripts/*.jsonl. Each completed user request uploads one logical turn_snapshot.
- In Agent mode, enable or allow the
tinyai_specs tool. Copilot can then call the tool directly when the prompt needs personal specs.
- For sticky TinyAI chat, start a Copilot Chat thread with
@tinyai; the participant is sticky, so follow-up turns in that thread do not need @tinyai again.
- When the collector server IP changes, open the left-side
TinyAI activity bar item and update Collector URL, or edit TinyAI Observability: Collector Url in VS Code Settings.
- Keep the URL pointed at the current collector server; normal Copilot, Claude, and git commit usage is captured automatically.
Automatic Copilot capture emits one turn_snapshot per completed request.
The user question and final assistant answer come from chatSessions; visible
reasoning, assistant progress, tool arguments/results, and sub-agent traces
come from GitHub.copilot-chat/transcripts when VS Code persists them. The
extension no longer uploads automatic Copilot agent_activity, standalone
file_read, or synthetic task_start/task_end events. Explicit TinyAI tasks
still keep their lifecycle events.
The extension also records spec/catalog access, code change summaries,
feedback, commit attribution snapshots, and upload retries.
Every event includes an automatically detected identity, preferring TinyAI
environment variables, then git config user.name, then the local system user,
so sessions from the same teammate group under one user in the dashboard.
For AI code metrics, git commit records a commit_snapshot after hooks are
installed. The collector compares the commit diff against prior
Copilot/Claude AI code evidence in the database to
classify AI-current, human-current, and AI-assisted human-edited lines. Users do
not need to click a manual "mark current diff" button. Snapshot events use
stable IDs based on the commit SHA, so repeated runs do not double count the
same code.
Regular Copilot Chat is captured from local VS Code workspace transcript files:
$HOME/Library/Application Support/Code/User/workspaceStorage/<hash>/GitHub.copilot-chat/transcripts/*.jsonl
$HOME/Library/Application Support/Code/User/workspaceStorage/<hash>/chatSessions/*.jsonl
Those records include only content VS Code/Copilot persisted locally. Hidden
model chain-of-thought is not available; visible_reasoning is limited to
reasoning text present in the files. Localhost and private LAN collectors may
use HTTP for team testing; public collectors must use HTTPS and a bearer token.
Direct capture still comes from the sticky @tinyai participant and the
tinyai_specs Agent-mode tool.
Claude capture is separate from Copilot model selection. If Claude is selected
inside GitHub Copilot Chat, the source is still Copilot and the event tool is
copilot with a Claude model name. Native Claude Code / Claude CLI / Claude
panel JSONL logs are uploaded as tool=claude.