Claude Skill

session-timeline

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

LLM Mart · 0 points · 8 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download hoangsonww-claude-code-agent-monitor-plugins_ccam-sessions_skills_session-timeline-83d4df5.zip · 1 KB
Part of hoangsonww/claude-code-agent-monitor — 86 skills

Install

skills CLI npx skills add https://github.com/hoangsonww/Claude-Code-Agent-Monitor/tree/master/plugins/ccam-sessions/skills/session-timeline
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install hoangsonww-claude-code-agent-monitor@llmmart
Git git clone https://github.com/hoangsonww/Claude-Code-Agent-Monitor.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole hoangsonww/claude-code-agent-monitor collection as a plugin from our marketplace. Git is the plain clone.

Skill manifest

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 (claude-code-agent-monitor)
  • agents
    • openai.yaml 269 B
      interface:
        display_name: "Session Timeline"
        short_description: "Render an ordered timeline of one Claude Code session's..."
        default_prompt: "Use $session-timeline to inspect CCAM data and complete this workflow safely."
      policy:
        allow_implicit_invocation: false
      
  • SKILL.md 2.6 KB
    ---
    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.
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related