Skip to content
cccskills
FreePublished on GitHub

session

Extract conversation turns from AI session history files (.jsonl)

The English summary is being prepared. Showing the original description.

See how to install

Files included (4)

  • SKILL.md3.5 KB
  • __init__.py0 B
  • scripts/__init__.py0 B
  • scripts/main.py7.4 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Session Skill

Extracts human-readable conversation turns from AI coding session history files (.jsonl). Supports two formats:

  • Claude Code — the JSONL format written by Anthropic's Claude Code CLI (~/.claude/projects/<hash>/<session-id>.jsonl)
  • Codex / Cursor — the simpler {"role": ..., "content": ...} per-line format used by OpenAI Codex and Cursor IDE sessions

Format is detected automatically from the first parseable line.

What gets extracted

Only substantive conversation turns are kept:

Content typeAction
User text messagesKept if ≥ 3 words
Assistant text responsesKept if ≥ 20 words
Assistant thinking blocksSkipped (internal reasoning, not final output)
Tool use / tool result blocksSkipped (avoids leaking file contents or credentials)
Image / attachment blocksSkipped
Sub-agent scaffolding (isSidechain: true)Skipped (internal sub-agent turns)
Session metadata linesSkipped (permission-mode, file-history-snapshot, system, last-prompt)

The extracted text is then passed through Synthadoc's standard pre-LLM source sanitizer (zero-width characters, bidi overrides, HTML comments, hidden CSS spans, base64 blobs, instruction-override phrases), exactly like PDF, DOCX, URL, and every other source type.

Output format

Each turn is labelled [USER] or [ASSISTANT] and separated by ---:

[USER]
How do I implement a sliding window algorithm?

---

[ASSISTANT]
A sliding window algorithm maintains a contiguous subarray (the "window") …

suggested_slug

The skill returns a suggested_slug in metadata derived from the session file's modification time and the first substantive user message:

session-2026-07-15-how-do-i-implement-a-sliding

Large sessions — chunking

Sessions longer than 30 substantive turns are split into 30-turn chunks. Each chunk is labelled with a ## Part N of M header so the downstream LLM can process sections independently. The metadata dict includes chunk_total when chunking occurs; single-chunk sessions (≤ 30 turns) are unchanged.

Limitations

  • Tool output excluded — tool result blocks (shell output, file reads, etc.) are stripped. This is intentional: it avoids leaking file contents and credentials into the wiki.
  • Format auto-detection — detection inspects the first 30 parseable lines. Corrupt or empty files produce an empty ExtractedContent.
  • No deduplication across ingest runs — re-ingesting the same session file creates or updates the same wiki page (standard ingest dedup applies via source hash).

When this skill is used

  • Source path ends with .jsonl
  • Intent phrases: "claude session", "codex session", "cursor session", "ai session", "session history"

Standalone usage

import asyncio
from synthadoc.skills.session.scripts.main import SessionSkill

skill = SessionSkill()

async def main():
    result = await skill.extract("/path/to/session.jsonl")
    print(result.text)       # [USER]\n...\n\n---\n\n[ASSISTANT]\n...
    print(result.metadata)   # {"format": "claude_code", "turn_count": 42, "suggested_slug": "..."}

asyncio.run(main())

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

docx

Free

Extract text from Microsoft Word documents

The English summary is being prepared. Showing the original description.

axoviq-ai/synthadoc1.6KUpdated Oct 19, 2026

image

Free

Extract text from images using a vision LLM

The English summary is being prepared. Showing the original description.

axoviq-ai/synthadoc1.6KUpdated Oct 19, 2026

Ingest Markdown and plain text files

The English summary is being prepared. Showing the original description.

axoviq-ai/synthadoc1.6KUpdated Oct 19, 2026

pdf

Free

Extract text from PDF documents

The English summary is being prepared. Showing the original description.

axoviq-ai/synthadoc1.6KUpdated Oct 19, 2026

pptx

Free

Extract text from Microsoft PowerPoint presentations

The English summary is being prepared. Showing the original description.

axoviq-ai/synthadoc1.6KUpdated Oct 19, 2026

url

Free

Fetch and extract text from web URLs

The English summary is being prepared. Showing the original description.

axoviq-ai/synthadoc1.6KUpdated Oct 19, 2026

See all skills by axoviq-ai

Report a problem with this skill