session:extract

SkillDatabases & data

Extract Claude Code session analytics to CSV, Markdown, or HTML files

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the session:extract skill

What this skill tells your AI

The instructions your AI receives, as published by rossoctl/rossoctl in .claude/skills/session:extract/SKILL.md and read by ahel’s review.

flowchart TD
    START(["/session:extract"]) --> DETECT["Detect repo"]
    DETECT --> PARAMS{"Date range specified?"}
    PARAMS -->|Yes| EXTRACT["--phase extract with date range"]:::phase
    PARAMS -->|No| EXTRACTALL["--phase extract (all data)"]:::phase
    EXTRACT --> OUTPUT["Report output file locations"]:::done
    EXTRACTALL --> OUTPUT
    classDef phase fill:#2196F3,stroke:#333,color:white
    classDef done fill:#4CAF50,stroke:#333,color:white

Follow this diagram as the workflow.

Extract Session Analytics

Extract Claude Code session analytics from GitHub PR/issue comments into CSV, Markdown, or HTML files for offline analysis and reporting.

Workflow

Step 1: Detect Repository

git remote get-url origin | sed 's/.*github.com[:/]\(.*\)\.git/\1/' | sed 's/.*github.com[:/]\(.*\)/\1/'

Step 2: Determine Date Range

Ask the user or accept parameters:

  • --from-date - Start date (ISO format: YYYY-MM-DD), defaults to 30 days ago
  • --to-date - End date (ISO format: YYYY-MM-DD), defaults to today

Step 3: Run the Extract Phase

python3 .claude/scripts/session-analytics.py \
  --phase extract \
  --repo <OWNER/NAME> \
  --from-date <START_DATE> \
  --to-date <END_DATE> \
  --output-dir /tmp/rossoctl/session/

This will:

  1. Fetch session comments from all PRs/issues in the date range
  2. Parse session metrics from each comment
  3. Generate output files in /tmp/rossoctl/session/:
    • sessions.csv - Raw session data in CSV format
    • sessions.md - Formatted Markdown report
    • dashboard.html - Interactive HTML dashboard

Step 4: Report Output

After extraction completes, report the output file locations to the user:

ls -la /tmp/rossoctl/session/

Provide the full paths so the user can open or share the files.

Parameters

ParameterSourceRequiredDefault
--phaseAlways extractYes-
--repoAuto-detected from git remoteYes-
--from-dateUser-specified or defaultNo30 days ago
--to-dateUser-specified or defaultNoToday
--output-dirFixedNo/tmp/rossoctl/session/

Examples

# Extract last 30 days (default)
python3 .claude/scripts/session-analytics.py \
  --phase extract --repo rossoctl/rossoctl \
  --output-dir /tmp/rossoctl/session/

# Extract specific date range
python3 .claude/scripts/session-analytics.py \
  --phase extract --repo rossoctl/rossoctl \
  --from-date 2025-01-01 --to-date 2025-01-31 \
  --output-dir /tmp/rossoctl/session/

# Extract all time
python3 .claude/scripts/session-analytics.py \
  --phase extract --repo rossoctl/rossoctl \
  --from-date 2024-01-01 \
  --output-dir /tmp/rossoctl/session/

Output Files

FileFormatUse Case
sessions.csvCSVImport into spreadsheets, data analysis tools
sessions.mdMarkdownShare in docs, wikis, or other PRs
dashboard.htmlHTMLVisual overview, open in browser

Related Skills

  • session - Router skill for all session analytics
  • session:post - Post session stats to PR/issue comment
  • session:summary - Update pinned summary comment
  • session:dashboard - Generate HTML dashboard

Signals

GitHub stars
300
Forks
107
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
session-extract
Source
github.com/rossoctl/rossoctl