Skip to content
Back to skills

Session Timeline

ASecurity

Render an ordered timeline of one Claude Code session's events (every event type) with per-event durations and tool names, reconstructed from Agent Monitor data. Pairs PreToolUse with PostToolUse to compute tool durations and surfaces gaps, errors, and compaction points. Use when reconstructing what happened in a session step by step.

  • 1,044 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 2, 2026
ai-agentsapi

Works with

  • claude code
  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 2, 2026

npx -y skills add hoangsonww/Claude-Code-Agent-Monitor --skill session-timeline --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Session Timeline?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Session Timeline
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/hoangsonww-session-timeline/badge)](https://www.skillsdirectory.com/skills/hoangsonww-session-timeline)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: session-timeline
description: >
  Render an ordered timeline of one Claude Code session's events (every event type)
  with per-event durations and tool names, reconstructed from Agent Monitor data.
  Pairs PreToolUse with PostToolUse to compute tool durations and surfaces gaps,
  errors, and compaction points. Use when reconstructing what happened in a session
  step by step.
---

# Session Timeline

Reconstruct the chronological event timeline of a single Claude Code session.

## Input

The user provides: **$ARGUMENTS**

- A **session ID** to time-line, or
- "latest" / "last" for the most recent session.

## Data Sources

| Endpoint | Returns |
|----------|---------|
| `GET /api/sessions/:id` | session header: status, model, cwd, started_at, ended_at, cost, metadata (thinking_blocks, turn_count, total_turn_duration_ms) — and nested events |
| `GET /api/events?session_id=X` | the full event stream: event_type (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, Notification, Compaction, APIError, TurnDuration), tool_name, summary, data, timestamp |

## Report Sections

### 1. Resolve & header
If "latest", `GET /api/sessions?limit=1` to get the id, then `GET /api/sessions/:id`.
Print a one-line header: id, status, model, cwd basename, started_at → ended_at,
turn_count, total_turn_duration_ms, cost.

### 2. Build the ordered timeline
`GET /api/events?session_id=X`. Sort strictly by `timestamp`. For each event emit a
row with: relative offset from `started_at` (e.g. `+00:03.412`), event_type,
tool_name (when present), and a one-line `summary`.

### 3. Compute durations
Pair each `PreToolUse` with its matching `PostToolUse` (same tool_name, next
occurrence) and show the tool's wall-clock duration. For `TurnDuration` events use
the recorded duration directly. Flag any `PreToolUse` with no matching `PostToolUse`
as **unclosed**.

### 4. Annotate notable points
Mark `APIError` (❌), `Compaction` (⚠️ context compressed), `SubagentStop`
(subagent finished), `Notification` (ℹ️), and any timeline gap > 30s between
consecutive events as an idle window.

### 5. Tallies
Event count by type, total tool time vs. session wall time, and the longest single
tool call.

## Output

A Markdown table — `offset | event_type | tool_name | duration | summary` — in
strict timestamp order, preceded by the header line and followed by the tallies.
Durations in ms or `mm:ss.mmm`; currency as USD to 4 decimal places. Never invent a
duration when a PostToolUse is missing — label it `unclosed`. If the dashboard is
unreachable, tell the user to start it with `npm start` from the repo root.

Files in this skill

  • SKILL.md2.6 KB
  • agents/openai.yaml269 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.