
agent-lens
by multicam
File system based context manager
SKILL.md
name: agent-lens aliases: [agent-lens] context: fork model: haiku description: | Agent Lens: Real-time observability dashboard for multi-agent Claude Code sessions.
Visualize agent interactions, tool usage, and session flows through a modern dual-pane interface. Track parent-child event relationships with hierarchical timeline visualization, HITL approvals, and comprehensive metrics.
Key Features:
- 👁️ Dual-pane layout (process timeline + results/metrics)
- 🌳 Span hierarchy visualization with parent-child relationships
- 🔴 Real-time event streaming via WebSocket
- 🤖 HITL interface with timeout indicators and three-action pattern
- 📊 Token usage, cost tracking, and performance metrics
- 🎨 OLED-optimized dark theme (2026 standards)
- 💾 Filesystem-based (no database required)
Version 2.0
Agent Lens
Real-time observability dashboard for multi-agent Claude Code sessions.
Features
Dual-Pane Interface
- Process Timeline - Hierarchical view of events with parent-child relationships
- Results & Metrics - Session statistics, event details, and performance data
- Resizable panes - Drag to adjust layout (25%-60% width)
Event Visualization
- Hierarchical timeline - Nested events show tool call relationships
- Collapse/expand - Show/hide child events
- Event icons - Visual indicators for tool types
- Session cards - Track individual sessions and lifecycle
Metrics & Monitoring
- Token tracking - Estimate usage per session
- Cost calculation - Track AI model costs (2026 pricing)
- Tool usage breakdown - Most frequently used tools
- Performance metrics - Latency, duration, error rates
- Context tracking - Monitor context window usage (CC 2.1.6)
HITL (Human-in-the-Loop)
- Approval interface - Review and approve/reject requests
- Timeout indicators - Visual countdown for time-sensitive actions
- Three-action pattern - Approve, Edit, or Reject
- Browser notifications - Alert on urgent requests
Event Types Captured
- SessionStart - New Claude Code session begins
- UserPromptSubmit - User sends a message
- PreToolUse - Before tool execution
- PostToolUse - After tool completion
- Stop - Main agent task completes
- SubagentStop - Subagent task completes
- SessionEnd - Session ends
Quick Start
Start the Dashboard
# Terminal 1: Start server
cd ~/.claude/skills/agent-lens/apps/server
bun run dev
# Terminal 2: Start client
cd ~/.claude/skills/agent-lens/apps/client
bun run dev
# Or use the project convenience script:
cd /path/to/qara
bun run start-obs
Open browser: http://localhost:5173
Using with Claude Code
Once the dashboard is running:
- Open Claude Code
- Use any tool (Read, Write, Bash, etc.)
- Launch subagents with Task tool
- Watch events appear in real-time on the dashboard
Data Storage
Events are stored in JSONL (JSON Lines) format:
~/.claude/history/raw-outputs/YYYY-MM/YYYY-MM-DD_all-events.jsonl
Each line is a complete JSON object:
{"source_app":"qara","session_id":"abc123","hook_event_type":"PreToolUse","payload":{...},"timestamp":1234567890,"timestamp_aedt":"2025-01-28 14:30:00 AEDT"}
Configuration
Environment Variables
PAI_DIR - Path to PAI directory (defaults to ~/.claude/)
export PAI_DIR="/Users/yourname/.claude"
Session Tracking (CC 2.1.9+)
Agent Lens automatically tracks sessions using Claude Code's native session IDs:
- Current session:
${CLAUDE_SESSION_ID} - Events file:
~/.claude/history/raw-outputs/YYYY-MM/YYYY-MM-DD_all-events.jsonl - Session state:
~/.claude/state/agent-lens/sessions/${CLAUDE_SESSION_ID}.json
Each event includes the session_id field for correlation across the observability dashboard.
Hooks Configuration
Hooks should be configured in ~/.claude/settings.json. The capture-all-events hook is required for Agent Lens to function.
Troubleshooting
No events appearing
- Check PAI_DIR:
echo $PAI_DIR - Verify hooks exist:
ls ~/.claude/hooks/capture-all-events.ts - Check hook is executable:
ls -l ~/.claude/hooks/capture-all-events.ts - Verify today's events file:
ls ~/.claude/history/raw-outputs/$(date +%Y-%m)/
Server won't start
- Check Bun:
bun --version - Install dependencies:
cd apps/server && bun install - Check port:
lsof -i :4000
Client won't connect
- Ensure server is running first
- Check browser console for WebSocket errors
- Verify firewall not blocking localhost:4000
Architecture
Claude Code (with hooks)
↓
capture-all-events.ts hook → JSONL files
↓
file-ingest.ts (Bun server) → In-memory stream
↓
Vue 3 Client → Real-time dashboard
Approach: Filesystem-based event capture with in-memory streaming. No database required.
Credits
Inspired by @indydevdan's work on multi-agent observability for Claude Code.
Our implementation uses filesystem-based event capture and in-memory streaming instead of SQLite database persistence.
スコア
総合スコア
リポジトリの品質指標に基づく評価
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新がある
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
レビュー
レビュー機能は近日公開予定です