agent-trace for VS Code
Live session overlay for agent-trace. See what your agent is doing without leaving the editor.
Works in VS Code, Cursor, and any Open VSX-compatible editor.
Features
Status bar — live cost, tool call count, and active tool name, updated on every event. Click to open the event stream panel.
$(pulse) agent $0.0042 47 calls [Read]
Gutter annotations — files the agent has read or modified get a colored left border and inline label.
src/auth/middleware.ts ← agent read 3×, modified 1× this session
src/db/schema.ts ← agent read 1× this session
Event stream panel — live feed of every tool call, file op, LLM request, and error in the Explorer sidebar.
Session browser — Explorer sidebar tree listing all sessions with timestamp, duration, tool calls, and error count. Click any session to open a summary.
Post-mortem viewer — when agent-strace watch kills a session (timeout, budget, or rule), the viewer opens automatically. Shows kill reason, cost at death, last tool call, and a copyable recovery context for pasting into a new session.
Pause button — stop the agent mid-session without killing it. Sends SIGSTOP to the agent process via agent-strace watch. Resume resumes it.
Requirements
- agent-strace installed:
pip install agent-strace or uv tool install agent-strace
- A session started via
agent-strace setup (Claude Code hooks) or agent-strace record (MCP proxy)
The extension activates automatically when a .agent-traces/ directory exists in the workspace root.
Setup
# 1. Install agent-strace
pip install agent-strace
# 2. Add hooks to Claude Code (one-time)
agent-strace setup
# 3. Open your project in VS Code / Cursor
# Extension activates automatically when .agent-traces/ exists
# 4. Start Claude Code — status bar appears immediately
Commands
All commands are available from the Command Palette (Cmd/Ctrl+Shift+P):
| Command |
Description |
agent-trace: Open Live Stream |
Open the event stream panel |
agent-trace: Open Event Stream |
Open the main agent-strace panel |
agent-trace: View Post-Mortem |
View the watchdog post-mortem for the latest killed session |
agent-trace: Refresh Session Browser |
Reload the session list |
agent-trace: Reveal Session in Browser |
Jump to a session by ID |
agent-trace: Pause Agent |
Send SIGSTOP to the agent (requires watch running) |
agent-trace: Resume Agent |
Send SIGCONT to resume a paused agent |
agent-trace: Clear File Decorations |
Remove all gutter annotations from the editor |
agent-trace: Enable Product Telemetry |
Enable anonymous extension usage telemetry |
agent-trace: Disable Product Telemetry |
Opt out and delete the extension's anonymous ID |
Watchdog integration
Run agent-strace watch alongside your session to enable the pause button and post-mortem viewer:
# Kill session after 30 minutes or $5 spend
agent-strace watch --timeout 30m --budget 5.00 --on-violation kill
When the watchdog kills a session, the post-mortem viewer opens automatically. The "Copy recovery context" button copies a summary you can paste into a new session to resume where the agent left off.
Configuration
| Setting |
Default |
Description |
agentTrace.traceDir |
.agent-traces |
Path to trace store, relative to workspace root |
agentTrace.collectorEndpoint |
"" |
Remote collector URL (leave empty for local mode) |
agentTrace.watchdogPollIntervalSeconds |
5 |
How often (seconds) the status bar polls for updates |
agentTrace.sessionBrowserRefreshInterval |
5 |
How often (seconds) the session browser refreshes |
agentTrace.showGutterAnnotations |
true |
Gutter icons on agent-touched files |
agentTrace.showInlineText |
true |
Inline read/write counts at top of file |
agentTrace.telemetry.enabled |
true |
Send privacy-preserving anonymous extension usage events |
Product telemetry
Anonymous extension telemetry is enabled by default with a one-time,
non-blocking disclosure. Disable it using agentTrace.telemetry.enabled, the
Command Palette, VS Code's editor-wide telemetry switch, DO_NOT_TRACK=1, or
AGENT_STRACE_TELEMETRY=0.
The extension sends activation, fixed command names/outcomes, and session
success/duration with aggregate tool/error counts. It never sends prompts,
responses, trace contents, paths, repository data, session IDs, command
arguments, endpoints, usernames, hostnames, or exception messages. See the
full telemetry schema.
How it works
The extension watches .agent-traces/.active-session for the current session ID, then tails events.ndjson for new events using fs.watch. No polling when idle and no new processes. Its only outbound network path, other than an explicitly configured live-stream collector, is the documented best-effort anonymous product telemetry above.
Pause works by writing .agent-traces/.pause-request — agent-strace watch checks for this file on every poll cycle and sends SIGSTOP / SIGCONT to the agent PID.
The post-mortem viewer reads watchdog-postmortem.json from the session directory, written by agent-strace watch on kill.