Multi-Tool Session Log Viewer & Analyzer
View and analyze AI coding assistant sessions from GitHub Copilot CLI, Copilot Chat (VSCode), Claude Code CLI, and Pi-Mono with time analysis, virtual scrolling, and AI-powered insights.
A modern web-based viewer for analyzing AI coding assistant session logs with virtual scrolling, infinite loading, time analysis, and AI-powered insights. Supports GitHub Copilot CLI, Copilot Chat (VSCode), Claude Code CLI, and Pi-Mono sessions.
npx -y @qiaolei81/copilot-session-viewer@latestThen open http://localhost:3838
npm install -g @qiaolei81/copilot-session-viewer
copilot-session-viewer- Node.js β₯ 18.0.0
- At least one AI coding assistant (optional for generating sessions):
- GitHub Copilot CLI (recommended)
- Claude Code CLI
- Pi-Mono
- π Session Management - View, export, and import session archives
- π Event Analysis - Real-time log parsing with filtering and search
- β±οΈ Time Analysis - Execution timelines and performance metrics
- π Virtual Scrolling - Handle 1000+ events smoothly
- βΎοΈ Infinite Scroll - Progressive session loading for better performance
- π€ AI Insights - LLM-powered session analysis
- π Multi-Format Support - Copilot CLI, Copilot Chat (VSCode), Claude Code, and Pi-Mono sessions
- π Dark Theme - GitHub-inspired interface
- π± Responsive - Works on desktop, tablet, and mobile
- β‘ Fast - Optimized virtual rendering and lazy loading
- π Secure - Local-first with no data sharing, XSS protection, ZIP bomb defense
- Vue 3 - Reactive virtual scrolling
- Express.js - Robust backend API
- ZIP Import/Export - Session sharing capabilities with security validation
- Multi-Source Support - Copilot CLI (
~/.copilot/session-state/), Copilot Chat (auto-detected per OS), Claude (~/.claude/projects/), Pi-Mono (~/.pi/agent/sessions/) - Unified Event Format - Consistent schema across all sources
- Memory Pagination - Efficient handling of large sessions
- XSS Protection - DOMPurify-based HTML sanitization
- ZIP Bomb Defense - 4-layer protection (compressed size, uncompressed size, file count, depth)
- Generate Sessions - Use GitHub Copilot CLI, Claude Code CLI, or Pi-Mono to create session logs
- Auto-Discovery - Sessions are automatically detected from:
- Copilot CLI:
~/.copilot/session-state/ - Copilot Chat: auto-detected β
~/Library/Application Support/Code/User/workspaceStorage/(macOS),~/.config/Code/User/workspaceStorage/(Linux),%APPDATA%\Code\User\workspaceStorage\(Windows) - Claude:
~/.claude/projects/ - Pi-Mono:
~/.pi/agent/sessions/
- Copilot CLI:
- Browse & Analyze - View sessions with infinite scroll and detailed event streams
- Time Analysis - Analyze turn durations, tool usage, and sub-agent performance
- AI Insights - Generate comprehensive session analysis with Copilot
# Example: Generate sessions with different tools
# GitHub Copilot CLI
copilot --model claude-sonnet-4.5 -p "Help me refactor this code"
# Claude Code CLI
claude -p "Implement user authentication"
# Pi-Mono CLI
pi -p "Create a REST API endpoint"
# Start the viewer
npx @qiaolei81/copilot-session-viewer
# Browse all sessions at http://localhost:3838- Installation Guide - Detailed setup instructions
- API Documentation - REST endpoints and responses
- Development Guide - Contributing and local development
- Troubleshooting - Common issues and solutions
- Changelog - Release history
This project includes comprehensive unit and E2E test coverage with CI/CD integration.
- 700+ Tests (622 unit + 80 E2E)
- Unified Format Tests - Mock data validation for all sources (Copilot CLI, Copilot Chat, Claude, Pi-Mono)
- Security Tests - XSS prevention, ZIP bomb defense
- Integration Tests - Session import/export, file operations
- CI-Friendly - Mock data generation for reproducible tests
# Unit tests only
npm test
# Unit tests with coverage
npm run test:coverage
# E2E tests only
npm run test:e2e
# Lint check
npm run lint:check
# Run all tests (unit + E2E)
npm run test:allGitHub Actions workflow includes:
- Linting - ESLint code quality checks
- Unit Tests - 622 Jest tests with coverage
- Mock Data Generation - Reproducible test session fixtures
- E2E Tests - 80 Playwright tests with Chromium
- Artifact Upload - Test results on failure
Test Data Strategy:
- β CI uses generated mock data (fast, reliable, no external dependencies)
- β Local development can use real sessions for integration testing
- β Fixtures cover all event formats (Copilot CLI, Copilot Chat, Claude, Pi-Mono)
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β Frontend (Vue 3 + EJS Templates) β
β β’ Virtual Scroller (vue-virtual-scroller) β
β β’ Infinite Scroll (JavaScript) β
β β’ GitHub-inspired Dark Theme β
β β’ XSS Protection (DOMPurify) β
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β HTTP/API
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β Backend (Node.js + Express) β
β β’ Multi-Source Session Repository β
β β’ Unified Event Format Normalizer β
β β’ JSONL Streaming Parser β
β β’ Paginated API Endpoints β
β β’ ZIP Import/Export with Security Validation β
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β File System
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β Data Layer (Multi-Source) β
β β’ Copilot CLI: ~/.copilot/session-state/ β
β β’ Copilot Chat: <OS-specific>/workspaceStorage/ β
β β’ Claude: ~/.claude/projects/ β
β β’ Pi-Mono: ~/.pi/agent/sessions/ β
βββββββββββββββββββββββββββββββββββββββββββββββββββ
All session sources are normalized to a consistent schema:
{
type: 'assistant.message',
timestamp: '2026-02-23T00:00:00.000Z',
data: {
message: 'Response text',
tools: [
{
id: 'tool-001',
name: 'read',
startTime: '2026-02-23T00:00:01.000Z',
endTime: '2026-02-23T00:00:02.000Z',
status: 'completed',
input: { path: 'file.js' },
result: { content: '...' },
error: null,
metadata: {
source: 'copilot', // or 'claude', 'pi-mono'
duration: 1000
}
}
]
}
}Benefits:
- β Consistent UI rendering across all sources
- β Simplified frontend logic
- β Easy to add new sources
- DOMPurify Sanitization - All user-generated content is sanitized before rendering
- Whitelist-based - Only safe HTML tags and attributes are allowed
- JavaScript URL Protection - Blocks
javascript:,data:, andonclickhandlers - Tested - Comprehensive E2E tests for XSS attack vectors
4-layer protection against malicious archives:
- Compressed Size Limit - 50 MB max upload
- Uncompressed Size Limit - 200 MB max expansion
- File Count Limit - 1000 files max
- Directory Depth Limit - 5 levels max
- No external API calls for session data
- All processing happens locally
- Optional AI insights require user action
- No telemetry or tracking
- Debug GitHub Copilot CLI sessions
- Analyze conversation patterns and tool usage
- Export sessions for team collaboration
- Performance optimization insights
- Share interesting Copilot sessions
- Analyze team AI usage patterns
- Document complex problem-solving sessions
- Training and best practice development
- Study human-AI interaction patterns
- Analyze tool usage effectiveness
- Session data mining and analysis
- AI conversation flow research
This project welcomes contributions! See our Development Guide for:
- Setting up the development environment
- Code style guidelines
- Testing procedures
- Contribution workflow
MIT License - see LICENSE file for details
Built with AI assistance - This project was developed using GitHub Copilot and Claude AI for code generation, documentation, and architectural decisions.
Key Dependencies:
- Vue 3 - Reactive frontend framework
- vue-virtual-scroller - High-performance virtual scrolling
- Express.js - Web application framework
- EJS - Templating engine
- DOMPurify - XSS protection
- Playwright - E2E testing
Recent Updates (v0.3.0):
- β¨ VSCode Copilot Chat support (4th source)
- π·οΈ Session tagging system
- π Multi-tool branding (Copilot CLI, Copilot Chat, Claude Code, Pi-Mono)
- π XSS protection with DOMPurify
- π‘οΈ ZIP bomb defense (4-layer validation)
- π§ͺ 700+ tests with CI/CD integration
- π Comprehensive documentation
π Homepage β’ π Docs β’ π Issues β’ π¬ Discussions
Made with β€οΈ for the GitHub Copilot CLI community


